X11

VNC / XFCE 中不可見的應用程序內容

  • July 22, 2021

我在啟動XFCE的遠端主機上的tigervnc會話中執行的某些應用程序確實有一個奇怪的渲染問題。

正如您從螢幕截圖中看到的那樣,雖然應用程序正確顯示了它們的內容(例如文件瀏覽器、Visual Studio 程式碼……),但 matlab 視窗不顯示其內容。我相信這不是與 matlab 相關的問題,因為如果我通過同一主機上的“ssh -X”會話執行 matlab,它會正確顯示。

這可能是相關的,我在觸發 pyplot.show() 時也看到了 matplotlib 的那種渲染問題,圖像有點透明,我們看到要顯示的圖像與桌面背景圖像混合在一起。

在此處輸入圖像描述

如有必要,xstartup 腳本是

#!/bin/sh
# Start Xfce4 Desktop
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session xfce4-session &

和 vncserver 一起執行vncserver -SecurityTypes None -depth 32 -geometry 1680x1050 -cleanstale

非常感謝您的幫助

VNC 伺服器通常只使用 X11 的螢幕抓取功能來獲取螢幕上顯示的目前圖片,然後將其壓縮,然後發送給您。

如果 X11 不知道螢幕內容,這是行不通的,這是在硬體上使用 OpenGL 加速的程序的標準。您的 Matlab 正是這樣做的。如果你通過 執行它ssh -X,硬體加速被禁用,你得到像素(但慢得多)。

我什至不確定 Matlab 是否沒有檢測到該模式,只是為了惹惱購買一個 matlab 許可證並在整個公司的 VNC 伺服器上執行它的人。

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