在兩個顯示器上拉伸視窗,中間有“間隙”
我在 Ubuntu 14.04 上有一個使用 Compiz 作為視窗管理器的雙顯示器設置。我可以調整視窗大小以覆蓋兩個視窗。然而,雖然物理顯示面板相距幾厘米,但預設情況下,軟體認為它們彼此相鄰,中間沒有間隙。這意味著,例如,對角線最終看起來像這樣:
+----------+ +----------+ | | | / | | | | / | | | | / | | | |/ | | /| | | | / | | | +----------+ +----------+
我想要實現的是更像這樣的東西:
+----------+ +----------+ | | | / | | | |/ | | | | | | | | | | /| | | | / | | | +----------+ +----------+
這會導致部分視窗被隱藏,但這是可以接受的。
我可以讓 X 認為顯示器之間有如下差距:
$ xrandr Screen 0: minimum 320 x 200, current 2048 x 1280, maximum 32767 x 32767 LVDS1 connected (normal left inverted right x axis y axis) 1366x768 60.0 + 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis) HDMI2 connected primary 1024x1280+0+0 left (normal left inverted right x axis y axis) 376mm x 301mm 1280x1024 60.0*+ 75.0 1280x960 60.0 1152x864 75.0 1024x768 75.1 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 56.2 640x480 75.0 72.8 66.7 60.0 720x400 70.1 HDMI3 connected 1024x1280+1024+0 right (normal left inverted right x axis y axis) 376mm x 301mm 1280x1024 60.0*+ 75.0 1280x960 60.0 1152x864 75.0 1024x768 75.1 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 56.2 640x480 75.0 72.8 66.7 60.0 720x400 70.1 DP2 disconnected (normal left inverted right x axis y axis) DP3 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis) $ xrandr --fb 2184x1280 $ xrandr --output HDMI3 --pos 1160x0
乍一看,這似乎工作得很好——當我將滑鼠沿對角線移動穿過顯示器之間的間隙時,它會消失在顯示器邊框的“後面”,然後重新出現在我期望對角線繼續存在的地方。
但是,我無法再移動或調整視窗大小以在兩個顯示器上進行拉伸。滑鼠
wmctrl
似乎都無法做到這一點。有沒有辦法實現我想要的?
我在 Ask Ubuntu 上找到了一個相關的問題,這對我有用。整個過程的說明,包括在監視器之間創建“間隙”(至少在 Ubuntu 14.04 上有效):
- 找出目前的總螢幕尺寸(假設目前顯示器之間沒有虛擬間隙):
$ xrandr | grep Screen Screen 0: minimum 320 x 200, current
2048 x 1280
, maximum 32767 x 32767
- 將所需的間隙大小(以像素為單位)添加到寬度(之後顯示的第一個值
current
——在我的例子中為 2048)。我選擇了 136 像素的間隙,所以我的新螢幕寬度為 2184。- 設置新的螢幕尺寸:
xrandr --fb 2184x1280
- 找出您右側顯示器的顯示名稱:
$ xrandr | grep ^[^\(]*right
HDMI3
connected 1024x1280+
1024
+0 right (normal left inverted right x axis y axis) 376mm x 301mm
- 虛擬地將右側顯示器進一步向右移動以創建間隙。將您的間隙大小添加到上述命令顯示的第三個數字(以粗體突出顯示)。在我的範例中,這是 1024+136=1160:
xrandr --output HDMI3 --pos 1160x0
現在,讓 Compiz 將整個區域作為一個單獨的螢幕來處理
- 啟動 CompizConfig 設置管理器(可安裝
sudo apt-get install compizconfig-settings-manager
)- 轉到“正常選項”外掛(例如在搜尋框中輸入)
- 選擇選項卡“顯示設置”
- 取消選中“檢測輸出”
- 如果這還不能解決問題,請右鍵點擊“輸出”下列出的每一行,選擇“編輯”並刪除其內容。
最大化視窗時,它現在將拉伸兩個監視器。全屏也會拉伸兩台顯示器。
顯然,這並不理想,因為大多數時候希望最大化的視窗填充單個顯示器。這意味著,必鬚根據目前所需的行為來檢查和取消選中“檢測輸出”Compiz 選項。
對非英語語言環境的使用者的說明:如果您因為不知道他們的名稱是如何翻譯而找不到 CompizConfig 外掛和設置,請像這樣啟動 CompizConfig:
LANG=C ccsm