我有两台显示器(一台 HDMI,一台 DVI)连接到我的 linux 盒子上的 Nvidia GT710 GPU。
当我通过 ssh 登录到我的盒子时,如果我运行
xeyes
它,它将始终在同一个屏幕上运行。我知道这个屏幕的名称,因为
echo $DISPLAY
返回:0
根据我读过的一些内容,我希望能够分别使用:0.0
和将 X 窗口定位到我的左右显示器:0.1
。对:1
.
DISPLAY=:0.0 xeyes
确实确实在左侧屏幕上显示了 xeyes,但是:
~$ DISPLAY=:0.1 xeyes
Error: Can't open display: :0.1
我想也许我可以通过列表看到我的右显示器的名称,/tmp/.X11-unix/
但是:
~$ ls /tmp/.X11-unix/
X0
那么我该如何处理这个辅助显示器并知道如何处理它呢?
PS。我不在乎是否不能在屏幕之间移动窗口,如 ArchWiki 中所述:https ://wiki.archlinux.org/title/Multihead#Separate_screens 。这对我来说很好,但我不清楚如何实现这一目标。
这仅适用于您的左右显示器实际上会使用两个X 屏幕,除非您自己配置,否则您通常不会看到它。
开箱即用,今天的大多数系统都使用Xinerama,这意味着您可以获得一个X 屏幕,其中两个
xrandr
输出从不同位置的相同帧缓冲区读取。但只有您可以告诉我们您的系统是如何配置的(阅读
/var/log/Xorg.log
以了解)。这证实了上面的假设:您没有两个 X 屏幕。
查看 的输出
xrandr
,看看是否有两个输出连接到同一个帧缓冲区(即,所有输出都列在 下Screen 0
)。如果是,这意味着您需要在某个位置放置一个窗口,以使其显示在左侧或右侧监视器上(或同时显示在左侧或右侧,一半在左侧,另一半在右侧)。
您的窗口管理器(WM),在大多数现代发行版中集成在您的桌面环境中,可以影响窗口的位置,并且通过正确配置它,它可以帮助将其放置在您想要的位置(并因此监控)。
许多(但不是全部)X 应用程序也支持该
-geometry
选项(阅读手册页),它再次将窗口放置在某个位置,但 WM 可以自由地覆盖它,所以如果它不起作用,那就是原因。如果您没有运行现代桌面系统,并且您甚至不打算使用窗口管理器(甚至几十年前每个人都这样做了;X意味着有一个窗口管理器),那么您需要定位和调整每个窗口的大小单独通过命令行(这也将确定它们出现在当前设置中的哪个屏幕上);你将无法调整窗口大小或移动窗口等(如果你能做到这一点,那么即使你没有意识到这一点,你也会在某处拥有一些 WM)。
您还可以设置 X,使其使用两个屏幕,一个用于每个输出。您需要一个自定义
xorg.conf
文件。这是我用于英特尔硬件的文件,其中一个屏幕用于 HDMI3(当我不久前连接我的电视时,这就是为什么有两个屏幕是有意义的):您需要根据您的硬件和要求进行调整;不同的硬件可能需要不同的选项(例如,当时我这样做时,英特尔硬件需要 AccelMethod 和 ZaphodHeads)。期望花费相当多的时间来完成这项工作。