在Linux中更改VNC会话的分辨率

时间:2020-03-05 18:40:39  来源:igfitidea点击:

我使用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

而已。