Compton 与 Mutter 在 GNOME 中的角色与关系
- Mutter 是 GNOME 的默认窗口管理器与合成器,负责窗口的创建、移动、缩放、关闭以及系统级动画与特效,是 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-exclude 与 opacity-rule。
- 版本选择:优先考虑 picom(Compton 的活跃维护分支),获得更好的兼容性与修复。