在 Debian 上使用 Compton 减少窗口抖动
一 安装与准备
- 在 Debian 上安装 Compton(若已安装可跳过):
- sudo apt update
- sudo apt install compton
- 准备或编辑配置文件(推荐路径):~/.config/compton.conf。若文件不存在可先创建目录与空文件:
- mkdir -p ~/.config
- nano ~/.config/compton.conf
- 为避免与桌面自带的合成器冲突(如 GNOME/KDE 等自带合成器),建议先关闭桌面自带的合成功能,再启用 Compton。
二 关键配置与示例
- 目标是通过合适的同步与重绘策略,减少撕裂、卡顿与“抖动感”。下列为可直接使用的示例配置,并附有要点说明:
- 示例配置(保存到 ~/.config/compton.conf):
# 基本渲染与同步
backend = "glx"
vsync = "opengl-swc" # 或 "opengl";若出现闪烁可改为 "none" 对比测试
glx-swap-method = 1 # 1=copy, 2=exchange, 3=3d; 视驱动与卡顿情况调整
refresh-rate = 0 # 0=自动检测;若有多显示器且刷新率不同,可手动指定主屏刷新率
# 重绘与渲染优化
paint-on-overlay = true
unredir-if-possible = true
use-damage = true
sw-opti = true
xrender-sync-fence = true
# 阴影与模糊(可按需关闭以进一步稳帧)
shadow = true
shadow-radius = 12
shadow-offset-x = -15
shadow-offset-y = -15
fading = true
fade-delta = 4
fade-in-step = 0.03
fade-out-step = 0.03
# 窗口规则示例(可按需增删)
opacity-rule = [
"90:class_g = 'Firefox'",
"90:class_g = 'Chromium'"
]
- 要点说明:
- vsync:优先使用 opengl-swc,若仍有撕裂或卡顿,尝试 opengl 或 none 做 A/B 测试。
- glx-swap-method:不同显卡/驱动表现差异较大,常用 1 或 2,如不稳定改为 3 再测。
- refresh-rate:多屏或驱动识别不准时,手动填写主屏刷新率(如 60 或 144)。
- paint-on-overlay / unredir-if-possible / use-damage:减少不必要的重绘与重定向,提升稳定性。
- fading:淡入淡出会带来轻微动画;若追求“零动画”的极致稳帧,可设为 false。
三 启动与自启动
- 手动启动(便于测试配置是否生效):
- killall compton 2>/dev/null
- compton --config ~/.config/compton.conf
- 图形会话自启动(按桌面环境选择其一):
- Xfce:设置 → 会话和启动 → 应用程序自启动,添加命令:compton --config ~/.config/compton.conf
- i3:在 ~/.config/i3/config 的 exec 段加入:exec --no-startup-id compton --config ~/.config/compton.conf
- Openbox:在 autostart 中加入:compton --config ~/.config/compton.conf &
- 不建议使用 systemd 用户服务管理 Compton(会话级合成器更适合随图形会话启动与退出)。
四 验证与排障
- 验证要点:
- 在浏览器或终端中快速滚动、拖动窗口、切换工作区,观察是否有撕裂、卡顿或“抖动感”。
- 调整 vsync 与 glx-swap-method 的组合,通常能直接改善观感。
- 常见问题与处理:
- 与 GNOME/KDE 自带合成器冲突导致卡顿或黑屏:关闭桌面合成功能后再启用 Compton。
- 多显示器刷新率不一致引发抖动:在配置中显式设置 refresh-rate 为主屏刷新率。
- 特定应用(如 Firefox/Chromium)渲染异常:通过 opacity-rule 降低透明度或暂时禁用模糊/阴影以定位问题。
- 配置修改后未生效:先 killall 再启动,确保以新配置运行。