通过本专栏,您将体验 X Window System 的 Ion 窗口管理器。 X 窗口管理器是管理应用程序调用的窗口的程序。例如,如果您在 X 终端上运行 XTerm 或者 Web 浏览器,那么很可能会有一个在后台运行的窗口管理器,帮助您控制弹出的窗口。
在 Microsoft® Windows® 中,窗口管理器与操作系统的其余部分是高度集成的。桌面上根本没有 Explorer 窗口的 Windows 机器是让人难以想像的。
在 UNIX® 中,具体地讲是在 Linux™ 中,出于各种文化和技术的原因,桌面的演化遵循的是一条不同的路线。UNIX 采用 X 作为它选择的窗口系统,X 窗口管理器是典型的 UNIX 实用程序:小、快,而且可配置。twm 等窗口管理器倾向于满足最低限度要求,而 Enlightenment 窗口管理器精心设计的系统可以显示您所见过的最漂亮的图形。(要获得关于 MacOS X 中 Ion 的资料,请参阅 部分)。
在现在的 UNIX 桌面上,窗口管理器与桌面系统的其余部分之间的集成通常比以前更紧密(CDE、KDE 和 Gnome 都是这样),但它仍然完全可以运行与原定桌面不同的窗口管理器。
本文是为那些愿意切换并配置其窗口管理器(通常简称 WM)的用户准备的。如果您不是这样的用户,那么要小心。Ion 不是一个容易使用的 WM,而且,如果您错误地配置了 Ion 或者 X(比如以总有一个不能启动的方式),那么绝对需要具备自救的能力。保持警惕!
进入 IonIon 是一种平铺(tiling)窗口管理器。也存在其他一些与 lon 类似的窗口管理器(请参阅 中列出的 Ion 主页链接),但是,我认为,Ion 最好地实现了速度、特色、扩展性和可配置性的平衡。Ion 的大小只有 150 千字节(在 Debian Linux 版本 2 中,要再加上模块的 160 千字节)。它运行起来很 快。
完全内幕Ion 实际上可以实现窗口重叠。我希望您学习改为使用平铺窗口,但是您也可以借助重叠窗口(“PWM”或者“浮动的”)工作台。它们之所以被称为 PWM 工作台,是因为 Ion 的前身 PWM 只实现了传统的重叠窗口管理。这些工作台也被称为是“浮动的”,因为看起窗口浮在屏幕上。平铺工作台通常称作 Ion 工作台,因为它们始终在 Ion 之内,不同于浮动工作台。
首先要了解一个定义。平铺窗口管理器不允许窗口重叠。在意识到窗口重叠是向用户隐藏内容的主要原因之一以前,您可能会觉得有些奇怪。在导航方面,平铺窗口管理器是非常有效的,因为它们所管理的管口没有 z-plane(深度)。这样,用户只需要进行二维管理。(请参阅 )。
您可能马上想到这样一个问题。如果在工作台上窗口过多,无法安置,而您又不想将它们压缩到小得无法管理时,怎么办?在这里,Ion 平铺特性以外的另一个优秀特性登场了:标签(tab)。标签是 Ion 的 z-plane,只可惜只能有一个标签是可见的。这样,如果一个窗口帧有标签 A、B 和 C,那么只能看到这些标签中的一个。其他标签以及属于它们的窗口都隐藏了起来。记住这一点,因为如果您想用好 Ion 的话,这是最基本的知识。当今的很多应用程序都支持标签,所以,即使以前没有使用过 Ion,您也可能知道它们是如何工作的。
您可以查看 Ion 主页上(请参阅 )关于 Ion 的平铺方式和标签的屏幕截图。那些屏幕截图看起来并不吸引人,因为 Ion 本身并不很吸引人 —— 但它确实(难以置信地)实用。它的惟一目标是完成工作,自始至终没有使用任何华而不实的东西,比如主题。在使用 Ion 之前,我使用过 Enlightenment,我必须承认,因为缺乏主题,Ion 在开始时一点都不吸引人,但是最后,Ion 让我全神贯注于窗口 内部的内容,而不是它们的装饰品。所以我建议,如果您要尝试 Ion,那么至少给它一天时间。第一印象是如此不好,使得您可能会厌恶 Ion,而您厌恶的理由恰恰是它成为优秀的窗口管理器的原因:它的简单。
出于任何理由不喜欢使用鼠标的用户群将发现,Ion 特别实用。Ion 使您能够通过键盘接口使用每一项功能,在 Ion 中没有必要使用鼠标。但那些喜欢使用鼠标的人仍可以使用鼠标;只是,一旦您学会了击键,使用键盘做事情将更为简单和迅速。
最后,我要指出的是,有很多的窗口管理器,Ion 可能并不是适合您的那一个。在 Ion 主页的链接部分,有其他类似于 Ion 的窗口管理器。仔细研究可以用于您的平台的窗口管理器,并根据您希望窗口管理器具有哪些功能来进行选择。不过,一定要试试 Ion。我想您会乐意这样做。
Ion 历史从开始到现在,Ion 一直由芬兰电脑爱好者 Tuomo Valkonen 进行开发。其前身是来自同一作者的 PWM 窗口管理器。虽然 Ion 是一个遵循 Lesser GNU PublicLicense 的软件包,但 Tuomo 是 Ion 项目的惟一所有者。最近,Tuomo 将最新版本的 Ion 添加到了子版本仓库中;在 Ion 主页上,有通过那个仓库获得最新的 Ion 版本的说明。
在 2004 年 7 月之前,Ion 有三个不同的版本。Ion 1 是最原始的 Ion,是用 C 编写的。它有一个简单的配置格式,实际上,它类似于经典的 UNIX 窗口管理器。Ion 1 没有浮动的(重叠的窗口)工作台,特性很少。不过,在满足最低限度要求、精简以及特别实用的方法方面,Ion 1 是革命性的。Ion 1 可能不是第一个使用平铺工作台(这个思想完全不再新颖),但是,它确实在这方面做得很多,这要归功于标签。标签是 Ion 的平铺方法成功的根本,据我所知,在 PWM 之前,没有窗口管理器具有这一特色 —— 或者就算它们这样做了,也没有一个像 Ion 这样如此广泛地使用标签,甚至连终端窗口都标签化了。
Ion 2 大部分是对 Ion 的重写。它仍是用 C 编写的,为了更好地组织 Ion 代码,它整理了对象层次结构。Ion 最大的变化是添加了可选的浮动工作台以及 Lua 脚本语言,该语言适用于 Ion,就像 Lisp 适用于 Emacs,它是一种定制和扩展的基本手段。
Ion 3 现在正处于开发之中,到目前为止,就用户可以看见的特性而言,它没有对 Ion 2 进行显著更新(尽管已经在测试一些非常好的特性:比如会话管理支持、 mod_autows、一个非常好的 dock、便签簿等)。如果您乐于尝试新事物,那么您可以查看 Ion 3 的仓库,以获得关于这些特性的更多资料。
Ion 3 简化了 Ion 2 引入的很多特性,添加了更好的模块来扩展 Ion,对 Ion 进行了较少的内部重写(尽管从脚本方面讲,它改变了很多,这反映了它从 Ion 2 中得到了教训)。在决定使用 Ion 3 之前,一定要检查它的状态。到撰写本文时,Ion 3 还是最新的发行版本,并且只有很少的文档。
我的 Ion 配置尽管在开始使用 Ion 时,您当然会接受其默认键绑定,但是您可能发现它们很难用。而 workstar 或者 vi 的用户可能会发现其默认按键很好用,但是,如果键盘上有空闲的功能键,那么您应该修改默认的键绑定。我将向您展示我使用 Ion 2 的个人配置,我设置了一些不同的键绑定。
注意,您可以保持默认的键绑定, 同时安装新的键绑定。对新用户来说,这可能是最安全的。
在展示之前,首先我需要解释我的键绑定。我的键盘几乎完全用于使用 Emacs 和 vi(编程)、shell 交互和电子邮件(使用 Emacs gnus 邮件阅读器和新闻阅读器)。我将所有的 F 键(从 F1 到 F12,要么与 Control 组合,要么与 Shift 组合)都用于 Emacs 编程了。我将 Alt-F1 到 Alt-F12 留给了 Ion。在我的 Logitech、Sun 和 Memorex 键盘上,额外的键用来启动应用程序,我马上将要解释如何使用 xmodmap。
我的设置中最不同寻常的部分是数字键区(keypad)。我只将数字键区用于 Ion 导航。我不需要按任何转义(Control、Alt 或者 Shift)键来使用数字键区,我已经以这种方式进行了设置。这样,当我在键盘上输入时,只需要将我的右手移动到数字键区就可以访问全部 Ion 导航。就我的经验而言,这是一个非常有效的设置,您也应该考虑试一下。键盘上别的地方可以实现数字键区的全部功能,所以不再需要它们做任何事情(99% 情况下如此)。剩下 1% 的可能必须使用数字键区,所以它们应该将我的设置映射到其他键,或者可以将设置映射到随 Alt 转义键按下的数字键区。
如果您认为您绝对需要数字键区,那么可以花一些时间来考虑以下这个问题。您要在数字键区上使用什么?您的手落在其上的频率有多高?另一方面,您将手移动到鼠标上来安排屏幕上的窗口的频率有多高?您可能会发现,数字键区在您日常的计算机应用中并不是必需的。作为一个证据,可以考虑膝上型计算机。如果已经用了一些日子,您可能会注意到,上面没有单独的数字键区。对于大部分用户而言,这不会带来什么麻烦,而且他们很少使用常见的膝上型电脑的“重叠键区”。
Ion 2 配置是用名为 Lua 的语言编写的。Ion 主页上有关于使用 Lua 配置 Ion 的文档链接(请参阅 )。Ion 2 中引入的对象层次结构是通过 Lua 来处理的,所以,如果您计划定制 Ion 2 的所有部分(除了键绑定的最简单修改以外),那么应该去阅读描述对象层次结构的 Ion 2 文档。
我的 Ion 2 配置由若干个文件组成。其中有 ion.lua,它控制着全局的 Ion 2 选项。对 Ion 平铺工作台,我使用的是 ionws.lua(目前其中只是有键绑定)。对于全局键绑定,我使用的是 tzz-ion-bindings.lua。由于我没有在 Ion 中使用 PWM(浮动的)工作台,所以我的定制中不包括 PWM 键绑定。Ion 2 附带的默认 PWM 绑定应该足够用了;如果您想让它们像用于 Ion 工作台的面向数字键区的绑定那样简单,那么您应该考虑数字键区在浮动工作台中可以做什么。您可能会发现,使用浮动窗口时,鼠标是不可缺少的(这正是我为什么不喜欢使用浮动窗口的原因)。
您可能不理解我凭什么反对使用鼠标。它们是很好的点击设备,但人们怀疑它们的广泛使是造成 Carpal Tunnel Syndrome(CTS)和 Repetitive Stress Injuries(RSI)的原因,这些都是计算机用户常为之痛苦的。我的经验是减少鼠标的使用会让我的手腕感觉好多了(几年前我自己几乎也差点患上 CTS),但是我不是医生,所以如果您担心 CTS 和 RSI,应该去咨询医生。大部分专家建议尽可能少使用鼠标,但是,当然,对键盘的过度使用同样不利于您的健康(尤其是如果您的姿势不对)。组合击键(同时敲击两个或者更多的键)对您的健康尤为不利,应该尽量避免。这里给出了我的设置,明确地避免了使用组合击键来完成在 Ion 中的标签和帧之间的移动,这是最常用到的导航任务。
如果您打字很多,那么少使用鼠标还可以提高您的工作效率,因为您将不必再那么多次地在键盘和鼠标之间移动您的手。记住,要确保健康有效地使用计算机,您可以做的最好的事情就是经常休息 5 分钟。 |