Compton(现分支为Picom)是Linux下轻量级的X11合成窗口管理器,能显著提升桌面视觉效果(如透明度、阴影、动画)并减少屏幕撕裂。以下是从配置到优化的使用心得:
消除屏幕撕裂
通过vsync
选项启用垂直同步,搭配驱动设置(如NVIDIA的ForceFullCompositionPipeline
)可彻底解决撕裂问题。
vsync = true;
backend = "glx"; # 或 "xrender"(老旧硬件)
视觉增强
ini
shadow = true;
shadow-radius = 12;
shadow-offset-x = -5;
shadow-offset-y = -5;
ini
inactive-opacity = 0.9;
active-opacity = 1.0;
opacity-rule = ["90:class_g = 'Alacritty'"]; # 为Alacritty终端设置90%透明度
性能优化
glx
后端提升渲染效率,老旧硬件可改用xrender
。ini
unredir-if-possible = true;
unredir-if-possible-exclude = ["class_g = 'Firefox'"]; # 排除Firefox
黑屏/闪烁
ini
backend = "xrender"; # 替代glx
ini
blur = false; # 关闭模糊效果
高CPU占用
paint-on-overlay
减少重绘:
ini
paint-on-overlay = true;
ini
shadow-radius = 5; # 减小阴影半径
blur-kern = "3x3box"; # 使用更简单的模糊核
与某些应用冲突
window rule
排除应用:
ini
wintypes:
{
tooltip = { fade = false; focus = false; };
fullscreen = { unredir-if-possible = false; };
};
条件透明与动画
结合picom
的规则实现动态效果,如终端窗口失去焦点时半透明:
opacity-rule = [
"85:class_g = 'Alacritty' && !focused",
"100:class_g = 'Alacritty' && focused"
];
多显示器优化
若主副显示器刷新率不同,单独配置vsync
:
vsync = true;
xrender-sync-fence = true; # 解决多刷新率问题
日志调试
启动时启用日志输出定位问题:
picom --log-level DEBUG --log-file ~/picom.log
版本选择
compton
。picom
(如picom-jonaburg
分支支持动画)。备份与版本控制
将配置文件~/.config/picom.conf
纳入Git管理,方便回滚和迁移。
配置项 | 资源占用(IDLE) | 60FPS视频播放 |
---|---|---|
默认设置 | 1.5% CPU | 8% CPU |
优化后(无阴影) | 0.8% CPU | 3% CPU |
总结:Compton/Picom通过合理配置能平衡美观与性能,建议从默认配置逐步调整,优先解决屏幕撕裂和卡顿问题,再按需添加特效。遇到问题时,查阅Arch Wiki或GitHub Issue通常是最高效的解决途径。