为 RealVNC 的 vncserver-x11-serviced 配置默认分辨率和颜色深度?

为 RealVNC 的 vncserver-x11-serviced 配置默认分辨率和颜色深度?

当在网上搜索有关如何配置 RealVNC 会话的默认分辨率和颜色深度的信息时,我总是会遇到有关将命令行参数传递给vncserver诸如此类的内容vncserver -geometry 1024x768。但是,我的系统配置为通过/etc/init.d/vncserver-x11-servicedRealVNC 安装的脚本在启动时启动 RealVNC 服务器(对于运行级别 2-5;我使用的是 Debian);我没有使用该vncserver命令。如何配置它以获得特定的默认分辨率和颜色深度?有我可以使用的配置文件吗?

答案1

注意:我知道这个答案适用于 RealVNC 的虚拟模式而不是服务模式(vncserver-x11-serviced),但我认为虚拟模式通常更有用,而且它是唯一可以更改分辨率的模式动态地。当 RealVNC 在服务模式下运行时,它可能是一种非常相似的更改 RealVNC 分辨率的技术。


安装 RealVNC(在撰写本文时,版本为 5.2.1)后,使用 向其应用免费许可证vnclicense -add ...,并在“虚拟模式”下运行 VNC 服务器(还有服务和用户模式,我不会详细介绍)在这里,因为它已经足够复杂了),我发现这个兔子洞有多深。 :-) 这方面的文档远非全面或明显,RealVNC 网站上唯一的知识库文章是有点过时(谈论vncserver命令而不是当前的明显推荐, vncserver-virtual), 或大约动态改变分辨率与兰德R期间会话,而不是选择 VNC 服务器启动时应使用的分辨率。

首先,在 X Window 系统的上下文中倾向于使用“几何”一词,而不是“分辨率”一词。 VNC 服务器(或者 X 本身?)提供给您的默认分辨率似乎是 800x600。

现在,当从命令行手动启动 RealVNC 服务器时(或者显然在从类似 启动时以自动方式启动rc.local),您可以直接将参数传递到 X Server,并且用于设置分辨率的参数是geometry。因此,这将启动一个分辨率为 1280x1024 的虚拟 RealVNC 服务器实例:

> vncserver-virtual -geometry 1280x1024

当我测试这样的东西时,我通常以 root 身份运行,所以我切换到我想要首先通过 VNC 进入其桌面的用户:

> sudo -u [someuser] vncserver-virtual -geometry 1280x1024

geometry当然,这需要在命令行上传递一个参数。 RealVNC还支持通过各种配置文件配置VNC服务。然而,令人困惑的是,“Xvnc”(UNIX 系统上使用的底层 RealVNC 服务器,与 X 通信,需要采用geometry配置参数)的配置必须放在不同的位置来自“普通”RealVNC 配置文件;无论是/etc/vnc/config.custom用于服务器范围的设置,还是~/.vnc/config用于用户特定的设置。这些与其他 RealVNC 配置文件完全不同,找出这一点非常困难。正如我所说,这方面的文档很糟糕。因此,为了不必在命令行中指定分辨率,请创建文件/etc/vnc/config.custom并为其提供以下内容:

-geometry 1280x1024

然后当你跑步时:

> sudo -u [someuser] vncserver-virtual

...该 VNC 服务器实例的分辨率默认为 1280x1024。

我假设这个配置文件也将被守护进程使用vncserver-virtuald同样,对于每个vncserver-virtual它生成的实例(事实上,这可能是设置守护进程默认分辨率的唯一方法),但由于守护进程需要企业许可证才能使用,而我只使用免费许可证,因此我无法测试它。

哇!


顺便说一下,我之前提到过 RandR。这是在 UNIX 系统上连接到 RealVNC 服务器时获得不同分辨率/几何形状的另一种方法。它仅在 RealVNC 服务器以“虚拟模式”运行时有效。它还允许在 VNC 会话期间动态更改分辨率,并且在某种程度上更好的记录-geometry我上面提到的参数的东西。 :-) 当设置此配置设置时(并且进入“正常”RealVNC 配置文件集,而不是那些单独的 Xvnc 配置文件...如图),您应该能够使用xrandrVNC 会话中的命令将分辨率动态更改为中指定的分辨率之一那个RandR设定。

相关内容