温馨提示×

Compton如何与多显示器设置配合

小樊
42
2025-12-16 20:09:30
栏目: 编程语言

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,更新显卡驱动;必要时简化配置逐项定位。

0