在 CentOS 上优化 Compton 的完整指南
一 环境准备与安装
- 确认系统版本与仓库:确保已启用 EPEL,并使用 yum/dnf 安装 Compton。
- 安装命令示例:
- 启用 EPEL(如未启用):sudo yum install epel-release 或 sudo dnf install epel-release
- 安装 Compton:sudo yum install compton 或 sudo dnf install compton
- 配置文件路径:优先使用用户级配置 ~/.config/compton.conf;系统级可用 /etc/xdg/compton.conf。如文件不存在可手动创建。
二 关键参数与性能取舍
- 渲染后端:优先选择 backend = “glx”(或环境支持时用 wayland),通常较 xrender 更高效;若出现异常再回退测试。
- 垂直同步:根据显示器与显卡情况切换 vsync = true/false,在“撕裂”和“卡顿/输入延迟”之间取平衡。
- 特效开关:为追求性能可关闭 shadow = false、opacity = false;需要透明/阴影再按需开启。
- 帧率上限:设置 frame-rate = 60(或匹配显示器刷新率),避免无谓合成开销。
- 模糊与透明:如启用 blur-method(如 gaussian)或全局透明,会显著增加 GPU/CPU 负担,仅在必要时使用并尽量缩小作用范围。
- 排除规则:通过 shadow-exclude 等规则为特定应用(如浏览器、视频播放器)禁用阴影/透明,减少无效合成。
三 示例配置与启动方式
- 性能优先(适合低/中配或远程桌面)
- 建议配置片段:
- backend = “glx”
- vsync = true
- shadow = false
- opacity = false
- frame-rate = 60
- 说明:关闭阴影与透明、使用 GLX 后端并限制帧率,能显著降低 CPU/GPU 占用。
- 平衡模式(保留阴影、关闭透明)
- 建议配置片段:
- backend = “glx”
- vsync = true
- shadow = true
- shadow-exclude = [ “class_g=‘.*’” ] # 示例:为所有窗口禁用阴影,可按需细化
- opacity = false
- frame-rate = 60
- 说明:保留少量视觉元素(如阴影)但排除不必要窗口,兼顾观感与性能。
- 应用与热重载
- 手动启动:compton --config ~/.config/compton.conf
- 替换当前合成器:compton --replace
- 重启会话:killall compton && compton -c ~/.config/compton.conf
- 开机自启(可选):创建 systemd 用户服务
- 文件:/etc/systemd/system/compton.service
- 内容:
- [Unit]
- Description=Compton Window Composer
- After=display-manager.service
- [Service]
- ExecStart=/usr/bin/compton --config ~/.config/compton.conf
- Restart=always
- [Install]
- WantedBy=multi-user.target
- 启用:sudo systemctl daemon-reload && sudo systemctl enable --now compton
四 验证与故障排查
- 检查运行状态:pgrep compton 或 ps aux | grep compton;观察 CPU/内存占用是否异常。
- 冲突排查:若与桌面特效/其他合成器冲突,先停用其他合成器,或在配置中逐项关闭特效定位问题。
- 日志与诊断:启动时添加 –log-file /tmp/compton.log --verbose 输出运行日志,便于分析黑屏、撕裂、卡顿等问题。
- 资源限制:必要时用 cpulimit 限制占用,例如:cpulimit -l 50 -p $(pgrep compton)(将 CPU 占用限制在约 50%)。
五 进阶优化与替代方案
- 精细调优 GLX:在确保驱动正常的前提下,可尝试切换/调整 glx-no-stencil、glx-use-dri3 等选项以适配不同驱动与硬件;变更前建议逐项验证稳定性。
- 着色器与高级特效:如非必要,避免 shader-file 与复杂模糊;确需使用时应限定目标窗口与作用范围。
- 替代方案:若仍无法满足性能/兼容性需求,可考虑 xcompmgr、wlr-compositor 等替代合成器,或在 Wayland 会话中使用相应原生合成器。