Compton(现更名为picom)是Linux下一个轻量级的X11合成窗口管理器,用于提供窗口透明、阴影、淡入淡出等视觉效果。以下是一个典型配置文件的详细解读:
backend = "glx"; # 使用OpenGL渲染(可选:xrender/glx)
vsync = true; # 开启垂直同步防止画面撕裂
detect-rounded-corners = true; # 检测圆角窗口
detect-client-opacity = true; # 允许客户端设置透明度
glx(硬件加速),老旧设备可用xrender。opacity-rule = [
"90:class_g = 'Alacritty'", # Alacritty终端90%不透明
"80:class_g = 'Thunar'", # 文件管理器80%
"100:name *= 'YouTube'" # 全不透明匹配窗口名
];
"透明度:条件"(0-100,0为完全透明)。class_g(窗口类)、name(标题)、role(窗口角色)。shadow = true; # 启用阴影
shadow-radius = 12; # 阴影模糊半径
shadow-offset-x = -5; # X轴偏移(负值向左)
shadow-offset-y = -5; # Y轴偏移(负值向上)
shadow-opacity = 0.3; # 阴影透明度
shadow-exclude = [
"class_g = 'Firefox'", # 排除Firefox窗口
"name = 'Notification'" # 排除通知窗口
];
fading = true; # 启用淡入淡出
fade-in-step = 0.03; # 淡入步长(0.01-1.0)
fade-out-step = 0.03; # 淡出步长
fade-delta = 5; # 效果延迟(毫秒)
wintypes:
{
tooltip = { fade = true; shadow = false; }; # 工具提示仅淡入淡出
dropdown_menu = { opacity = 0.9; }; # 下拉菜单90%不透明
};
normal, dialog, menu, tooltip等。glx-no-stencil = true; # 禁用模板缓冲(提升性能)
glx-no-rebind-pixmap = true; # 避免重复绑定(NVIDIA驱动可能需要)
unredir-if-possible = true; # 全屏窗口时禁用合成(降低延迟)
force-win-blend = true;。no-ewmh-fullscreen = true; # 忽略某些全屏窗口的EWMH协议
mark-wmwin-focused = true; # 正确标记WM管理的窗口焦点
~/.config/picom/picom.confpicom --example-config > ~/.config/picom/picom.conf黑屏/闪烁:
backend为xrender。--experimental-backends参数运行。性能低下:
shadow = false;shadow-radius值。透明失效:
NVIDIA专有驱动:
glx-use-copysubbuffermesa = true;
glx-use-gpushader4 = true;
通过调整这些参数,可以平衡视觉效果与性能。建议逐步测试修改项,观察系统响应。