艺术家 Linux 桌面的指南,第 1 部分

作者:Michael J. Hammel

几年前,我为Linux Journal写了一个关于 GIMP 的四部分系列文章。这些文章成为了我的书《GIMP 艺术家指南》的基础,这本书大约在一年后出版。我喜欢从最终用户的角度来写关于使用 Linux 的文章。开发者应该能够挖掘和寻找信息。最终用户需要更多的指导。由于 GIMP 帮助我假装自己有艺术细胞,我倾向于从我认为艺术家可能想要的角度来写作。通过这种方式,我可以展示 Linux 不仅仅是一个挖掘和寻找的地方。你实际上可以在这里完成真正的工作。

在这个新的系列文章中,我将着眼于 Linux 桌面的成熟。特别是,我将讨论窗口管理器。桌面一直不是 Linux 最强大的领域。许多用户抱怨桌面太笨重或缺乏基本功能。但是,已经指出的问题只需要时间——Linux 成熟的时间和开发者编写代码的时间。然而,Linux 目前在基本功能方面的不足,却在魅力方面弥补了。Linux 桌面是一个非常人性化的工作场所。

有些人可能会说这是花哨的东西。另一些人称之为视觉糖果。随便你怎么称呼它,Linux 桌面都充满了个性。窗口管理器是其中的一个主要部分,尽管它们不应被误认为是整个桌面环境。事实上,这就是我们将要开始的地方。窗口管理器和桌面环境之间到底有什么区别?

GNOME、Sprockets 和 Bears,天哪!

当前 Linux 桌面世界的焦点集中在两个主要参与者身上:GNOME 和 KDE。在书呆子术语中,这些是桌面环境。GNOME 来自 Miguel de Icaza 等人,并通过 Red Hat 的支持,它基于 GTK,即用于按钮、滑块等你在 GIMP 中看到的软件库。KDE 基于 QT,来自 Matthias Ettrich 和 KDE 开发组。QT 和 GTK 都被称为小部件集。通常,你使用小部件集来构建应用程序,如 GIMP 或 KIllustrator,但 GNOME 和 KDE 超越了仅仅提供应用程序。它们提供基础设施——应用程序应该如何外观和行为的底层规则和指南。它们提供软件库,允许应用程序彼此通信。这就是拖放等功能的实现方式。如果没有 GNOME 和 KDE,将文件图标拖到废纸篓或打印机图标上是不可能的。

除了 GNOME 和 KDE 之外,还有其他环境。UNIX 系统上最广泛使用的环境可能是 CDE,即通用桌面环境。CDE 基于商业软件包,该软件包使用 Motif,并且几乎包含在当今所有主要的 UNIX 工作站中。CDE 版本可用于 Linux,但大多数人仍然坚持使用 KDE 或 GNOME,因为它们的许可费用较低。Motif 曾经非常昂贵,虽然其价格已大幅下降,但对于 Linux 发行商来说,许可费用仍然相对较高。由于桌面环境预计将成为任何操作系统发行版的一部分,Linux 发行商要么对 CDE 收取额外费用,要么与 KDE 和 GNOME 合作。他们的选择是显而易见的。

KDE 和 GNOME 都提供非常相似的功能。每个都提供一个面板——屏幕边缘的条,用于启动应用程序、显示系统状态和允许嵌入式应用程序——并且可以与任何兼容的窗口管理器一起使用。会话管理器和 CORBA 支持不如面板那样可见,但可能对用户更重要。会话管理器允许你在上次使用应用程序时离开的位置启动应用程序。CORBA 允许应用程序之间的交互。会话管理和 CORBA 作为一套规则(通过编程库,如果你关心的话)提供,应用程序必须遵循这些规则才能在这些环境中正常工作。

桌面环境为用户提供完整的桌面体验。这包括寻呼机和拖放功能,以及标准化的应用程序。KDE 和 GNOME 都有文件管理器——用于管理文件的图形界面。窗口管理器通常不提供这样的工具。日历、文字处理器和电子表格也是存在于 KDE 和 GNOME 中使用的应用程序,但不被认为是这些环境的一部分;这些只是普通的应用程序,它们符合 KDE 和 GNOME 提供的互操作性规则。虽然你会听到 GNOME 和 KDE 都将这些工具作为其环境的一部分来谈论,但不要被愚弄——你可以选择自己的电子表格应用程序;你不必使用 KDE 或 GNOME 自带的那些。

寻呼机是一个非常有用的功能。Linux 桌面允许你拥有可以跳转到的屏幕外区域。这些被称为虚拟桌面,每个桌面通常有多个页面。本质上,这些都像是你可见屏幕的延伸——用于工作的额外屏幕空间。

