温馨提示×

centos compton如何设置多显示器

小樊
33
2025-12-29 11:33:36
栏目: 智能运维

CentOS 下 Compton 多显示器设置指南

一 核心原则与准备

  • Compton 是 X11 的窗口合成器,不负责显示器的连接与排列;多显示器的物理布局与刷新率需先用 xrandr 配置好,Compton 会自动适配已连接的输出。使用命令查看输出名称:xrandr --query(常见名称如 eDP-1、HDMI-1、DP-1)。若使用 Wayland 会话,请改用 picom(Compton 的 Wayland 分支)。

二 安装与基础配置

  • 安装 Compton(CentOS 7/8 常用 yum,较新版本可用 dnf):
    • sudo yum install -y compton 或 sudo dnf install -y compton
  • 创建配置文件并写入基础项(启用 OpenGL 加速、减少重绘、基础阴影与透明规则):
    • mkdir -p ~/.config && nano ~/.config/compton.conf
    • 示例关键项:
      • backend = “glx”
      • glx-no-stencil = true
      • glx-damage = true
      • use-damage = true
      • vsync = “opengl-swc” # 如仍有撕裂,可改为 “opengl” 或 false 测试
      • shadow = true
      • shadow-exclude = [ “_NET_WM_WINDOW_TYPE@:a = ‘desktop’”, “_NET_WM_WINDOW_TYPE@:a = ‘dock’”, “_NET_WM_WINDOW_TYPE@:a = ‘tooltip’”, “_NET_WM_WINDOW_TYPE@:a = ‘notification’” ]
      • opacity-rule = [ “90:class_g = ‘Gnome-terminal’”, “95:class_g = ‘Firefox’ && argb && !override_redirect” ]
  • 说明:上述配置为多屏通用起点;如需按输出单独设置刷新率,可在配置中加入 refresh-rate(见下一节示例)。

三 多显示器布局与刷新率设置

  • 用 xrandr 设置扩展/镜像与相对位置(示例将 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
    • 如需镜像:将 --right-of 替换为 –same-as eDP-1
  • 在 Compton 中按输出指定刷新率(与 xrandr 一致可减轻卡顿与撕裂):
    • refresh-rate = [ “eDP-1: 60”, “HDMI-1: 144”, “DP-1: 60” ]
  • 可选:将 xrandr 参数通过 Compton 传递(一般不需要,除非有特殊需求):
    • xrandr-args “–output HDMI-1 --auto --right-of eDP-1 --output DP-1 --auto --right-of HDMI-1”

四 启动与自启动

  • 会话/窗口管理器自启动:将 compton -c ~/.config/compton.conf 加入 Openbox/i3/bspwm 等的启动脚本或 autostart。
  • systemd 用户服务(推荐,避免与登录会话不同步):
    • mkdir -p ~/.config/systemd/user
    • nano ~/.config/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 Environment=DISPLAY=:0
      • [Install] WantedBy=graphical-session.target
    • 启用并启动:
      • systemctl --user daemon-reload
      • systemctl --user enable --now compton.service
  • 如需系统级服务(不推荐,易与用户会话不同步),可使用 systemd 系统服务并在 [Service] 中指定 User=Environment=DISPLAY=:0

五 常见问题与优化

  • 撕裂/卡顿:
    • 确认显示器物理刷新率与 Compton 的 refresh-rate 一致;切换 vsync(“opengl-swc”/“opengl”/false)逐一测试;高刷屏可将 fps-limit 设为显示器刷新率或 0(无上限,视 GPU/驱动而定)。
  • 性能优先:
    • 关闭或简化阴影/模糊(如 shadow = false 或仅顶层窗口启用);对全屏应用启用 unredir-if-possible = true 并在 unredir-if-possible-exclude 中排除录屏/叠加工具;通过 shadow-exclude/blur-exclude/opacity-rule 对终端、浏览器、视频等进行差异化处理。
  • 多屏不同 DPI/缩放:
    • 使用 xrandr 缩放或桌面环境缩放后,保持 backend = “glx”glx-damage 开启,必要时适度提高 shadow/blur 半径以适配视觉一致性。
  • 快速排障:
    • 临时开启日志:log-level = “debug”; log-file = “/tmp/compton.log”; 复现问题后用 systemctl --user status compton.servicejournalctl --user -u compton.service 查看运行与错误信息。

0