我想动态更改 VNC 会话的分辨率/几何形状,而不影响其中运行的程序。
我提到:更改 Linux 中 VNC 会话的分辨率。我没有 root 权限来更新较新的 vncserver 版本,因此以下命令目前不起作用:
vncserver -geometry 1280x1024 -randr 1280x1024,1280x800
目前,每当我想将屏幕尺寸从一台显示器更改为另一台显示器时,我都会终止会话并使用修改后的-geometry
选项重新启动它。因此我必须释放其中的程序。
有没有办法破解存储几何图形的文件并更改用于更改分辨率的值?我找不到这样的文件。在我的主文件夹中,我看到以下文件:
mgandhi@starbase:~/.vnc$ ll
total 12
-rwxr-xr-x 1 mgandhi bc 334 Jun 25 10:32 xstartup
-rw------- 1 mgandhi bc 8 Jun 25 10:32 passwd
-rw-r--r-- 1 mgandhi bc 6 Jun 25 11:08 starbase.radisys.com:23.pid
-rw-r--r-- 1 mgandhi bc 1664 Jun 25 11:08 starbase.radisys.com:23.log
文件的内容xstartup
没有帮助:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &
...这里的xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
线对于任何分辨率都保持不变。
[注:我看到它xrandr
安装在linux机器上。]
答案1
一个“Hack”解决方案:在没有任何指定几何图形的情况下启动 vncserver
vncserver :1
然后我将连接到 vnc,在 Fedora 中,我只需进入“设置”>“显示”>“未知 0”,然后像这样动态更改分辨率。只需单击一下,而不是键入 (DX),但这很容易。
答案2
上面针对 Fedora 的答案对我(RedHat Enterprise)不起作用,我能够通过以下步骤完成您所需要的:
1) 登录您的 VNC 会话(现有)
2)打开终端并输入:xrandr -s 1920x1080(或其他支持的几何图形/显示*)
要查看 randr 支持的显示器/分辨率,请键入:
xrandr(不带参数)
很简单,没什么花哨的!
答案3
在 systemd 配置文件(或其他适用的启动脚本)中设置几何选项 ~ 此示例适用于 Fedora 28(假设 selinux 文件描述符是固定的)。
将 USERNAME 替换为实际用户名:
cat /etc/systemd/system/vncserver@\:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=USERNAME
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/USERNAME/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
答案4
$HOME/.vnc/xstartup
是您要查找的文件,是的,您可以在那里设置几何图形。它应该会在重新连接时进行调整,而不会破坏您的会话(不是 100% 确定,但相当确定)。