5.2.术语

尽管无须知道所有 X Window 系统中各种组件的所有细节以及这些组件之间如何交互,但对这些组件有一些基本的了解还是很有用的。

X server(X 服务器)

从一开始 X 就被设计成网络化的“客户端-服务器”模型。在这个模型中,“X 服务器”运行在连接有键盘、显示器和鼠标的计算机上。服务器的职责包括管理显示器,处理来自键盘和鼠标的输入,以及处理来自其他设备(如平板电脑或视频投影仪)的输入或输出等任务。这使一些人感到困惑,因为 X 使用的术语与他们所期望的完全相反。他们认为“X 服务器”是楼下大厅里那台功能强大的设备,而“X 客户端”则是位于他们办公桌上的设备。

X client(X 客户端)

每个 X 应用程序,如 XTerm 或 Firefox,都是一个“客户端”。客户端向服务器发送消息,如“请在这些坐标处画一个窗口”,而服务器则返回消息,如“用户刚刚点击了 OK 按钮”。

在家庭或小型办公环境中,X 服务器和多台 X 客户端通常运行在同一台计算机上。另外在一台性能不那么强大的计算机上运行 X 服务器,然后在一台性能更强的计算机上运行多个 X 应用端程序也是可行的。在这种情况下,X 客户端和 X 服务器之间的通信是通过网络进行的。

window manager(窗口管理器)

X 系统并不规定屏幕上的窗口应该是什么样子,如何用鼠标移动它们,该用哪些按键在窗口之间进行切换,每个窗口的标题栏看起来是什么样子,这些标题栏上面是否有关闭按钮等等。相反,X 将这一责任委托给一个独立的窗口管理器应用程序。有几十种窗口管理器open in new window 可用。每种窗口管理器都提供了不同的外观和使用体验:有些支持虚拟桌面,有些允许自定义按键来管理桌面,有些有一个“Start”按钮,有些可以充当主题样式,允许完全改变桌面的外观和体验。在 ports 的 x11-wm 分类中有不同的窗口管理器可供选择。

每种窗口管理器使用不同的配置机制。有些使用手写的配置文件,而有些则为大多数配置任务提供了图形化的工具。

desktop environment(桌面环境)

KDE 和 GNOME 通常被认为是桌面环境,因为它们包括一整套用于执行常规桌面任务的应用程序。这些应用程序可能包括办公套件、网络浏览器和游戏。

focus policy(焦点策略)

窗口管理器负责确认鼠标落点位置的管理策略。这个策略提供了一些方法来选择哪个窗口收到了按键激活,并显示出哪个窗口是当前的活动窗口。

有一种管理策略被称为“click-to-focus”,在这种模式下,一个窗口在接收到鼠标点击时就被激活为活动窗口。而在“focus-follows-mouse”策略中,位于鼠标指针下方的窗口就是被激活的活动窗口,通过将鼠标指向另一个窗口来改变活动窗口。如果鼠标在根窗口上,那么这个窗口就是活动窗口。另外 在“sloppy-focus”模式下,如果鼠标在根窗口上方移动,那么最近一次使用的窗口仍然是活动窗口。通过这种 sloppy-focus 模式,只有当光标到达一个新的窗口区域时,活动窗口才会改变,而不是在离开当前窗口区域时就发生改变。在“click-to-focus”模式下,活动窗口是通过鼠标点击来被选中。然后该窗口可以提升并出现在所有其他窗口之前。所有的按键现在都会被作用于该窗口,即使光标已经移动到另一个窗口。

不同的窗口管理器支持不同的活动窗口管理策略。它们都支持 click-to-focus,而且其中大多数也支持其他策略。请查阅相关窗口管理器的文档以确定哪些活动窗口管理策略可供选择。

widget(窗口部件)

窗口部件是一个术语,指用户界面中所有可以被点击或以某种方式操作的部件。这包括按钮、复选框、单选按钮、图标和列表。窗口部件库是一组用于创建图形应用程序的窗口部件。有几个流行的窗口部件库,包括 KDE 使用的 Qt,和 GNOME 使用的 GTK+。因此,应用程序会有不同的外观和使用体验,这取决于使用何种窗口部件库来创建该应用程序。