王朝网络
分享
 
 
 

功能丰富的Perl:有趣的Ion窗口管理器

王朝perl·作者佚名  2008-05-19
宽屏版  字体: |||超大  

请关注 Ion 窗口管理器这个功能强大却很简单的程序,可以用它来管理应用程序在桌面上调用的窗口。Ion 并非华而不实,一旦习惯了它,您的工作效率将因此得到极大的提高,而且您会感到奇怪:为什么以前还使用过其他窗口管理器。

通过本专栏,您将体验 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 (比如以总有一个不能启动的方式),那么绝对需要具备自救的能力。保持警惕!

进入 Ion

Ion 是一种平铺(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 Public License 的软件包,但 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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有