温馨提示×

如何在Debian上使用Compton进行窗口抖动消除

小樊
33
2026-01-01 11:44:05
栏目: 智能运维

在 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,若仍有撕裂或卡顿,尝试 openglnone 做 A/B 测试。
      • glx-swap-method:不同显卡/驱动表现差异较大,常用 12,如不稳定改为 3 再测。
      • refresh-rate:多屏或驱动识别不准时,手动填写主屏刷新率(如 60144)。
      • 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(会话级合成器更适合随图形会话启动与退出)。

四 验证与排障

  • 验证要点:
    • 在浏览器或终端中快速滚动、拖动窗口、切换工作区,观察是否有撕裂、卡顿或“抖动感”。
    • 调整 vsyncglx-swap-method 的组合,通常能直接改善观感。
  • 常见问题与处理:
    • GNOME/KDE 自带合成器冲突导致卡顿或黑屏:关闭桌面合成功能后再启用 Compton。
    • 多显示器刷新率不一致引发抖动:在配置中显式设置 refresh-rate 为主屏刷新率。
    • 特定应用(如 Firefox/Chromium)渲染异常:通过 opacity-rule 降低透明度或暂时禁用模糊/阴影以定位问题。
    • 配置修改后未生效:先 killall 再启动,确保以新配置运行。

0