在 CentOS 上设置与优化 Compton 的完整指南
一 环境准备与安装
- 确认会话类型:Compton 是 X11 的窗口合成器,不能在 Wayland 会话下工作。请先切换到 GNOME on Xorg / Xfce / i3 等 X11 会话。
- 安装 Compton:
- CentOS 7/8(或兼容的 dnf/yum 环境):
- sudo dnf install compton # 或 sudo yum install compton
- 首次验证:
- 运行:compton --version
- 前台试运行(便于观察日志与效果):compton -b --log-level=DEBUG --log-file=/tmp/compton.log
- 无报错后继续后续配置。
二 配置文件与关键参数
- 配置文件路径与创建:
- 用户级:~/.config/compton.conf
- 系统级:/etc/compton.conf 或 /etc/xdg/compton.conf
- 建议先创建用户级配置:mkdir -p ~/.config && nano ~/.config/compton.conf
- 基础示例(可直接使用并按需微调):
# 渲染与同步
backend = "glx"
vsync = "true" # 画面撕裂少;若卡顿可尝试 "false" 或 "drm"
# 阴影
shadow = true
shadow-radius = 6.0
shadow-offset-x = 2.0
shadow-offset-y = 2.0
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Conky'",
"class_g = 'Polybar'",
"_GTK_FRAME_EXTENTS@:c"
]
# 透明度与模糊
opacity-rule = [
"90:class_g = 'URxvt'",
"0.95:class_g = 'Code'"
]
background-opacity = 1.0
blur-background = false
blur-kern = "3x3box"
# 帧率与重绘
frame-rate = 60
refresh-rate = 0
# 其他稳定性项
mark-wmwin-focused = true
mark-ovredir-focused = true
detect-rounded-corners = true
detect-client-leader = true
unredir-if-possible = true
- 常用参数释义与建议:
- backend:渲染后端,优先 glx(性能与兼容性更好),备选 xrender(兼容性高、性能略低)。
- vsync:垂直同步,常见取值 true / false / drm;出现卡顿时优先尝试 false 或 drm。
- shadow / shadow-exclude:阴影开关与排除规则;对通知、面板、Conky 等窗口建议排除。
- opacity-rule / background-opacity:窗口与背景透明度;模糊(blur-background)对性能影响较大,按需开启。
- frame-rate / refresh-rate:帧率上限与刷新率;多显示器或高刷屏可设为 120。
- 性能取向:关闭不必要的特效(如阴影、模糊)可显著提升性能;GPU 支持 OpenGL 时优先使用 glx 后端。
三 启动方式与开机自启
- 会话登录即启动(推荐):
- 在 ~/.xprofile 或 ~/.xinitrc 末尾添加:
- compton -b --config ~/.config/compton.conf
- 使用 systemd 用户服务(登录会话内自启,更可控):
- 创建服务文件:nano ~/.config/systemd/user/compton.service
- 写入内容:
[Unit]
Description=Compton Window Composer
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/compton --config %h/.config/compton.conf --log-level=DEBUG --log-file=%h/.local/share/compton.log
Restart=on-failure
RestartSec=5
[Install]
WantedBy=graphical-session.target
- 启用并启动:
- systemctl --user daemon-reload
- systemctl --user enable --now compton.service
- 临时前台运行(调试用):compton -b -v
- 重启/热重载:
- 结束旧进程:killall compton
- 启动新进程:compton -b --config ~/.config/compton.conf
- 注意:不建议在 /etc/systemd/system/ 创建全局服务来为所有用户启动 Compton,图形会话应以用户级服务管理。
四 多显示器与常见问题排查
- 多显示器与 DPR:
- 使用 xrandr 检查与配置输出:xrandr --query
- 若遇到缩放或模糊异常,可设置 dpr = 2.0(或 1.25/1.5 等)以匹配高分屏;必要时关闭模糊。
- 性能优化与资源限制:
- 关闭不必要的特效(如 shadow = false、blur-background = false)可显著降低 CPU/GPU 占用。
- 限制 CPU 占用(仅在确有需要时):cpulimit -l 50 -p $(pgrep compton)
- 日志与故障定位:
- 前台调试:compton -b --log-level=DEBUG --log-file=/tmp/compton.log
- 查看日志:tail -f /tmp/compton.log
- 若与桌面环境冲突(如 GTK/Qt 应用渲染异常),优先排除阴影、降低透明度或切换 backend。