
在我的公司環境中,我需要運行一台 Windows 計算機,該計算機在伺服器叢集中的計算機上取得 VNC 會話。我的 Windows 機器是雙頭,具有不同解析度的顯示器(左側為 1600x1080,右側為 1920x1200)。如果我建立跨顯示器的 VNC 會話,則最大化 VNC 會話中的視窗會導致它跨顯示器延伸。
相反,我希望“最大化”事件的行為就像在我的 Windows 電腦上一樣 - 我只想最大化視窗所在的顯示。
我如何定義什麼,我稱之為「最大化區域」? VNC 圖形平面中的區域,當我單擊「最大化」時,視窗僅擴展到其當前(且大部分)所在的區域。
我可以在 gnome、X、xrandr 或其他神奇的介面中執行此操作嗎?
答案1
我假設 xrandr 和 xdpyinfo 將您的顯示器顯示為單個螢幕,其尺寸就像兩個顯示器加在一起一樣,例如 3520x1200。
因此,您要做的就是嘗試以某種方式將螢幕分割回兩個邏輯桌面。
我知道最簡單的方法是使用所謂的「平鋪視窗管理器」。 xmonad 和 dwm 是兩個例子。
另一種選擇是使用僅允許垂直最大化的視窗管理器,例如 Openbox、Blackbox 或 Sawfish。他們通常有快捷方式來執行此操作,例如,在標題欄中的最大化按鈕上單擊滑鼠中鍵。
另一個選擇是使用像 Devilspie 這樣的東西,它根據規則設定視窗屬性,例如將 Firefox 放置在 0x0 處,大小為 1600x1080 等。
答案2
您需要關閉 Xinerama。這是在 /etc/xorg.conf 檔案中完成的。但這也可能會破壞你雙頭操作的能力。如果您在 NVIDIA 上運行,請使用「nvidia-settings」程式設定正確的 xorg.conf,並且不需要 Xinerama。