X11

不同使用者的不同螢幕配置?

  • January 5, 2022

我有一台執行 Xubuntu 20.04 的機器,帶有三個顯示器。目前,我為每個監視器配置了一個單獨的螢幕(顯示:0.0、:0.1 和:0.2),這很適合其預期用途。但是對於其他用途,最好在所有三個顯示器上都有一個螢幕(所有三個顯示器都顯示:0.0)。我使用 nvidia-settings 實現了這個設置,它似乎修改了 /etc/X11/xorg.conf:

# nvidia-settings:  version 470.57.01

Section "ServerLayout"
   Identifier     "Layout0"
   Screen      0  "Screen0" 1920 0
   Screen      1  "Screen1" 3840 0
   Screen      2  "Screen2" 0 0
   InputDevice    "Keyboard0" "CoreKeyboard"
   InputDevice    "Mouse0" "CorePointer"
   Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "Module"
   Load           "dbe"
   Load           "extmod"
   Load           "type1"
   Load           "freetype"
   Load           "glx"
EndSection

Section "InputDevice"
   # generated from default
   Identifier     "Mouse0"
   Driver         "mouse"
   Option         "Protocol" "auto"
   Option         "Device" "/dev/psaux"
   Option         "Emulate3Buttons" "no"
   Option         "ZAxisMapping" "4 5"
EndSection

此配置似乎會影響所有使用者。如何設置一個使用者使用三屏配置,而其他使用者將所有三台顯示器作為一個螢幕?

據我所知,每個使用者的 X 伺服器配置並不是真正的事情,但如果其他使用者願意在控制台中登錄,multi-user.target那麼這樣做是可能的。

您可以在執行時通過執行切換到 multi-user.target sudo systemctl isolate multi-user.target

要使其成為預設執行級別,您可以執行:

sudo systemctl enable multi-user.target
sudo systemctl set-default multi-user.target

附帶說明…要返回圖形模式,請使用相同的命令,但要使用graphical.target

sudo systemctl enable graphical.target
sudo systemctl set-default graphical.target

在多使用者模式下,您將只有一個基於文本的界面,但您可以使用命令啟動 X 伺服器startx。預設情況下startx,只使用/etc/X11/xorg.conf.

但是,如果您設置環境變數,XORGCONFIG那麼startx將使用/etc/X11/.

例如,您將創建文件/etc/X11/xorg.conf.fred以使 X 伺服器以單獨的 X 螢幕啟動。然後從控制台(在多使用者模式下)執行:

export XORGCONFIG=xorg.conf.fred
startx

這將啟動您的預設桌面環境。

然後,當您從桌面環境註銷時,您將返回您從中啟動它的多使用者模式 shell,並且還必須從該 shell 中註銷。

對於其他使用者,您需要創建一個單獨/etc/X11/xorg.conf.notfred的配置文件,其中包含所有 3 個監視器上的 1 個虛擬螢幕的配置。然後,當另一個使用者登錄(仍然是多使用者)時,將執行:

export XORGCONFIG=xorg.conf.notfred
startx

這將為他們啟動預設的桌面環境,並在他們從桌面環境註銷時再次將他們返回到登錄的 shell(多使用者模式)。

對於它的價值,這根本不是標準的,您可能會遇到以這種方式啟動桌面環境的其他問題,否則您可能沒有,所以您的里程可能會有所不同,但我確實認為它會完成您的要求. 讓我知道它是否有效或者您是否遇到問題,我可以根據需要更新答案。

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