為 RealVNC 的 vncserver-x11-serviced 配置預設解析度和顏色深度?

為 RealVNC 的 vncserver-x11-serviced 配置預設解析度和顏色深度?

當在網路上搜尋有關如何配置 RealVNC 會話的預設解析度和顏色深度的資訊時,我總是會遇到有關將命令列參數傳遞給vncserver諸如此類的內容vncserver -geometry 1024x768。但是,我的系統配置為透過/etc/init.d/vncserver-x11-servicedRealVNC 安裝的腳本在啟動時啟動 RealVNC 伺服器(對於運行等級 2-5;我使用的是 Debian);我沒有使用該vncserver命令。如何配置它以獲得特定的預設解析度和顏色深度?有我可以使用的設定檔嗎?

答案1

注意:我知道這個答案適用於 RealVNC 的虛擬模式而不是服務模式(vncserver-x11-serviced),但我認為虛擬模式通常更有用,而且它是唯一可以更改解析度的模式動態地。當 RealVNC 在服務模式下運行時,它可能是一種非常相似的更改 RealVNC 解析度的技術。


安裝 RealVNC(在撰寫本文時,版本為 5.2.1)後,使用 為其應用免費許可證vnclicense -add ...,並在“虛擬模式”下運行 VNC 伺服器(還有服務和用戶模式,我不會詳細介紹)在這裡,因為它已經夠複雜了),我發現這個兔子洞有多深。 :-) 這方面的文檔遠非全面或明顯,RealVNC 網站上唯一的知識庫文章是有點過時(談論vncserver命令而不是目前的明顯推薦, vncserver-virtual), 或約動態改變分辨率與蘭德R期間會話,而不是選擇 VNC 伺服器啟動時應使用的解析度。

首先,在 X Window 系統的上下文中傾向於使用“幾何”一詞,而不是“分辨率”一詞。 VNC 伺服器(或 X 本身?)提供給您的預設解析度似乎是 800x600。

現在,當從命令列手動啟動 RealVNC 伺服器時(或顯然在從類似 啟動時以自動方式啟動rc.local),您可以直接將參數傳遞到 X Server,並且用於設定解析度的參數是geometry。因此,這將啟動一個解析度為 1280x1024 的虛擬 RealVNC 伺服器執行個體:

> vncserver-virtual -geometry 1280x1024

當我測試這樣的東西時,我通常以 root 身份運行,所以我切換到我想要先通過 VNC 進入其桌面的用戶:

> sudo -u [someuser] vncserver-virtual -geometry 1280x1024

geometry當然,這需要在命令列上傳遞參數。 RealVNC也支援透過各種設定檔配置VNC服務。然而,令人困惑的是,「Xvnc」(UNIX 系統上使用的底層 RealVNC 伺服器,與 X 通信,需要採用geometry設定參數)的配置必須放在不同的位置來自「普通」RealVNC 設定檔;/etc/vnc/config.custom用於伺服器範圍的設定或使用者~/.vnc/config特定的設定。這些檔案與其他 RealVNC 設定檔完全分開,要找到這一點非常困難。正如我所說,這方面的文檔很糟糕。因此,為了不必在命令列中指定分辨率,請建立該文件/etc/vnc/config.custom並為其提供以下內容:

-geometry 1280x1024

然後當你跑步時:

> sudo -u [someuser] vncserver-virtual

...該 VNC 伺服器實例的分辨率預設為 1280x1024。

我假設這個設定檔也會被守護程式使用vncserver-virtuald同樣,對於每個vncserver-virtual它產生的實例(事實上,這可能是設定守護程序預設解析度的唯一方法),但由於守護程式需要企業許可證才能使用,而我只使用免費許可證,因此我無法測試它。

哇!


順便說一下,我之前提到過 RandR。這是在 UNIX 系統上連接到 RealVNC 伺服器時獲得不同解析度/幾何形狀的另一種方法。它僅在 RealVNC 伺服器以「虛擬模式」運行時有效。它還允許在 VNC 會話期間動態更改分辨率,並在某種程度上更好的記錄-geometry我上面提到的參數的東西。 :-) 當設定此配置設定時(並且進入「正常」RealVNC 設定檔集,而不是那些單獨的 Xvnc 設定檔...如圖),您應該能夠使用xrandrVNC 會話中的命令將解析度動態變更為中指定的解析度之一RandR

相關內容