我的双显示器 X 配置如何在仅指定一个屏幕的情况下工作? (英伟达)

我的双显示器 X 配置如何在仅指定一个屏幕的情况下工作? (英伟达)

我最近正在研究如何使用 X11 和 NVIDIA 卡正确配置 2 台显示器,并尝试了许多不同的选项。许多教程指出 2 显示器设置应在ServerLayout部分中包含 2 个屏幕/etc/X11/xorg.conf,如下所示:

Section "ServerLayout"
    Identifier     "Main"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" 1920 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

当我尝试这样做时,无论我如何配置ScreenDevicesMonitor部分,都会导致某种奇怪的显示或 X 服务器错误。最终,我的工作仅使用了 1 个屏幕,xorg.conf该屏幕是通过使用以下命令生成的nvidia-xconfig

Section "ServerLayout"
    Identifier     "Main"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Lenovo Group Limited LEN C24-10"
    HorizSync       30.0 - 83.0
    VertRefresh     50.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 1060 6GB"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "HDMI-1: nvidia-auto-select +1920+0, HDMI-0: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

然而我不明白的是如何这有效。我遇到的大多数双显示器示例xorg.conf文件都在服务器布局中指定了 2 个屏幕。我的配置仅适用于指定的一个屏幕和显示器这一事实似乎与我所读到的内容相矛盾,除非我严重误解了某些内容。有人可以向我解释这是为什么吗?我可以安全地假设这条线Option "metamodes" "HDMI-1: nvidia-auto-select +1920+0, HDMI-0: nvidia-auto-select +0+0"与此有关吗?

答案1

您通常不需要xorg.conf再手动玩了。即使是空的 xorg.conf 通常也能得到正确的结果(监视器放置除外)。神奇的是,现在大部分工作都是在幕后完成的。 Nvidia 驱动程序(不一定nvidia-xconfig)使用 xorg.conf 进行一些提示,但会自行完成大部分配置并为所有内容应用适当的默认值。

过去,事情变得更加困难。进行多显示器设置有三种主要方法:

  • 多个Screens。这将设置几个独立的桌面。您无法将窗口从一个屏幕移动到另一个屏幕,如果您运行终端,您可以通过设置指定哪个监视器可以运行每个应用程序DISPLAY=
  • Twinview:这个 X11 扩展允许单个屏幕跨越多个显示器。然而X11并没有真正识别出屏幕之间的接缝。因此,状态栏将跨越所有显示器,而不是带有状态栏的“主”显示器。如果您全屏显示某个应用程序,它将跨越所有显示器。
  • Xinerama:这个 X11 扩展解决了我使用 TwinView 的问题。现在,您可以仅在一台显示器上全屏显示应用程序,并且仍然可以在两台显示器之间移动窗口。我不确定它是否是一个独立的扩展,或者它是否可以在 TwinView 之上工作。

通过 xorg 提供给 nvidia 驱动程序的“提示”确实与以下几Option行相关:

Option         "nvidiaXineramaInfoOrder" "DFP-1"
Option         "metamodes" "HDMI-1: nvidia-auto-select +1920+0, HDMI-0: nvidia-auto-select +0+0

这些提示定义了哪个物理显示器是什么,以及它们应该放置在桌面上的位置。你可以看到这里使用了一点Xinerama。

相关内容