CentOS 上 Compton 的配置与性能优化
一 环境准备与安装
- 在 CentOS 7/8/Stream 上,使用包管理器安装 Compton:
- CentOS 7/8/Stream(DNF):sudo dnf install compton
- CentOS 7(YUM):sudo yum install compton
- 配置文件默认路径为:~/.config/compton.conf(不存在可新建)。
- 快速验证安装:compton --version。以上步骤与路径适用于 Fedora/CentOS 等发行版,配置方式一致。
二 配置文件结构与关键参数
- 建议采用“全局 + 分段”的结构,常用键位与段如下(示例为常见写法,值为性能向起点,可按需微调):
- 全局
- backend = “glx”(或 “xrender”;若显卡与驱动支持 OpenGL,优先 glx)
- vsync = true/false(依据显示器与驱动选择,减少撕裂或降低卡顿)
- shadow = false(关闭阴影以降负载;需要美观可后续再开启)
- opacity/alpha = false/1.0(关闭全局透明以降负载)
- frame-rate = 60(与显示器刷新率匹配)
- 段 [shadow]
- enabled = false(若开启:radius、offset、opacity 等从低值起步)
- 段 [blur]
- enabled = false(若开启:method=gaussian,size 与 deviation 从低值起步)
- 段 [opacity-rule]
- 按需为指定应用设置透明度,例如:90:class_g ‘Firefox’
- 以上键位与段名、取值语义与示例在多篇配置指南中通用,可按桌面与硬件差异微调。
三 性能优化策略与推荐配置
- 渲染后端与 GPU 加速
- 优先使用 backend = “glx” 并确保显卡驱动正确安装与启用,可显著利用 GPU 加速;避免使用性能较差的 xrender。
- 精简特效
- 关闭不必要的 shadow 与 opacity/alpha(对性能影响最大),需要透明/阴影时再逐项开启并控制强度。
- 同步与帧率
- 依据显示器与驱动选择 vsync(true 降撕裂、false 降输入延迟),并将 frame-rate 设为显示器刷新率(如 60 FPS)。
- 资源限制与稳态
- 若出现偶发高占用,可用 cpulimit 限制 Compton 的 CPU 使用率(例如:cpulimit -l 50 -p $(pgrep compton))。
- 快速落地的最小性能配置示例(~/.config/compton.conf)
- backend = “glx”
- vsync = true
- shadow = false
- opacity = false
- frame-rate = 60
- [shadow]
- [blur]
- [opacity-rule]
- 如需在美观与性能间折中,可仅开启阴影或透明度,并将模糊关闭或设为极低强度。
四 自启动与热重载
- 手动热重载
- killall compton && compton --config ~/.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
- 桌面会话自启动
- 在 ~/.xprofile 或窗口管理器/会话启动脚本中加入:compton --config ~/.config/compton.conf &
- 以上方式适用于 CentOS/Fedora 等使用 systemd 的系统。
五 故障排查与进阶建议
- 撕裂或卡顿
- 切换 vsync(true/false)测试;确认 backend=glx 生效;将 frame-rate 对齐显示器刷新率(如 60 Hz)。
- 高 CPU 占用
- 关闭 shadow/blur/opacity 等特效;用 cpulimit 临时限流;检查是否存在频繁重绘/动画的窗口并排除。
- 兼容性与黑屏
- 遇到 OpenGL/驱动问题时,可临时改用 backend = “xrender”;必要时设置 ignore_glx_glitz = true 以规避特定驱动问题。
- 替代方案
- 若仍不满足需求,可尝试 xcompmgr、picom 或相应桌面/会话的合成器替代方案。
- 以上排障与替代建议为常见有效路径,可结合硬件与桌面环境逐步验证。