FreeBSD handbook中文版 5 X Window 系统( 三 )


这可能会使一些人搞糊涂,因为X 术语与他们所想象的有所不同 。他们以为X server
是运行在大型机器上的,而X client 是运行在桌面机器上的 。
第5 页FreeBSD 使用手册
正如你所记得的,X server 是用来处理显示器和键盘输入信息的,而X client 是用来
显示视窗程序的,这一点你不应当搞糊涂 。
这样的设计有一个很有意思的副作用 。并不需要client 和server 都运行在同一种操
作系统上,或甚至运行在同一种类型的电脑上 。把它运行在Microsoft Windows 或Apple"s
MacOS 上也是可以的,在它上面也有很多免费的和商业化的应用程序 。
在FreeBSD 上使用的X server 叫做XFree86,在大家很熟悉的许可协议下可以免费使
用 。针对FreeBSD 的商业化X server 也可以使用,你可以选择一个 。
5.4.3 视窗管理器
X 的设计哲学有点象unix 的设计哲学,“tools, not policy” 。这些意味着不需要命
令最终用户他们应当如何来完成他们的工作 。而是,只给用户提供一些完成工作的工具,
至于如何使用这些工具那是用户自己的事情 。
这种哲学大大地扩展了X,它不一定要规定这些视窗在屏幕上看起来象什么,你要如何
移动鼠标,需要使用什么键来切换窗体,每个窗体的工具条应当看起来象什么,是否应该
放关闭按钮等等 。
实际上,X 只代表了叫做“Window Manager”的应用程序 。有很多这样的应用程序:
AfterStep, Enlightenment, ctwm, ftwm, sawfish, twm, WindowMaker 等 。这些管理器
中的每一个都提供了一个不同的界面;其中一些支持“虚拟桌面”,有一些允许你可以定
制一些键来管理你的桌面;一些用作“start”按钮;一些用作“themeable”,允许你启
用一个新桌面来改变你的桌面显示 。这些视窗管理器都可以在Ports Collection 的x11-wm
中找到 。另外,KDE 和GNOME 桌面环境都有它们自己的视窗管理器与桌面集成 。每一个视窗
管理器也有一个不同的配置机制;一些需要你手工写入一个配置文件;其他特性的GUI 工
具能够完成绝大多数的配置任务;至少有一个配置文件需要用lisp 语言来改写,它很强大 。
正如你可以想象的,这种灵活性来自价格 。因为可用的选择是如此广泛,以至于很难
有这种类型的文档来指导你选择和配置一个视窗管理器 。
着重点:视窗管理器的另一个特性是鼠标的焦点 。每个视窗管理器如X,Microsoft
Windows 或其它一些都有一个抽象概念“焦点”,在任何一个时候只有一个窗口有焦点 。有
焦点的那个窗口是你接收所有键盘输入和鼠标点击的窗口 。
第6 页FreeBSD 使用手册
你通常比较熟悉一个叫做“click-to-focus”的焦点方案 。这意思是你必须点击你想
要拥有焦点的窗口 。窗口可能会处在屏幕的上方,即使你把鼠标移出窗口,你键盘的输入
仍然会出现在这个窗口中 。你要把焦点移向另一个窗口,你必须点击它 。
X 不支持一些特殊的焦点规则 。而是,窗口管理器控制着在什么时候哪个窗口拥有焦点 。
不同的窗口管理器支持不同的焦点方案 。它们都支持点击到焦点,它们中的大多数都支持
好几个 。
还有其它两个通常的焦点规则:
focus-follows-mouse
这种方式是,在鼠标指示器下面的视窗是拥有焦点的视窗 。这可能不是其他视窗顶部
的视窗 。你可以通过点击另一个视窗类改变焦点 。习惯了这个方式后,再回到使用
click-to-focus 方式的视窗时就会感到不适应 。
sloppy-focus
这种方式是对focus-follows-mouse 的一个小小的扩展 。对于focus-follows-mouse,
如果你在桌面上移动鼠标,那不会有视窗会获得焦点 。

推荐阅读