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