我使用 linux 已经有一段时间了,但我从来没有完全理解附加到 GUI 上的各种关键字。
我想我理解 KDE 和 Gnome 之类的区别——它们是构成给定 gui 环境的应用程序和其他软件的集合。然而,快速浏览任何技术模糊的 linux 网站会发现以下术语:
- 穆林
- 清晰的外观
- GTK
- 绿柱石
- 元城市
- 窗口管理器
如果我说实话,我不知道它们的含义以及它们之间的关系。有人可以澄清吗?
我使用 linux 已经有一段时间了,但我从来没有完全理解附加到 GUI 上的各种关键字。
我想我理解 KDE 和 Gnome 之类的区别——它们是构成给定 gui 环境的应用程序和其他软件的集合。然而,快速浏览任何技术模糊的 linux 网站会发现以下术语:
如果我说实话,我不知道它们的含义以及它们之间的关系。有人可以澄清吗?
我可能会让你更困惑,但我将在该列表中添加更多单词。我试图在描绘事物如何组合在一起的画面时突出流行语。
窗口管理器
这可能听起来很傻,但窗口管理器会管理您的窗口。它们紧挨着 X 服务器(控制发送到硬件的内容),并规定如何将窗口绘制到桌面(它本身就是一种窗口)。
除了管理窗户的位置,它有多大,如果它高于其他东西,它还负责装饰。大多数窗口管理器都依赖于另一个称为窗口装饰器的应用程序。这些决定了您的窗口边框的外观,并为您提供了一些选项(调整大小、窗口按钮等)。
Metacity(一个窗口管理器)有自己的内置窗口装饰器,但您可能会看到的其他窗口装饰器包括
gtk-window-decorator
(默认情况下由 Compiz 使用)和Emerald,它们是从 Beryl 产生的,它可以以 CPU 周期为代价做一些更漂亮的事情。Beryl、Metacity、Compiz都是窗口管理器。Beryl 是原始 Compiz 的一个分支。它远远领先于 Compiz,最终被合并成一个名为 Compiz-Fusion 的项目。Compiz-Fusion 现在 (AFAIK) 已重命名回 Compiz,尽管这两个名称仍然适用于同一个现代项目。
图形工具包
GTK+(又名 GTK)是一个图形工具包,开发人员使用它来创建丰富的图形用户界面。使用像 Glade 这样的工具,他们通过在窗口上放置 GTK+ 控件(例如按钮)来决定应用程序的外观,使用像 Glade 这样的进一步排列技术。
GTK+ 还包含几个子项目,例如Cairo和Pango,这两个图形库程序员可以用来在他们的应用程序中绘制东西。反过来,这些库可以联系更多的库来帮助他们渲染事物(比如使用Freetype渲染文本)。
GTK+ 开发库是一个无底洞。我真的可以花一整天时间把它们列出来,但这对你没有帮助。所以我不会。
这些控件如何呈现到屏幕上的部分涉及主题引擎。每个引擎都有n 个可用的主题,用户可以在他们的偏好中选择一个。该主题使用其引擎让控件将自己呈现到屏幕上。Clearlooks和Murrine都是引擎,它们都有以它们命名的主题,以及在互联网上流行的大量其他主题。
堆栈从下到上看起来像这样:
这是超级简化的(我刚刚解释了一个合成系统),很多东西可以以改变的顺序发生,通常并行运行,而不是在另一层的顶部或下方......但它应该让你了解事情是如何发生的从代码到屏幕。
Qt是另一个在 KDE 应用程序中非常常见的图形工具包。它有自己的主题引擎、主题和控件,类似于 GTK+。它们不可互换,需要大量的代码检查才能从一个工具包移植到另一个工具包。
Metacity 是一个窗口管理器。窗口管理器为您提供窗口周围有趣的装饰(标题栏、关闭按钮等)以及管理窗口。GTK 是一个小部件集,它为您提供实际窗口中的按钮、标签、复选框等。Clearlooks 是一个主题,而 Beryl 就像 compiz。