VNC / XFCE 中不可见的应用程序内容

VNC / XFCE 中不可见的应用程序内容

我在运行的某些应用程序中确实遇到了奇怪的渲染问题老虎VNC远程主机上的会话,其中XFCE已开始。

正如您从屏幕截图中看到的,虽然应用程序正确显示其内容(例如文件浏览器、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

非常感谢您的帮助

答案1

VNC服务器通常只是使用X11的屏幕抓取功能来获取屏幕上显示的当前图片,然后压缩它,然后将其发送给您。

如果 X11 不知道屏幕内容,这是行不通的,这是在硬件上使用 OpenGL 加速的程序的标准。你的 Matlab 正是这样做的。如果您通过 运行它ssh -X,则禁用硬件加速,并且您会获得像素(但速度要慢得多)。

我什至不确定 Matlab 是否有针对该模式的检测,只是为了惹恼那些购买一个 matlab 许可证并在整个公司的 VNC 服务器上运行它的人。

相关内容