X的工作方式与任何网络程序的工作方式相同。您需要一台服务器(在这种情况下是X显示服务器)运行在特定的机器上,还有像Firefox这样的X客户端尝试连接到该服务器以获取其信息显示。
通常(在“家用”机器上),客户端和服务器运行在同一台计算机上,并且只有一个服务器,但X足够强大,不需要这样做。它从一开始就具有了服务器/客户端分离的功能。
这允许您执行诸如登录到距离地球另一端的框(以文本模式),告诉它显示服务器是您当前所在的框,然后,窗口突然开始在本地出现,等这种奇妙的事情。
为了使客户端与用户交互,它需要知道如何找到服务器。有许多方法可以做到这一点。许多客户端允许使用-display 或--display选项指定它:
xeyes -display paxbox1.paxco.com:0.0
如果没有明确指定显示器,许多人会使用 DISPLAY
环境变量。你可以像设置其他变量一样设置这个变量:
DISPLAY=paxbox1.paxco.com:0.0
export DISPLAY=paxbox1.paxco.com:0.0
DISPLAY=paxbox1.paxco.com:0.0 firefox &
DISPLAY
变量的第一部分只是显示服务器机器的地址。它遵循与任何其他IP地址相同的规则;它可以是可解析的域名(包括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
根据您想要窗口出现的位置和想要使用的输入设备。
DISPLAY=paxbox1.paxco.com:0.0; export DISPLAY
?这段代码DISPLAY=paxbox1.paxco.com:0.0 firefox &
的目的是在 Firefox 中查看多个显示器吗? - Léo Léopold Hertz 준영