You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

x11vnc导致KDE Plasma屏幕关闭时重置,请求恢复屏幕关闭状态下正常VNC远程功能

x11vnc导致KDE Plasma屏幕关闭时重置,请求恢复屏幕关闭状态下正常VNC远程功能

看起来你遇到的问题是KDE Plasma的电源管理和x11vnc的交互出了状况——之前能在屏幕关闭的状态下正常远程操作,现在屏幕一休眠(不管是自动超时还是手动关闭),VNC客户端就收不到画面更新,必须唤醒屏幕才能恢复。结合你的Ubuntu Studio 22.04 + KDE环境,我整理了几个实用的解决方向,你可以逐个尝试:

1. 调整x11vnc启动参数,适配屏幕休眠场景

你的x11vnc命令里用了-noxdamage,这个参数会关闭XDamage扩展的使用,而XDamage原本是x11vnc高效捕捉屏幕更新的关键。当KDE关闭屏幕进入休眠时,可能会暂停XDamage相关的更新推送,这时候调整参数或许能解决问题:

  • 去掉-noxdamage,改用默认的-damage(或者直接不写这个参数,因为默认是开启的),让x11vnc依赖XDamage获取屏幕更新,即使屏幕休眠也能正常工作
  • 添加-display :0明确指定X11显示设备,避免屏幕休眠后x11vnc找不到正确的显示上下文
  • 加上-ncache 10开启画面缓存,提升远程显示的稳定性,尤其是在屏幕状态切换时

修改后的x11vnc命令示例:

x11vnc -clip $GEOMETRY -auth /path/to/.Xauthority -forever -loop10 -damage -repeat -rfbauth /path/to/passwd -rfbport 5900 -shared -display :0 -ncache 10 &

2. 配置KDE Plasma电源管理,允许远程访问时保持屏幕更新

KDE的电源管理可能有一些隐藏的节能设置,会在屏幕休眠时中断远程服务的运行,你可以这么调整:

  • 打开系统设置 > 电源管理 > 节能,找到“当屏幕关闭时”的相关选项,确保没有勾选“禁用不必要的服务”这类可能影响远程连接的设置
  • 进入系统设置 > 显示和监视器 > 显示配置,点击右上角的更多设置,看看是否有“远程访问时保持屏幕活动”的选项,开启它
  • 另外,检查系统设置 > 隐私与安全 > 屏幕保护程序,暂时关闭屏幕保护程序测试,避免它干扰X11的显示连接

3. 换用KDE官方的VNC服务(krfb)

你提到之前可能用的是KDE默认的VNC服务器,那krfb就是Plasma官方适配的远程桌面工具,它和KDE的集成度更高,不会出现屏幕休眠后断更的问题:

  • 先停止当前运行的x11vnc:pkill x11vnc
  • 打开系统设置 > 共享 > 远程桌面,开启“允许远程连接”,设置好访问密码和端口
  • 测试关闭屏幕后的远程访问,krfb会自动处理屏幕休眠时的画面更新,不需要额外的脚本配置

4. 优化login.sh的启动时机和权限

你的login.sh是登录后执行的,可能存在启动过早的问题,导致x11vnc没有正确绑定到KDE的显示会话:

  • 把脚本里的sleep 10改成sleep 15,确保KDE桌面完全加载后再启动x11vnc
  • 检查脚本的可执行权限:chmod +x ~/login.sh
  • 尝试把脚本添加到系统设置 > 开机和关机 > 自动启动中,而不是手动调用,这样能确保脚本在正确的会话环境下运行

备注:内容来源于stack exchange,提问作者AaronD

火山引擎 最新活动