温馨提示×

Ubuntu Compton配置中如何解决画面撕裂问题

小樊
97
2025-11-24 15:20:31
栏目: 智能运维

Ubuntu 下用 Compton 解决画面撕裂的实用配置

一、先完成两项系统侧检查

  • 确认使用 X11 会话(Compton 是 X11 合成器;若在 Wayland 会话中,请切换到 Xorg)。
  • 将显示器刷新率设置为面板标称值(如 60 Hz/120 Hz):
    1. 查看输出名与当前刷新率:xrandr -q
    2. 设置刷新率(示例为 eDP-1 设为 60 Hz):xrandr --output eDP-1 --rate 60
    3. 若需持久化,将 xrandr 命令加入自启动脚本(如 ~/.xprofile 或窗口管理器启动脚本)。

二、Compton 关键配置项与推荐值

  • 启用 vsync:优先使用 vsync = true 减少撕裂;若出现卡顿或输入延迟,可尝试 vsync = drm(部分驱动/内核下更稳)。
  • 选择渲染后端:优先 backend = “glx”;如驱动异常再试 xrender
  • 启用损伤追踪:保持 glx-damage = true; damage = true,提升重绘效率与同步效果。
  • 降低合成开销(可选):关闭阴影 shadow = false,或按需精简模糊与透明度规则,减少卡顿与潜在撕裂诱因。
  • 多显示器要点:Compton 对多屏无需逐屏特殊配置,但需确保各屏刷新率正确;必要时在启动脚本中按顺序设置 xrandr --output <NAME> --rate <HZ> 后再启动 Compton。

示例配置(保存为 ~/.config/compton.conf):

backend = "glx"
vsync = true
# vsync = "drm"   # 如 true 有卡顿/延迟可尝试此项

glx-no-stencil = false
glx-copy-from-front = true
glx-shape = true
glx-fbconfig = false
glx-hardware = true
glx-damage = true
damage = true

shadow = false
# 如需模糊/透明度,可按需开启并精简规则
# opacity-rule = [ "90:class_g 'Firefox'", "90:class_g 'Terminal'" ]

三、应用与自启动

  • 手动重启 Compton(确保旧进程退出):
    killall compton && compton -b
  • 开机自启动(任选其一):
    • Openbox 等窗口管理器:在 ~/.config/autostart/compton.desktop 中加入
      [Desktop Entry]
      Type=Application
      Exec=/usr/bin/compton -b --config ~/.config/compton.conf
      Hidden=false
      NoDisplay=false
      X-GNOME-Autostart-enabled=true
      Name=Compton
      Comment=Compton Window Composer
      
    • 使用 Xorg 会话登录脚本:在 ~/.xprofile~/.xinitrc 中加入
      compton -b --config ~/.config/compton.conf

四、仍撕裂时的排查顺序

  • 切换 vsync 模式(true → drm),观察卡顿与撕裂的权衡。
  • 切换 backend(glx ↔ xrender),排除驱动兼容性问题。
  • 关闭或精简 阴影/模糊/透明度 等特效,降低合成负载。
  • 再次核对各显示器刷新率是否为标称值(如 60/120 Hz),必要时在启动脚本中先设置 xrandr --output <NAME> --rate <HZ> 再启动 Compton。
  • 更新显卡驱动(如 NVIDIA/AMD/Intel 官方驱动),并优先使用 Xorg 会话。

0