CentOS 下 Compton 配置与性能优化指南
一 安装与准备
- 在 CentOS 7/8 上,使用包管理器安装 Compton;若仓库暂未提供,可先启用 EPEL 再安装。
- 建议先更新系统并确认显卡驱动正常(OpenGL 可用),以便启用硬件加速。
- 安装示例:
- 启用 EPEL(如未启用):sudo yum install -y epel-release
- 安装 Compton:sudo yum install -y compton 或 sudo dnf install -y compton
- 说明:Compton 是 X11 的窗口合成器,不用于 Wayland 会话。
二 配置文件与关键参数
- 配置文件路径:优先使用用户级 ~/.config/compton.conf;也可使用系统级 /etc/compton.conf 或 /etc/xdg/compton.conf。
- 常用参数与作用:
- backend:合成后端,优先 glx(OpenGL),兼容性备选 xrender;Wayland 会话不适用。
- vsync:垂直同步,设为 true/false 结合显示器与驱动测试撕裂与延迟。
- shadow:窗口阴影,关闭可降负载(shadow = false)。
- opacity / alpha / opacity-rule:透明度与按应用规则设置不透明度(如 opacity-rule = [“90:class_g ‘Firefox’”])。
- fade:淡入淡出动画,关闭可提升性能(fade = false)。
- unredirect:是否绕过未遮挡窗口合成,开启可提升全屏性能,但在部分驱动/应用下可能引入撕裂或重绘问题(unredirect = false 更稳)。
- shadow-exclude、alpha-threshold:按窗口类/标题排除阴影,设置透明度阈值以跳过几乎透明的窗口合成。
- 示例配置(可按需裁剪):
- backend = “glx”
- vsync = true
- shadow = false
- fade = false
- unredirect = false
- opacity-rule = [ “90:class_g ‘Firefox’”, “90:name ‘Terminal’” ]
- shadow-exclude = [ “.*” ]
- alpha-threshold = 0.05
三 启动与自启动
- 手动启动与热重载:
- 启动:compton --config ~/.config/compton.conf
- 重启:killall compton && compton &
- 开机自启动(systemd 用户服务,推荐):
- 创建:mkdir -p ~/.config/systemd/user
- 新建文件:~/.config/systemd/user/compton.service
- 内容:
- [Unit]
Description=Compton Window Composer
After=graphical-session.target
- [Service]
ExecStart=/usr/bin/compton --config %h/.config/compton.conf
Restart=always
- [Install]
WantedBy=graphical-session.target
- 启用:systemctl --user daemon-reload && systemctl --user enable --now compton.service
- 系统级服务(可选,多用户/登录会话场景):创建 /etc/systemd/system/compton.service,示例:
- [Unit] Description=Compton Compositor; After=display-manager.service
- [Service] ExecStart=/usr/bin/compton -c /etc/compton.conf; Restart=always
- [Install] WantedBy=multi-user.target
- 启用:sudo systemctl daemon-reload && sudo systemctl enable --now compton.service
- 提示:使用显示管理器(如 GDM)时,After=display-manager.service 有助于在登录后启动;用户级服务需确保会话已启动。
四 性能优化与常见问题
- 性能优先的稳妥设置:
- backend = “glx”;shadow = false;fade = false;opacity/blur 视需求关闭;unredirect = false(更稳)。
- 若画面撕裂,尝试 vsync = true;若出现输入延迟或卡顿,再测试 vsync = false。
- 资源限制与稳定性:
- 使用 cpulimit 限制单进程占用(示例:cpulimit -l 50 -p $(pgrep compton))。
- 通过日志定位问题:compton -c /path/compton.conf 2> /var/log/compton.log,再查看 /var/log/compton.log。
- 多显示器与特定应用优化:
- 使用 shadow-exclude、opacity-rule 精确控制窗口效果,减少不必要的合成与重绘。
- 驱动与兼容性:
- 确保 OpenGL 与显卡驱动正常;如 glx 异常,可回退 xrender 验证。
- 替代方案:若仍不满足需求,可测试 xcompmgr、picom 或切换至支持 Wayland 的合成器/桌面环境。