KDE 和 GNOME 都提供自己的寻呼机,大多数窗口管理器也是如此。为了使窗口管理器的寻呼机在其各自的环境中正常工作,窗口管理器需要与该环境兼容。幸运的是,我们将要讨论的窗口管理器至少在其中一个或两个环境中部分兼容。

GNOME 和 KDE 之间还有一些其他差异。KDE 已经有一个内置的帮助系统,而 GNOME 最近才发布一个。一些用户认为 GNOME 有点头重脚轻——例如,它会占用大量内存。它也不如 KDE 稳定。GNOME 作为一个项目,比 KDE 年轻大约一年,但两者都有强大的开发团队在为它们工作。总的来说,你可能会对这两个环境都感到相当满意。事实上,如果你像我一样不使用拖放、文件管理器或担心应用程序之间的互操作性,你可以不用 KDE 或 GNOME。我两者都没有运行——至少目前还没有。

窗口管理器

KDE 和 GNOME 提供整体桌面体验,而窗口管理器则做一些更基本的事情。它们提供允许你在屏幕上移动窗口、最小化和最大化窗口,以及关闭那些拒绝消失的应用程序的功能。窗口管理器还决定窗口的外观——边框和标题栏、背景图像等等。你为窗口指定的配置框架称为主题。这就是我们之前谈到的魅力。对于艺术家和任何对个性化其私人桌面感兴趣的人来说,窗口管理器是焦点。

KDE 和 GNOME 提供默认的窗口管理器:KDE 的 kwm 和 GNOME 的 Enlightenment(或最近的 Sawmill)。如果没有窗口管理器,桌面环境将不会非常有用。事实上,它几乎毫无用处。桌面环境和窗口管理器之间的关系相当共生。但是,你不必使用这些环境提供的默认窗口管理器。你可以运行任何窗口管理器——并且有很多——与任何一个环境。为了利用 KDE 或 GNOME 的所有底层功能(如会话管理),你需要运行一个兼容的窗口管理器,并非所有窗口管理器都兼容。事实上,很少有窗口管理器完全兼容 KDE 或 GNOME 中的任何一个,更不用说两者都兼容了。因此,我将重点介绍三个至少与其中一个环境兼容并提供主题支持的窗口管理器:Enlightenment、Window Maker 和 AfterStep。

像它们的桌面环境对应物一样,窗口管理器通常提供额外的功能,这些功能本身就接近于应用程序。寻呼机属于这一类。你使用环境的寻呼机还是窗口管理器的寻呼机主要取决于选择,尽管在 KDE 或 GNOME 中使用面板可能会迫使你同时使用它们的寻呼机。窗口管理器还提供桌面图标的管理。在大多数情况下,这对用户是隐藏的——你得到一个图形工具来指定图标的放置位置(左侧、右侧、限制在特定区域等)。在某些窗口管理器中,你会得到一个用于图标的可见框,称为图标框。例如,Enlightenment 默认使用一个非常明显的框,可以将其配置为基本上不可见。

主题

在所有这些技术术语之后,我们终于到了艺术家们可能会最喜欢的部分——主题。主题所做的只是指定背景(在根窗口或任何其他窗口中)、窗口边框、图标以及在某些情况下应用程序本身的外观。这是花哨的东西,但很有趣——对你花费一生中大部分时间的计算机进行个性化设置。

窗口管理器提供了主题所需的大部分功能。KDE 和 GNOME 都支持主题,但它们的方式不同。KDE 的默认窗口管理器 kwm 像任何其他窗口管理器一样支持主题。GNOME 从 GTK(我之前提到的小部件集)获得其支持。GTK 非常有趣,因为它允许你为任何基于它的应用程序提供相同的主题。换句话说,通常基于 GTK 的 GNOME 应用程序可以通过更改 GTK 主题来同时更改。这种更改不仅影响窗口边框,还影响应用程序的按钮、菜单和其他可见部分。KDE、Enlightenment、Window Maker 和 AfterStep 仅更改窗口管理器功能的外观。它们不更改应用程序按钮、菜单等的外观。

KDE 允许你使用其控制面板即时更改当前主题。GNOME 也一样,使用其自己的控制中心。这两者都可以从各自环境的面板访问。Window Maker、AfterStep 和 Enlightenment 也允许你即时更改主题,方法是使用可能未包含在其各自标准发行版中的工具。如果你愿意,也可以手动更改主题。然而,主题是一个相对较新的现象,定义和安装主题的标准化方法尚未建立。在大多数情况下,你将需要使用图形工具来安装主题。创建新主题相当复杂,并且非常特定于每个环境或窗口管理器。在本系列文章中,我将坚持讨论安装主题。将来,一旦制作主题的过程不再那么复杂,我将研究撰写关于制作你自己的主题的文章。

要寻找什么?

