温馨提示×

linux compton配置为何闪屏

小樊
45
2026-10-09 16:31:32
栏目: 智能运维

在 Linux 下使用 compton(或其继任者 picom)时出现闪屏 / 闪烁 / 闪黑,通常不是单一原因,而是和显卡驱动、合成器设置、窗口管理器、刷新率、VSync等有关。下面按常见原因逐一说明,并给出对应解决办法。


一、最常见原因与解决办法

1️⃣ VSync 设置不当(最常见)

compton 默认可能没开或开错 VSync,导致画面撕裂/闪烁。

解决:

vsync = true;

如果还闪,可尝试不同 backend:

backend = "glx";
# 或
backend = "xrender";

有些显卡用 glx 闪,用 xrender 就稳;反之亦然。


2️⃣ 使用了不兼容的 backend

部分 Intel / NVIDIA 显卡对 glx 支持不好。

建议顺序尝试:

backend = "xrender";
backend = "glx";
backend = "xr_glx_hybrid";  # 老 compton

3️⃣ NVIDIA 显卡 + compton 冲突

NVIDIA 闭源驱动下,compton 很容易闪屏。

解决方式之一:

unredir-if-possible = true;

或:

glx-no-stencil = true;

更推荐:直接用 picom(compton 已停止维护)

sudo apt install picom

4️⃣ 刷新率不匹配(尤其双屏)

主屏 60Hz,副屏 144Hz,compton 很容易闪。

解决:

  • 统一刷新率
  • 或只用一个屏幕测试
  • 或:
refresh-rate = 60;

5️⃣ 窗口管理器不兼容

某些轻量 WM(如 openbox、i3、bspwm)配置不当会冲突。

检查:

  • 是否重复启动合成器
  • 是否和 xcompmgr 冲突
ps aux | grep compton

6️⃣ 透明 / 阴影 / 模糊导致闪

特别是:

blur-background = true;
shadow = true;

排查方法: 先全部关掉:

shadow = false;
blur-background = false;
fade = false;

7️⃣ 多显示器 / 热插拔

显示器热插拔极易触发 compton 闪屏。

解决:

  • 重启 compton
killall compton && compton &

二、推荐的稳定配置示例(通用)

backend = "glx";
vsync = true;
unredir-if-possible = true;
shadow = false;
blur-background = false;
fade = false;

三、强烈建议:换 picom

compton 已停止维护,很多问题在 picom 中已修复。

picom --experimental-backends

四、快速排查流程(建议你照做)

  1. 关掉所有特效
  2. 换 backend
  3. 开 vsync
  4. 单屏测试
  5. 换 picom

如果你愿意,可以告诉我:

  • 发行版(Arch / Ubuntu / Debian?)
  • 显卡(Intel / NVIDIA / AMD?)
  • 窗口管理器(i3 / bspwm / openbox?)
  • 是否双屏

我可以直接帮你写一份不闪的配置文件。

0 踩