在 Linux 下使用 compton(或其继任者 picom)时出现闪屏 / 闪烁 / 闪黑,通常不是单一原因,而是和显卡驱动、合成器设置、窗口管理器、刷新率、VSync等有关。下面按常见原因逐一说明,并给出对应解决办法。
compton 默认可能没开或开错 VSync,导致画面撕裂/闪烁。
解决:
vsync = true;
如果还闪,可尝试不同 backend:
backend = "glx";
# 或
backend = "xrender";
有些显卡用
glx闪,用xrender就稳;反之亦然。
部分 Intel / NVIDIA 显卡对 glx 支持不好。
建议顺序尝试:
backend = "xrender";
backend = "glx";
backend = "xr_glx_hybrid"; # 老 compton
NVIDIA 闭源驱动下,compton 很容易闪屏。
解决方式之一:
unredir-if-possible = true;
或:
glx-no-stencil = true;
更推荐:直接用 picom(compton 已停止维护)
sudo apt install picom
主屏 60Hz,副屏 144Hz,compton 很容易闪。
解决:
refresh-rate = 60;
某些轻量 WM(如 openbox、i3、bspwm)配置不当会冲突。
检查:
xcompmgr 冲突ps aux | grep compton
特别是:
blur-background = true;
shadow = true;
排查方法: 先全部关掉:
shadow = false;
blur-background = false;
fade = false;
显示器热插拔极易触发 compton 闪屏。
解决:
killall compton && compton &
backend = "glx";
vsync = true;
unredir-if-possible = true;
shadow = false;
blur-background = false;
fade = false;
compton 已停止维护,很多问题在 picom 中已修复。
picom --experimental-backends
如果你愿意,可以告诉我:
我可以直接帮你写一份不闪的配置文件。