由于窗口管理器比桌面环境(通过其会话管理功能)保存的关于正在运行的应用程序的信息更少,因此它们往往占用更少的内存。当然,任何规则都有例外。AfterStep 的内存占用量很小,但由于 Enlightenment 是图形密集型的,因此它的占用量可能很大。在你的桌面上,它有一千兆字节的内存,因此你可以在 GIMP 中处理巨大的打印图像,你使用哪个窗口管理器可能无关紧要,这取决于内存使用情况。但这会在内存有限的笔记本电脑上产生影响。内存使用情况是需要注意的事情,这取决于你在哪里工作。

一个好的寻呼机至关重要。我不使用 GNOME 或 KDE(它们不提供我现在需要的功能),所以我可以选择任何窗口管理器。很长一段时间,我只使用 FVWM2,主要是因为它的寻呼机。桌面及其页面在屏幕上显示为小框,我可以简单地通过将窗口从寻呼机拖到主屏幕来将窗口从一个桌面拖到另一个桌面。寻呼机还显示窗口的名称(从它们的标题栏),尽管是截断的形式。寻呼机中窗口的大小与其在桌面中的实际大小成比例。Enlightenment 现在有一个非常相似的寻呼机,我发现它的外观和使用都非常吸引人。另一方面,Window Maker 有一个寻呼机,它只是一个按钮,可以在桌面之间弹跳你,但我看不到每个桌面中的内容,直到我到达那里。我也无法将寻呼机分成多个桌面,每个桌面都有多个页面。在 Window Maker 中,我基本上每个桌面获得一个页面。你认为这好还是坏是个人品味的问题。重要的是你要考虑你选择的窗口管理器中的寻呼机,因为你将经常使用它。

在线帮助很有用,但仅在最初阶段。桌面环境都内置了在线帮助。Enlightenment 有自己的帮助系统;Window Maker 和 AfterStep 有基于 HTML 的帮助。这是否有用取决于你熟悉环境需要多长时间。在我看来,如果你需要连续几个月参考帮助系统,那么该系统就太复杂了,你应该考虑查看另一个窗口管理器。

现在,如果我们超越这些基本必需品,我们就会进入锦上添花的阶段。如果你的窗口管理器能够添加可停靠的应用程序,这将很有帮助。这些有时被称为小程序、epplets 和各种其他东西(显然每个人都有自己的术语)。它是一个具有非常特定功能的应用程序——例如,监控你在 ISP 上花费的在线时间——它在一个小图标中运行,或者更常见的是在面板中运行。你也会希望你的窗口管理器提供可以最大化屏幕空间的功能。诸如窗口阴影之类的东西——将窗口卷起成标题栏以隐藏它,然后再将其展开。这减少了桌面的视觉混乱,但这当然不是窗口管理器有用的必要条件。一个可以隐藏的寻呼机也会很好。Enlightenment 提供了这一点,但 Window Maker 没有,因为它的寻呼机不像 Enlightenment 的那样占用太多空间。当然,你会想要主题支持。毕竟,魅力才是重点。

更改窗口管理器

你如何使用你选择的窗口管理器?如果你使用 KDE 或 GNOME,你可能正在登录,并且一切都已为你设置好。

对于 GNOME,你可以通过编辑你的 $HOME/.Xclients 文件来指定一个单独的窗口管理器。你可能一开始没有这个文件,但你可以手动创建它。例如,要使用 Window Maker 运行 GNOME,你的 .Xclients 文件将如下所示

gnome-session&
wmaker

KDE 有点不同。它需要启动几个不同的程序。如果你有 startkde 脚本(在 Red Hat 6.x 或类似系统上可用,也可能在其他系统上可用),你可以在该脚本中将 kwm 替换为你选择的窗口管理器。

无论你是手动启动 X(例如使用 startx)还是在登录时自动启动它,修改你的 .Xclients 文件都应该足以让你的窗口管理器运行起来。

这就是对桌面环境和窗口管理器的介绍。它可能看起来很复杂,但当你使用一段时间后,它真的不难理解。与任何新事物一样,不熟悉会滋生轻视。你只需要一些时间来与这个新世界交朋友。

在下一篇文章中,我将深入介绍 Enlightenment 窗口管理器。这将包括关于构建、安装、配置和使用它的问题。接下来将是关于 Window Maker 和 AfterStep 的文章。最后,你将足够熟悉这些,以便你可以从许多可用的窗口管理器中进行选择。到那时,你的计算机将不再是别人的桌面想法。它将真正属于你。

Artists' Guide to the Linux Desktop, Part 1
Michael J. Hammel (mjhammel@graphics-muse.org) 是一位图形艺术家梦想家、作家和软件开发人员。他漫无目的地在地球上游荡,寻找冒险、宁静的海滩和逃离主宰他生活的计算机。
加载 Disqus 评论