温馨提示×

CentOS Compton多显示器设置

小樊
53
2026-01-10 22:27:16
栏目: 智能运维

CentOS 下使用 Compton 配置多显示器

一 核心要点

  • ComptonX11 的窗口合成器,负责阴影、透明度、模糊等效果;它不直接管理显示器的连接、分辨率与位置,多显示器应由 xrandr 或桌面环境先行配置,Compton 会自动适配所有已连接的输出。这样在多屏扩展、镜像等布局下均可正常工作。

二 安装与准备

  • 安装 Compton(根据你的 CentOS 版本选择包管理器):
    • CentOS 7/8:sudo yum install -y compton
    • CentOS Stream 8/9 或较新版本:sudo dnf install -y compton
  • 确认显示器连接与命名:
    • 执行 xrandr --query 查看输出名称(如 eDP-1HDMI-1DP-1)与当前模式。
  • 使用 xrandr 完成多屏布局(示例为扩展至右侧):
    • xrandr --output HDMI-1 --auto --right-of eDP-1
    • xrandr --output DP-1 --auto --right-of HDMI-1
  • 建议先在图形会话中验证布局是否正确,再启动 Compton。

三 配置文件与关键参数

  • 创建配置目录与文件:mkdir -p ~/.config && nano ~/.config/compton.conf
  • 多显示器友好配置示例(按需在你的环境中微调):
    # 渲染后端:优先 glx,若出现异常可尝试 xrender
    backend = "glx"
    
    # 启用/禁用阴影(多屏下可按需关闭以提升性能)
    shadow = true
    shadow-exclude = [
      "name = 'Conky'",
      "class_g = 'Polybar'",
      "class_g = 'Xfce4-notifyd'"
    ]
    
    # 窗口透明度与规则
    opacity-rule = [
      "90:class_g = 'Xfce4-terminal'",
      "85:class_g = 'Firefox'"
    ]
    
    # 避免撕裂(与驱动/应用兼容性有关,必要时可改为 false)
    vsync = true
    
    # 模糊与特效(多屏下较耗资源,可按需关闭)
    blur-background = false
    blur-kern = "3x3box"
    
    # 其他稳定性项
    glx-no-stencil = true
    glx-copy-from-front = false
    
  • 说明:
    • Compton 对多显示器的支持是开箱即用的,关键在于使用 xrandr 正确布局,再按需调整合成参数(如阴影、模糊、透明度规则)以兼顾性能与观感。

四 启动与自启动

  • 手动前台运行(便于观察日志与排查):compton -c ~/.config/compton.conf
  • 使用 systemd 用户服务(推荐,随会话启动):
    1. 创建服务文件:nano ~/.config/systemd/user/compton.service
    2. 写入内容:
      [Unit]
      Description=Compton Window Composer
      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
      
    3. 启用并启动:
      • systemctl --user daemon-reload
      • systemctl --user enable --now compton.service
  • 若使用显示管理器(如 GDM)并希望系统级启动,可创建系统服务,但更推荐用户级服务以避免会话与权限问题。启动后可用 systemctl --user status compton.service 查看状态。

五 常见问题与排查

  • 合成未生效或屏幕撕裂:
    • 检查 backendvsync;尝试切换 glx/xrender,或将 vsync 设为 false 测试。
  • 多屏阴影/模糊性能差:
    • 关闭 blur-background,精简 shadow-exclude 列表,减少阴影覆盖的窗口类型。
  • 某个屏幕异常(黑屏/无透明):
    • 确认 xrandr 布局正确;重启 Compton;必要时在 shadow-exclude/opacity-rule 中为该屏幕上的特定应用添加排除或规则。
  • 会话未自动启动:
    • 确认使用 用户级 systemd 并已 enable --now;登录会话后再检查状态。
  • 日志与验证:
    • 前台运行可直观看到错误输出;使用 systemctl statusjournalctl --user -u compton.service 查看运行日志与回溯信息。

0