温馨提示×

Compton与Mutter:GNOME桌面环境的秘密

小樊
43
2025-12-29 19:55:48
栏目: 编程语言

Compton 与 Mutter 在 GNOME 中的角色与关系

  • MutterGNOME 的默认窗口管理器与合成器,负责窗口的创建、移动、缩放、关闭以及系统级动画与特效,是 GNOME Shell 的核心依赖。
  • Compton 是一个轻量级、可配置的窗口合成器,侧重于阴影、透明度、淡入淡出等视觉特效与一定程度的 GPU 加速渲染。
  • 二者并非同类竞品:Mutter 是 GNOME 的“主合成器”,而 Compton 更像是“可替换/补充的合成器”。在现代 Wayland 会话中,Mutter 的合成职责由 GPU 合成承担,第三方合成器通常不适用;在 X11 会话中,两者都作为合成器,叠加运行会产生冲突,通常只保留一个。

能否同时启用

  • X11 会话下,Mutter 与 Compton 同时启用会冲突(两个合成器争抢同一职责),表现为卡顿、撕裂、阴影异常等。正确做法是“二选一”。
  • Wayland 会话下,GNOME 使用 Mutter 的 GPU 合成路径,Compton 不参与;即便安装也不会替代 Mutter 的合成行为。
  • 因此,若希望在 GNOME 中使用 Compton,通常意味着切换到 X11 会话并禁用 Mutter 的合成功能。

在 GNOME 中使用 Compton 的简明步骤

  • 切换到 Xorg(X11)会话:登录界面齿轮图标选择“GNOME on Xorg”。
  • 安装 Compton(或维护更活跃的 picom 分支):
    • Debian/Ubuntu 系:sudo apt update && sudo apt install compton(或 picom
  • 创建配置文件(示例):~/.config/compton.conf
    • 关键项示例:
      • 后端:backend = "glx";(现代 GPU 优先;兼容性不佳时改用 xrender
      • 阴影:shadow = true;shadow-exclude = ["class_g = 'Plank'", "class_g = 'KRunner'"];
      • 透明度:opacity = 0.9;(全局)或 opacity-rule = ["class_g = 'Firefox'"];(按应用)
      • 同步:vsync = true;(减少撕裂)
  • 禁用 Mutter 合成并启用 Compton 自启动:
    • 方式 A:使用 GNOME Tweaks 关闭“Animations”(降低与第三方合成的冲突概率),然后将 compton -b -c ~/.config/compton.conf 加入“启动应用程序”。
    • 方式 B:创建自启动文件 ~/.config/autostart/compton.desktop,内容示例:
      • [Desktop Entry]
      • Type=Application
      • Exec=compton -b -c ~/.config/compton.conf
      • Hidden=false
      • NoDisplay=false
      • X-GNOME-Autostart-enabled=true
      • Name=Compton
  • 使配置生效:注销并重新登录,或重启会话。

如何选择与性能优化建议

  • 选择建议:
    • 追求 稳定、与 GNOME 特性完整兼容(如工作区、概览、扩展生态):优先使用 Mutter
    • 追求 细粒度特效控制(阴影、透明度、窗口规则等)或旧硬件上想降低特效开销:在 X11 下使用 Compton/picom
  • 性能优化要点:
    • 硬件加速:优先 backend = "glx";若出现卡顿或驱动问题,改用 xrender
    • 减少撕裂:开启 vsync = true;
    • 降低开销:在旧设备上关闭不必要的动画/淡入淡出(如 fade = false;),精简 shadow-excludeopacity-rule
    • 版本选择:优先考虑 picom(Compton 的活跃维护分支),获得更好的兼容性与修复。

0