Compton与远程桌面的关系与总体思路
Compton 是 X11 的窗口合成器,负责阴影、透明度、淡入淡出等合成效果,本身不提供远程桌面功能。要实现远程桌面,应选择合适的远程桌面方案(如 XRDP、x11vnc、VNC 等),并在远程会话中按需启用或配置 Compton,以获得更流畅的视觉体验与避免性能问题。
方案一 XRDP 远程桌面搭配 Compton(面向 Ubuntu/Debian 等)
- 安装与启用 XRDP
- 安装组件:sudo apt update && sudo apt install xrdp
- 允许服务启动:sudo systemctl enable --now xrdp
- 防火墙放行:sudo ufw allow 3389/tcp(如使用 UFW)
- 会话环境准备
- 若使用 Xfce,建议安装:sudo apt install xfce4 xfce4-goodies
- 在登录会话选择 Xorg 会话(XRDP 默认使用 Xorg 后端)
- 在远程会话中启用 Compton
- 方式 A(用户级自启):在 ~/.xsession 或 ~/.xinitrc 中加入
- compton --backend glx --vsync true --shadow-exclude ‘!focused’ -b
- 方式 B(系统级服务):创建 /etc/xdg/autostart/compton.desktop
- [Desktop Entry]
- Type=Application
- Name=Compton
- Exec=/usr/bin/compton --backend glx --vsync true --shadow-exclude ‘!focused’
- Hidden=false
- 连接与验证
- 本地使用 Windows 远程桌面连接(mstsc)或 Remmina,输入远程 IP:3389
- 登录后在远程主机执行:pgrep -x compton 检查是否运行
- 性能提示
- 远程会话带宽有限时,建议关闭或简化特效:–shadow false、–fade false、–blur-background false
- 优先使用 --backend glx,并在 /etc/X11/xorg.conf.d/ 中确保使用硬件加速的 DRI 配置(如 DRI3、AccelMethod SNA/GLAMOR)
方案二 x11vnc 或 VNC 搭配 Compton(轻量、灵活)
- 安装与配置
- 安装:sudo apt install x11vnc
- 设置 VNC 密码:x11vnc -storepasswd ~/.vnc/passwd
- 启动与自启
- 临时启动:x11vnc -display :0 -passwdfile ~/.vnc/passwd -forever -shared -bg -rfbport 5900
- 自启示例(systemd 用户服务):
- /etc/systemd/user/x11vnc.service
- [Unit] Description=x11vnc
- [Service] ExecStart=/usr/bin/x11vnc -display :0 -passwdfile %h/.vnc/passwd -forever -shared -rfbport 5900
- Restart=on-failure
- 启用:systemctl --user daemon-reload && systemctl --user enable --now x11vnc
- 在 VNC 会话中启用 Compton
- 将 compton 加入桌面会话的自动启动(同上),或在 ~/.vnc/xstartup 的会话启动命令后追加:
- compton --backend glx --vsync true --shadow-exclude ‘!focused’ -b
- 连接
- 使用任意 VNC 客户端(如 TigerVNC、RealVNC、Remmina)连接 IP:5900
- 适用场景
- 需要多用户并发、端口自定义、与现有窗口管理器解耦的场景
Compton 配置要点与性能优化
- 配置文件位置:~/.config/compton.conf(不存在可创建)
- 示例(面向远程会话的保守配置):
- backend = “glx”
- vsync = “true”
- shadow = false
- fade = false
- blur-background = false
- unredir-if-possible = true
- shadow-exclude = “!focused”
- 调试与排错
- 前台运行观察日志:compton --backend glx --vsync true --shadow-exclude ‘!focused’
- 查看会话日志:journalctl --user -u x11vnc 或查看 Xorg 日志 /var/log/Xorg.*.log
- 若画面撕裂或抖动,切换 vsync(true/false)并测试;若性能不足,优先关闭阴影/模糊/淡入淡出
常见问题与排查
- 黑屏或桌面未刷新:确认会话使用的是 Xorg(XRDP 登录时选择 Xorg),而非 Wayland;必要时在 /etc/xrdp/startwm.sh 中显式启动会话
- 输入法不跟随:在 ~/.xprofile 或会话启动脚本中设置输入法环境变量,例如
- export GTK_IM_MODULE=fcitx
- export QT_IM_MODULE=fcitx
- export XMODIFIERS=“@im=fcitx”
- 远程会话卡顿:减少合成特效(关闭阴影/模糊/淡入淡出),优先使用 glx 后端,并确保显卡驱动与 DRI 正常