在Linux中更改VNC会话的分辨率
我使用VNC连接到工作中的Linux工作站。在工作中,我有一台20英寸的显示器,其分辨率为1600x1200,而在家里,我使用的笔记本电脑的分辨率为1440x900。
如果将vncserver设置为以1440x900运行,我会在显示器上浪费很多空间,而如果将其设置为以1600x1200运行,它将无法在笔记本电脑的屏幕上显示,因此必须一直滚动。
有没有什么好方法可以即时调整VNC会话的大小?
我的VNC服务器是SuSE64上运行的RealVNC E4.x(我不记得确切的版本)。
解决方案
回答
据我所知,仅使用VNC就无法更改客户端的分辨率,因为它只是一个"监视器镜像"应用程序。
但是,TightVNC(这是VNC客户端和服务器应用程序)可以在客户端调整屏幕大小,即使所有内容变小(类似于图形程序中的图像大小调整技术)。如果我们不使用太小的字体,那应该可以工作。理论上,VNC应该在不同的VNC应用程序之间兼容。
回答
我认为这取决于窗口管理器。
我是Windows用户,所以这可能是一个错误的猜测,但是:在Linux机器上至少没有一些叫做X-Server的东西在可能是VNC有趣目标的机器上运行,我们可以使用" X-客户"?
VNC只是获取屏幕上的所有内容,然后"通过网络将其隧道化"。如果我不是完全错误,那么" X"协议应该使我们有机会使用客户端的桌面分辨率。
尝试一下Wikipedia上的X服务器,这可能会给我们一个大概的概述。
回答
我认为最好的办法是在不同的端口上以不同的几何体运行VNC服务器。我会根据手册页尝试
$vncserver :0 -geometry 1600x1200 $vncserver :1 -geometry 1440x900
然后,我们可以从办公室连接到一个端口,再从家连接到另一个端口。
编辑:然后使用xmove在两个x服务器之间移动窗口。
回答
我不确定Linux,但是在Windows下,tightvnc将检测并适应服务器上的分辨率更改。
因此,我们应该能够将VNC插入工作站,等效于右键单击桌面,属性,将分辨率设置为任意值,并让客户端vnc窗口相应地调整其大小。
回答
On the other hand, if there's a way to move an existing window from one X-server to another, that might solve the problem.
我认为我们可以使用xmove在两个单独的x服务器之间移动窗口。因此,如果可行,这至少应该为我们提供一种方法来完成我们想要的事情,尽管不像更改分辨率那样容易。
回答
Real VNC服务器4.4包含对Xrandr的支持,该支持允许调整VNC的大小。使用以下命令启动服务器:
vncserver -geometry 1600x1200 -randr 1600x1200,1440x900,1024x768
然后调整大小:
xrandr -s 1600x1200 xrandr -s 1440x900 xrandr -s 1024x768
回答
发现Ubuntu(10.04)附带的vnc4server(4.1.1)已打补丁,还支持通过xrandr快速更改分辨率。不幸的是,由于未记录该功能,因此很难找到。所以这是...
用多个" geometry"实例启动服务器,例如:
vnc4server -geometry 1280x1024 -geometry 800x600
在vncviewer的终端中(启用:"允许dymanic桌面调整大小"),使用xrandr查看可用模式:
xrandr
更改重新溶液,例如使用:
xrandr -s 800x600
而已。