Xorg

我的雙顯示器 X 配置如何在僅指定一個螢幕的情況下工作?(英偉達)

  • August 6, 2022

我最近正在研究如何正確配置 2 台帶有 X11 和 NVIDIA 卡的顯示器,並嘗試了許多不同的選項。許多教程指出,2 顯示器設置應包括 2ServerLayout節中的 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"與此有關嗎?

您通常不再需要手動播放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。

引用自:https://unix.stackexchange.com/questions/712575