Compton 配置文件编写与优化
一 基础与配置文件位置
- 配置文件常见路径为:~/.config/compton.conf 或 /etc/xdg/compton.conf。若不存在,可手动创建。使用任意编辑器编辑,例如:nano ~/.config/compton.conf。保存后通过命令重启 Compton 生效:killall compton && compton &;也可在启动时指定自定义路径:compton --config ~/.config/compton.conf -f。以上路径与启动方式适用于主流桌面与窗口管理器(如 Openbox、i3)。
二 核心参数与含义
- 渲染与同步
- backend:渲染后端,常用为 glx(OpenGL,通常性能更好)与 xrender(CPU 渲染,兼容性高但性能较弱)。
- vsync:垂直同步,设为 true 可减少撕裂,但可能略降帧率;设为 false 帧率更高但可能出现撕裂。
- 视觉特效
- shadow:窗口阴影,设为 false 可明显降低合成开销。
- opacity / alpha:窗口透明度,取值范围 0.0–1.0,过高或频繁变动会增加开销。
- ignore_root:是否忽略根窗口透明度,部分桌面环境设为 true 可避免异常。
- 背景模糊:启用 bg_blur = true 实现背景虚化;配合 screen_edge_blur = true 可做屏幕边缘模糊。
- 阴影细节(示例)
- [shadow] 段可细调:shadow-radius、shadow-offset-x、shadow-offset-y、shadow-opacity。
- 模糊算法(示例)
- [blur] 段可设置:method(如 gaussian)、size、deviation。
- 窗口规则(示例)
- [opacity-rule] 可为不同窗口设置透明度,如:90:class_g ‘Firefox’、95:name ‘Terminal’、100:class_g ‘Xephyr’。以上参数与示例覆盖了日常可用性与性能权衡的关键点。
三 示例配置文件
backend = xrender
vsync = false
shadow = false
opacity = 1.0
ignore_root = true
backend = glx
vsync = true
shadow = true
opacity = 0.9
ignore_root = true
[shadow]
shadow-radius = 5
shadow-offset-x = 1
shadow-offset-y = 1
shadow-opacity = 0.25
[opacity-rule]
90:class_g 'Firefox'
95:name 'Terminal'
100:class_g 'Xephyr'
- 高质量模式(背景模糊与边缘虚化,GPU 较强时推荐)
backend = glx
vsync = true
shadow = true
opacity = 0.85
ignore_root = true
bg_blur = true
screen_edge_blur = true
[shadow]
shadow-radius = 8
shadow-offset-x = 2
shadow-offset-y = 2
shadow-opacity = 0.3
[blur]
method = gaussian
size = 10
deviation = 5.0
[opacity-rule]
90:class_g 'Firefox'
95:name 'Terminal'
100:class_g 'Xephyr'
以上示例可直接保存为 ~/.config/compton.conf 并按需微调参数。
四 优化策略与排错
- 性能优先项
- 优先选择 backend = glx(确保显卡驱动正确);若仍有问题或兼容性差,再退回 xrender。
- 关闭或减弱开销较大的特效:shadow = false、减少透明与动画、必要时关闭 bg_blur。
- 合理设置 vsync:游戏或高帧率场景可尝试 false,日常办公建议 true 减少撕裂。
- 资源控制与稳定性
- 若占用偏高,可用工具限制 CPU 使用,例如:cpulimit -l 50 -p $(pgrep compton)。
- 修改配置后务必重启 Compton 使其生效:killall compton && compton &。
- 快速排错清单
- 画面撕裂:将 vsync 切换 true/false 对比;检查驱动与刷新率设置。
- 卡顿或高占用:关闭 shadow 与 blur,将 backend 改为 xrender 验证是否为 GPU 路径问题。
- 透明度/模糊异常:尝试 ignore_root = true;核对 [opacity-rule] 与窗口类名是否匹配。以上策略有助于在不同硬件与场景下找到性能与画质的最佳平衡点。