温馨提示×

linux compton如何调试

小樊
41
2026-10-15 12:44:57
栏目: 智能运维

在 Linux 下调试 compton(现已多被 fork 为 picom)通常从日志、配置、进程状态、渲染后端几个方面入手。下面按实用顺序说明。


一、使用调试日志(最重要)

1. 前台运行并输出日志

不要后台启动,直接终端运行:

compton --config ~/.config/compton.conf -b # 先看是否报错

更推荐:

compton --config ~/.config/compton.conf --log-level trace --log-file /tmp/compton.log

或(旧版):

compton -c -f -D 5 --shadow-exclude "n:e:Notification"

查看日志:

tail -f /tmp/compton.log

log-level 可选:

  • error
  • warn
  • info
  • debug
  • trace(最详细)

二、确认是否真正在运行

ps aux | grep compton

或:

pgrep -a compton

如果有多个实例,先杀掉:

pkill compton

三、最小化配置调试法(强烈推荐)

先用一个最小配置排除配置问题:

# ~/.config/compton.conf
backend = "glx";
glx-no-stencil = true;
shadow = false;
fade = false;
unredir-if-possible = true;

然后运行:

compton --config ~/.config/compton.conf

如果这样正常,再逐步加功能(阴影、模糊、淡入)。


四、常见调试点

1. 黑屏 / 闪屏

尝试:

backend = "xrender";

或:

backend = "glx";
vsync = "none";

2. 阴影异常

shadow = true;
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'"
];

调试:

compton --shadow --shadow-radius=0

3. 透明窗口不生效

确认:

  • 窗口管理器支持 compositing
  • 没有设置 unredir-if-possible = true 导致全屏 bypass

4. NVIDIA 用户

尝试:

backend = "glx";
glx-no-rebind-pixmap = true;

或降级到:

backend = "xrender";

五、使用 X 工具辅助

查看窗口属性

xwininfo
xprop

例如:

xprop | grep WM_CLASS

用于写 class_g 排除规则。


六、picom(compton 的继任者)

如果你用的是 picom(推荐):

picom --experimental-backends --backend glx --log-level trace

配置文件:

~/.config/picom/picom.conf

七、快速排错 checklist

✅ 只有 一个 compton 实例
✅ 使用 --log-level trace
✅ 最小配置先跑通
✅ backend 正确(glx / xrender)
✅ 显卡驱动正常(glxinfo)


如果你愿意,可以贴出:

  • 发行版
  • 显卡 & 驱动
  • compton / picom 版本
  • 当前配置

我可以帮你精确定位问题。

0 踩