Linux Compton 兼容性问题的排查与解决
一 快速定位问题
二 常见兼容性问题与对应修复
三 一份稳妥的 Compton 配置示例
# ~/.config/compton.conf
backend = "glx"; # 优先 glx;老旧/无 GL 时改为 xrender
vsync = "opengl-swc"; # 常见组合:glx + opengl-swc;若撕裂再试 opengl-oml
glx-swap-method = 1; # 1=copy, 2=exchange, 3=3dnow (多数驱动用 1)
refresh-rate = 0; # 0=自动检测;若仍撕裂,手动填显示器刷新率(如 60/144)
# 渲染与重绘
paint-on-overlay = true; # 减少重绘区域
unredir-if-possible = true; # 全屏应用直连,降低开销
inactive-opacity = 0.95; # 非焦点窗口透明度(可按需调整)
frame-opacity = 0.8; # 窗口边框/装饰透明度
# 阴影与模糊
shadow = true;
shadow-radius = 12;
shadow-offset-x = -12;
shadow-offset-y = -12;
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Conky'",
"role = 'toolbox'"
];
# 排除问题应用/场景
fade-in-step = 0.03;
fade-out-step = 0.03;
focus-exclude = [ "class_g = 'slop'" ];
wintypes :
{
popup_menu = { shadow = false; };
dropdown_menu = { shadow = false; };
};
四 启动与替代方案
正确启动方式
[Unit]
Description=Compton Window Composer
After=graphical-session.target
[Service]
ExecStart=/usr/bin/compton --config %h/.config/compton.conf --log-file %h/.cache/compton/compton.log
Restart=on-failure
[Install]
WantedBy=graphical-session.target
启用:systemctl --user daemon-reload && systemctl --user enable --now compton.service替代与迁移