温馨提示×

CentOS Compton配置步骤全解析

小樊
31
2025-12-09 19:41:36
栏目: 智能运维

CentOS 上配置 Compton 的完整步骤

一 环境准备与安装

  • 确认会话类型:Compton 是 X11 的窗口合成器,不适用于 Wayland。在登录会话中选择 GNOME on Xorg / Xfce / MATE / i3 等 X11 会话。
  • 更新系统并安装:
    • CentOS 7/8 系列可使用 yumdnf(如系统提供)安装:
      • 更新索引:sudo yum update -y
      • 安装 Compton:sudo yum install -y compton(或 sudo dnf install -y compton
  • 显卡驱动与 OpenGL:确保已安装 Mesa 等基础图形库,驱动正常;后续才能启用硬件加速的 GLX 后端。若使用 NVIDIA 专有驱动,请先完成驱动安装与验证(glxinfo 可见 GL 版本)。

二 配置文件与关键参数

  • 创建配置目录与文件:
    • mkdir -p ~/.config && nano ~/.config/compton.conf
  • 基础示例(可直接使用并微调):
    # 合成后端:优先 GLX;若异常可尝试 xrender
    backend = "glx"
    
    # 帧率上限(与显示器刷新率匹配更流畅)
    fps = 60
    
    # 垂直同步(减少撕裂;若输入延迟敏感可尝试 false)
    vsync = true
    
    # 阴影
    shadow = true
    shadow-radius = 12
    shadow-offset-x = -15
    shadow-offset-y = -15
    shadow-exclude = [
        "name = 'Notification'",
        "class_g = 'Conky'",
        "class_g = 'Polybar'",
        "_NET_WM_WINDOW_TYPE@:a = 'dock'"
    ]
    
    # 淡入淡出动画
    fade = true
    fade-delta = 10
    
    # 未重定向直绘(提升全屏游戏性能;出现撕裂可改为 false)
    unredirected-fullscreen = true
    
    # 透明度规则(示例)
    opacity-rule = [
        "90:class_g = 'Firefox'",
        "90:class_g = 'Terminal'",
        "100:class_g = 'Xephyr'"
    ]
    
    # 背景模糊(可选,性能开销较大)
    # blur-background = true
    # blur-kern = "7x7box"
    
  • 常用参数说明:
    • backend:渲染后端,常用 glx(硬件加速)或 xrender(兼容性更好)。
    • vsync:垂直同步,建议开启以减少撕裂。
    • shadow / shadow-exclude:窗口阴影与排除规则(避免对面板、通知、Dock 等绘制阴影)。
    • fade / fade-delta:窗口切换/透明度动画的开关与步进。
    • unredirected-fullscreen:全屏应用直绘,提升性能;若出现撕裂或黑屏,可关闭。
    • opacity-rule:按窗口类/标题设置透明度。

三 启动方式与自启动

  • 手动前台启动(调试用):
    • compton -c ~/.config/compton.conf
  • 手动后台启动:
    • compton --config ~/.config/compton.conf &
  • 使用 Systemd 用户服务(推荐,登录即启动):
    1. 创建服务文件:nano ~/.config/systemd/user/compton.service
    2. 写入以下内容(注意替换 your-username 为实际用户名):
      [Unit]
      Description=Compton Window Composer
      After=graphical-session.target
      
      [Service]
      Type=simple
      ExecStart=/usr/bin/compton --config /home/your-username/.config/compton.conf
      Restart=on-failure
      Environment=DISPLAY=:0
      
      [Install]
      WantedBy=default.target
      
    3. 启用并启动:
      • systemctl --user daemon-reload
      • systemctl --user enable --now compton.service
  • 使用 Systemd 系统服务(可选,系统级启动):
    • 创建:sudo nano /etc/systemd/system/compton.service
    • 示例(以用户 your-username 为例):
      [Unit]
      Description=Compton Window Composer
      After=display-manager.service
      
      [Service]
      Type=simple
      ExecStart=/usr/bin/compton --config /home/your-username/.config/compton.conf
      Restart=on-failure
      User=your-username
      Environment=DISPLAY=:0
      
      [Install]
      WantedBy=multi-user.target
      
    • 启用并启动:
      • sudo systemctl daemon-reload
      • sudo systemctl enable --now compton.service
  • 提示:
    • 若使用系统服务,请确保 DISPLAYXAUTHORITY 正确;用户服务通常更便于图形会话集成。

四 验证与常见问题

  • 验证运行状态:
    • 查看进程:pgrep -x compton
    • 查看日志:journalctl --user -u compton.service -b(用户服务)或 sudo journalctl -u compton.service -b(系统服务)
  • 性能与撕裂排查:
    • 全屏游戏/视频撕裂:将 unredirected-fullscreen 设为 false,或将 vsync 设为 true;必要时降低 fps
    • 卡顿/高占用:尝试切换 backend(glx/xrender),关闭 blur-background,减少阴影与动画。
  • 多显示器:
    • 使用 xrandr --query 检查输出名,必要时用 xrandr --output <NAME> --auto --right-of <OTHER> 排布;Compton 会自动处理多屏合成。
  • 常见故障:
    • 黑屏/花屏/重影:回退 backend=xrender,关闭阴影/模糊,检查驱动与 GL 支持。
    • 启动失败:核对配置文件语法(括号、逗号、引号),确认 ExecStart 路径与 –config 文件存在,查看日志定位。

0