Compton(及其分支项目如picom
)是Linux桌面环境中广泛使用的轻量级合成管理器(compositor),它通过优化窗口渲染流程显著提升了图形体验。以下从技术角度分析其核心优势:
glx_swap_method
),强制GPU等待显示器刷新周期。vsync
选项(如vsync = opengl-swc
)可动态调整延迟。shadow-exclude
规则)。shadow-radius = 12; shadow-opacity = 0.75
)。opacity-rule
实现条件透明(例如终端窗口80%
,非活动窗口50%
)。xprop
的繁琐操作。glx
后端:利用GPU加速(适合NVIDIA/AMD闭源驱动)。xrender
后端:CPU渲染,兼容性更强(适合老旧硬件)。use-damage = true
)减少重绘区域。unredir-if-possible = true
)直接输出到显示器。fade-in-step
)、缩放等效果,通过transition
规则定义触发条件。transition = { window = 0.15, opacity = 0.8; }
。blur-background
(需内核kawase
模糊或双三次滤波)。backend = "glx"
时效果最佳)。场景 | Compton内存占用 | 传统合成器(如compiz) |
---|---|---|
基础合成(无特效) | ~30-50MB | ~100-200MB |
启用模糊/动画 | ~70-100MB | ~300MB+ |
bash
picom --config /dev/null --backend glx --log-level DEBUG
可检测VSync状态、排除规则匹配问题。bash
watch -n 0.5 'cat /proc/$(pidof picom)/status | grep VmRSS'
~/.config/picom.conf
)vsync = true;
backend = "glx";
glx-no-stencil = true;
use-damage = true;
shadow-exclude = [
"class_g = 'Firefox' && argb",
"name *= 'Video'"
];
opacity-rule = [
"90:class_g = 'Alacritty'",
"70:class_g = 'Thunar' && !focused"
];
wlroots
合成器(如Sway)。Compton/picom通过模块化设计平衡了功能与性能,尤其适合追求低延迟、高定制性的用户。其配置灵活性使其成为i3wm、bspwm等平铺式窗口管理器的理想搭档。