我在使用默认 vncserver (TigerVNC) 的 CentOS 7.5 计算机上遇到问题。一切工作正常,除了一个视觉缺陷:最大化显示器的尺寸与显示器的实际尺寸不相等(它更大)。结果是最大化的窗口在右边缘和下边缘被裁剪。
这个问题的特殊之处在于,它只发生在不是启动窗口管理器x启动。这就是我想要的。给您一些背景知识:想法是通过网页中的 NoVNC 提供应用程序(全屏)。只有应用程序应该是可访问的,因此不需要窗口管理器。几年前我已经在 CentOS 6 上做到了这一点,而且效果非常好。
我已经尝试过xrandr
并且可以毫无问题地设置不同的分辨率。重新连接时,VNC 客户端的窗口也使用新的分辨率。但应用程序一直认为还有更多可用空间。
给您一个数字示例来说明大小如何不相等:如果我将分辨率设置为 1024x768,则 VNC 客户端的窗口将打开一个 1024x768 大小的窗口。该决议的桌面虽然看起来大约大了10%。就好像最大化的应用程序认为它的绝对大小应该为 ~1124x820。
本质上,这个问题与 Mac OS 的缩放功能相当,其中内容被放大,您可以通过将鼠标移动到屏幕边缘来平移。只是在我的例子中,内容没有缩放,而且我也无法平移查看隐藏在 VNC 客户端边缘后面的内容。
我已经验证这个问题与客户端无关(HTML 客户端和本机客户端的行为相同)。
我在我的中使用的命令系统文件对我来说似乎不错:/usr/bin/vncserver %i -desktop myapp -geometry 1024x768 -depth 24
.
我的x启动文件:
#!/bin/sh
unset SESSION_MANAGER
[ -r /.Xresources ] && xrdb /.Xresources
/bin/xsetroot -solid grey -cursor_name arrow
/bin/vncconfig -nowin &
/bin/xrandr -s 1024x768
/usr/bin/xterm -maximized
我发现 2002 年有一个类似的问题这里(Ars Technica 论坛),但没有解决方案。
编辑:
我做了一些进一步的测试,如果我设置-geometry 1124x846
所有客户端都可以正常工作。这似乎是应用程序认为是全屏分辨率的分辨率。所以问题是这个决议从何而来以及我如何改变它。通过提高分辨率-geometry
并不会使应用程序随之增长。
答案1
事实证明这并不是什么新鲜事,我只是没有使用正确的关键字来找到答案。以下是两个提供答案的相关问题: