Compton 与多显示器配合的要点
Compton 作为 X11 窗口合成器,本身不负责显示器的连接与布局,多显示器的分辨率、位置与扩展/镜像模式应由 xrandr 或桌面环境设置完成;Compton 会自动适配已连接的显示器,无需为每个屏幕单独写配置。只要确保显示器已在系统中正确连接与排列,Compton 即可在多屏下正常工作。
快速上手步骤
- 安装 Compton(示例)
- Debian/Ubuntu 系:sudo apt-get update && sudo apt-get install -y compton
- RHEL/CentOS 系:sudo yum install -y compton
- 用 xrandr 正确布局多屏(先查看名称与状态)
- 查看:xrandr --query
- 扩展示例(将 HDMI-1 放在 eDP-1 右侧,DP-1 放在 HDMI-1 右侧):
- xrandr --output HDMI-1 --auto --right-of eDP-1
- xrandr --output DP-1 --auto --right-of HDMI-1
- 创建基础配置文件(~/.config/compton.conf)
- backend “glx”
- glx-no-stencil false
- glx-copy-from-front true
- glx-shape true
- glx-fbconfig false
- glx-hardware true
- glx-damage true
- damage true
- 启动与验证
- 启动:compton -c ~/.config/compton.conf
- 验证:检查窗口阴影、透明度、拖动与跨屏是否正常。
常用配置与多屏优化
- 阴影与性能
- 对特定应用关闭阴影可提升跨屏一致性:shadow-exclude = [ “class_g ‘Firefox’”, “class_g ‘Gnome-terminal’” ]
- 需要透明/半透明时启用:opacity-rule = [ “class_g ‘Gnome-terminal’ A”, “class_g ‘Firefox’ A” ]
- 渲染与同步
- 使用硬件加速:backend “glx” 与 glx-* 系列选项
- 避免撕裂可开启垂直同步(若驱动支持):glx-vsync = true
- 注意事项
- 不同 GPU 驱动 与 Compton 版本 对选项支持存在差异,遇到异常可先回退到基础配置逐项启用。
开机自启动与环境差异
- 会话级自启(推荐)
- 将 compton -c ~/.config/compton.conf 加入窗口管理器/会话的启动脚本(如 Openbox autostart、i3 config、Xfce 会话启动等)。
- systemd 用户服务(可选)
- 创建用户级服务:/usr/lib/systemd/user/compton.service
- [Unit] Description=Compton Compositor;After=graphical-session.target
- [Service] ExecStart=/usr/bin/compton -c %h/.config/compton.conf;Restart=on-failure
- [Install] WantedBy=graphical-session.target
- 启用:systemctl --user enable --now compton.service
- 发行版与桌面差异
- 某些桌面/版本对合成器集成方式不同,若使用 systemd 建议优先采用“用户级”服务;若与显示管理器启动顺序冲突,可改为会话级自启。
故障排查清单
- 显示器未正确扩展或命名错误:用 xrandr --query 确认名称与相对位置,必要时重新执行 xrandr 布局命令。
- 合成器未生效或被覆盖:确认仅运行一个合成器;重启会话或系统后检查进程与日志。
- 阴影/透明度异常:在 shadow-exclude、opacity-rule 中对问题应用做定向排除或启用。
- 性能或撕裂:切换 backend(glx/xrender)、开启/关闭 glx-vsync,更新显卡驱动;必要时简化配置逐项定位。