是否可以选择程序实例应该在哪个 X 显示器上运行?

vfc*_*sts 12 x11

如果系统上运行多个 X Windows,是否可以让程序在特定窗口上运行?您将如何识别窗口并使程序在那里运行?

我假设我拥有运行此类程序所需的任何权限。

zra*_*ajm 17

X 程序通过查看DISPLAY环境变量知道它们应该与哪个 X 会话进行对话。

首先,您需要找出DISPLAY希望程序运行的 X 会话中的设置。通过echo $DISPLAY在该 X 会话中的 X 终端内发出命令来执行此操作。通常会:0.0输出类似的东西。

假设您想xclock在您的 X 会话中启动优秀的程序程序,其中DISPLAYis :0.0,但您想在控制台上执行此操作。然后按 Alt-Ctrl-F1 切换到该控制台,然后键入:

DISPLAY=:0.0 xclock   # variables set w/ a command are local to that command
Run Code Online (Sandbox Code Playgroud)

然后你通过按 Alt-Ctrl-F7 或 Alt-Ctrl-F8(或者可能是其他一些 F 键,取决于你的 Linux 风格)回到 X 并观看你在那里的新漂亮挂钟。

事实上,您可以在同一台机器上的任何 shell 中执行上述命令(通过 SSH、在任何 X 会话中、在任何控制台等)——您DISPLAY=:0.0在命令之前指定的事实意味着xclock窗口将始终弹出同一个 X 会话。

事实上——除了 X 程序查看它这一事实之外——DISPLAY变量并没有什么特别之处。通常,当您从 X 终端启动程序时,它们会在正确的位置启动,因为DISPLAY已经为您设置好了。

除了使用上面的命令,你还可以通过先设置DISPLAY,然后运行xclock. 在这种情况下,DISPLAY设置将一直存在,直到您关闭该 shell,并且从那里启动的所有后续 X 程序都将在与xclock.

                      # variables set w/o a command are local to the shell,
export DISPLAY=:0.0   # unless exported
xclock
Run Code Online (Sandbox Code Playgroud)