调试 compton(或它的继任者 picom) 的显示/合成错误,通常可以按下面步骤系统排查。
compton 已基本停止维护,多数发行版已替换为 picom:
compton --version
picom --version
如果 compton 实际指向 picom,请统一使用 picom 来调试。
picom --no-daemon --backend glx
或
compton --no-daemon
观察终端输出,常见错误包括:
Failed to load backendNo GLX contextAnother composite manager is runningAnother composite manager is already running
✅ 解决:
killall picom
killall compton
killall xfwm4 # XFCE
killall mutter # GNOME
killall kwin # KDE
Failed to initialize the backend (GLX)
✅ 尝试:
picom --backend xrender
如果 xrender 正常,说明是显卡驱动或 OpenGL 问题。
症状:
✅ 推荐配置:
picom --backend glx --vsync none
或在配置文件中:
backend = "glx";
vsync = false;
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
NVIDIA 用户常需:
nvidia-settings
关闭 Force Full Composition Pipeline 或反向尝试开启。
✅ 尝试:
picom --unredir-if-possible
或关闭:
unredir-if-possible = false;
关闭模糊测试:
blur-method = "none";
关闭阴影:
shadow = false;
picom --log-level trace
picom --config ~/.config/picom/picom.conf
常见错误:
true/false 写成 1/0;✅ 验证配置:
picom --config ~/.config/picom/picom.conf --no-daemon
backend = "xrender";
vsync = false;
shadow = false;
fade = false;
blur = false;
如果这个配置能正常运行,再逐步开启功能。
echo $XDG_SESSION_TYPE
glxinfo | grep "OpenGL renderer"
nvidia-smi # NVIDIA
确保:
picom --no-daemonxrender 后端如果你愿意,可以把 具体错误信息 + 显卡型号 + 发行版 发出来,我可以直接帮你定位到具体配置。