在 Linux 下调试 compton(或它的继任者 picom)配置,通常可以从日志输出、配置校验、逐步排查几个方面入手。下面按实用顺序说明。
很多发行版已经用 picom(compton 的 fork):
which compton
which picom
picom → 用 picomcompton → 老版本,但调试方式类似下文以 picom / compton 通用说明。
不要直接后台启动,先在前台看报错:
compton --config ~/.config/compton.conf
或 picom:
picom --config ~/.config/picom.conf
如果有错误,会直接打印在终端。
compton --log-level debug
或 picom:
picom --log-level debug
picom --log-level debug --log-file /tmp/picom.log
然后:
tail -f /tmp/picom.log
| 参数 | 作用 |
|---|---|
--no-daemon |
前台运行 |
--diagnostics |
打印系统/配置诊断信息(picom) |
--print-errors |
显示 X 错误 |
--config /path |
指定配置文件 |
--version |
确认版本 |
示例:
picom --no-daemon --diagnostics
如果配置不生效或崩溃:
~/.config/picom.conf
backend = "glx";
vsync = true;
运行:
picom --config ~/.config/picom.conf
依次加入:
每加一项就重启一次,快速定位问题。
backend = "xrender";
或
backend = "glx";
vsync = false;
确认:
ps aux | grep -E "compton|picom|xcompmgr"
用 xprop 获取窗口类:
xprop
点击窗口,看:
WM_CLASS(STRING) = "firefox", "Firefox"
然后在配置中排除:
shadow-exclude = [
"class_g = 'Firefox'"
];
尝试:
backend = "glx";
glx-no-stencil = true;
pgrep -a picom
重启前先杀掉:
killall picom
killall picom
picom --no-daemon --log-level debug --config ~/.config/picom.conf
观察:
如果你愿意,可以把:
发出来,我可以帮你逐行审查配置。