通过 Compton 优化 Linux 图形界面
一 安装与启用
- 在 Debian/Ubuntu 系安装:sudo apt-get install compton;在 Arch/Manjaro 安装:sudo pacman -S compton。配置文件通常位于 ~/.config/compton.conf 或 /etc/xdg/compton.conf,不存在可手动创建。
- 开机自启:将 compton -b 加入 ~/.xprofile 或 ~/.xinitrc;若使用登录管理器,可在会话启动脚本中执行。
- 应用与重启:修改配置后执行 killall compton 再启动,或 source 相应启动脚本使其生效。
二 核心参数调优
- 渲染后端:设置 backend = “glx”(或尝试 xrender)。GPU 驱动正常时 glx 通常更流畅;若出现花屏/卡顿,可改用 xrender 提升兼容性。
- 垂直同步:设置 vsync = true 可减少撕裂;若出现明显输入延迟或卡顿,可尝试 vsync = false。
- 阴影与模糊:关闭 shadow = false 能显著降低开销;如启用模糊,优先用较轻量的背景模糊,减少半径与采样。
- 透明度与淡化:减少全局 opacity/alpha 使用,尽量用窗口规则按需设置;关闭 fade = false 可提升重度动画场景的流畅度。
- 合成与重绘:必要时关闭合成 disable-composite = true(会牺牲透明/阴影/模糊等效果);根据显示器刷新率设置 frame-rate = 60(或你的实际刷新率)。
三 进阶与场景化优化
- 窗口与区域排除:通过 shadow-exclude 与 opacity-rule 精确控制哪些窗口不需要阴影/需要固定透明度,例如对特定应用(如浏览器、终端)设定更高不透明度,减少不必要的特效计算。
- 降低重绘成本:启用 unredirect = true 可让全屏应用直接输出,降低合成开销;但在某些驱动/应用下可能引发撕裂或重影,需按实际测试开关。
- 降低 GPU/CPU 压力:关闭 glx-no-stencil = false、glx-use-dri3 = false 等特性可规避个别驱动路径的额外开销;必要时将 backend 改为 xrender 提升稳定性。
- 资源限制:当确有异常占用时,可用 cpulimit -l 50 -p 临时限制 Compton 的 CPU 使用率(PID 通过 ps 获取)。
四 快速配置示例
# ~/.config/compton.conf
backend = "glx"
vsync = true
shadow = false
fade = false
frame-rate = 60
# 仅在需要时启用轻量模糊
# blur = {
# method = "gaussian"
# size = 6
# deviation = 2.0
# }
# 按窗口设置不透明度(示例)
opacity-rule = [
"90:class_g 'Firefox'",
"95:name 'Terminal'"
]
- 使用方法:保存后执行 killall compton && compton -b;如需前台调试可去掉 -b 并观察日志输出。
五 故障排查与注意事项
- 与桌面环境/窗口管理器冲突:部分 GNOME/KDE/XFCE 会话自带合成器,启用 Compton 可能产生冲突或重复渲染;按需禁用系统合成器或仅在特定会话中使用。
- 性能回退路径:优先从 backend = “glx” → “xrender”、关闭 shadow/blur/fade、开启 unredirect 逐级排查;必要时降低 frame-rate。
- 显示异常定位:通过前台运行与日志级别参数观察行为变化,逐步注释/调整可疑选项,确保改动可复现与可回滚。