在 Ubuntu 上调试 compton(或已更名为 picom) 可以从日志、配置、进程、渲染后端几个方面入手。下面给你一套比较系统的排查方法。
很多 Ubuntu 仓库里:
compton 是旧版(基本停更)picom 是新版(fork)which compton
which picom
compton --version
picom --version
建议优先使用 picom:
sudo apt install picom
不要后台启动,先前台跑,看报错:
picom --config ~/.config/picom.conf
或(compton):
compton --config ~/.config/compton.conf
常见有用参数:
picom -b # 后台
picom --show-all-errors
picom --log-level trace
如果是 systemd 启动失败,看日志:
journalctl --user -xe
用一个极简配置排除配置问题:
mkdir -p ~/.config
cat > ~/.config/picom.conf <<EOF
backend = "glx";
vsync = true;
EOF
然后:
picom --config ~/.config/picom.conf
如果这样能跑,说明原配置有问题。
检查:
GNOME 用户:
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
或干脆用:
picom --backend xrender
报错类似:
Failed to load backend: glx
解决:
picom --backend xrender
或安装:
sudo apt install mesa-utils libgl1-mesa-dri
use-damage = true;
或尝试:
unredir-if-possible = false;
vsync = false;
fps-limit = 60;
ps aux | grep -E "compton|picom|mutter|compiz|kwin"
同一时间只能有一个合成器。
如果是开机启动失败:
~/.config/autostart/picom.desktop
内容示例:
[Desktop Entry]
Type=Application
Exec=picom --config ~/.config/picom.conf
Hidden=false
测试:
gtk-launch picom
picom 而不是旧 comptonxrender 测试如果你愿意,可以把:
picom --version贴出来,我可以直接帮你定位。