X 的工作方式与任何网络程序的工作方式相同。您有一个在特定计算机上运行的某种描述的服务器(在本例中为 X 显示服务器),并且您有 X 客户端(如 Firefox)尝试连接到该服务器以显示其信息。
通常(在“家用”机器上),客户端和服务器在同一个机器上运行,并且只有一台服务器,但 X 足够强大,不需要发生这种情况。它从一开始就内置了服务器/客户端分离。
这使您可以做一些奇妙的事情,例如登录到地球另一端的盒子(以文本模式),告诉它显示服务器是您当前所在的盒子,瞧,窗口突然开始出现在本地。
为了让客户端与用户交互,它需要知道如何find服务器。有多种方法可以做到这一点。许多客户允许-display
or --display
指定它的选项:
xeyes -display paxbox1.paxco.com:0.0
许多人会使用DISPLAY
如果没有专门给出显示,则为环境变量。您可以像其他变量一样设置此变量:
DISPLAY=paxbox1.paxco.com:0.0; export DISPLAY # in .profile
export DISPLAY=paxbox1.paxco.com:0.0 # in your shell
DISPLAY=paxbox1.paxco.com:0.0 firefox & # for that command (shell permitting)
第一部分DISPLAY
变量只是显示服务器机器的地址。它遵循与任何其他 IP 地址相同的规则;它可以是可解析的 DNS 名称(包括localhost
)或特定的 IP 地址(例如 192.168.10.55)。
第二部分是 X 特定的。它给出了要使用的 X“显示器”(X 服务器)编号和屏幕编号。第一个(显示器数量)通常是指包含一个或多个屏幕但具有单个键盘和鼠标(即一个输入流)的一组设备。屏幕编号通常给出该组内的特定屏幕。
一个例子是:
+----------------------------------------+
|paxbox1.paxco.com| |
+-----------------+ |
| |
| +----------+----+ +----------+----+ |
| |Display :0| | |Display :1| | |
| +----------+ | +----------+ | |
| | | | | |
| | +-----------+ | | | |
| | |Screen :0.0| | | | |
| | +-----------+ | | | |
| | +-----------+ | | | |
| | |Screen :0.1| | | | |
| | +-----------+ | | | |
| | +-----------+ | | +-----------+ | |
| | |Screen :0.2| | | |Screen :1.0| | |
| | +-----------+ | | +-----------+ | |
| | +-----------+ | | +-----------+ | |
| | |Screen :0.3| | | |Screen :1.1| | |
| | +-----------+ | | +-----------+ | |
| | +-----------+ | | +-----------+ | |
| | | Keyboard | | | | Keyboard | | |
| | +-----------+ | | +-----------+ | |
| | +-----------+ | | +-----------+ | |
| | | Mouse | | | | Mouse | | |
| | +-----------+ | | +-----------+ | |
| +---------------+ +---------------+ |
| |
+----------------------------------------+
这里你有一台机器(paxbox1.paxco.com
)有两个显示服务器。第一个有四个屏幕,第二个有两个。那么可能性是:
DISPLAY=paxbox1.paxco.com:0.0
DISPLAY=paxbox1.paxco.com:0.1
DISPLAY=paxbox1.paxco.com:0.2
DISPLAY=paxbox1.paxco.com:0.3
DISPLAY=paxbox1.paxco.com:1.0
DISPLAY=paxbox1.paxco.com:1.1
取决于您希望实际窗口出现的位置以及您想要使用的输入设备。