在 Wayland 环境下使用 Compton(现通常指 Picom,Compton 的分支)需要特别注意 Wayland 的合成器架构差异。以下是详细配置指南和注意事项:
Wayland 本身不依赖独立的合成器(如 Xorg 的 Compton/Picom),因为合成功能已由 Wayland 合成器(如 weston
、sway
、mutter
等)原生提供。但部分 Wayland 合成器允许通过 Picom 增强特效。
echo $XDG_SESSION_TYPE
若输出 wayland
,则确认处于 Wayland 环境。
sway-effects
等插件实现透明度、阴影等。blur-my-shell
)实现模糊效果。xwayland
模式运行 Picom若部分 X11 应用在 Wayland 中运行(通过 XWayland),可针对它们启动 Picom:
picom --backend xr_glx_hybrid --xrender-sync-fence
参数说明:
- --backend xr_glx_hybrid
:兼容 XWayland 的最佳后端。
- --xrender-sync-fence
:避免画面撕裂。
编辑 ~/.config/picom/picom.conf
:
backend = "glx";
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
xrender-sync-fence = true;
# 透明和阴影设置(仅对 XWayland 窗口生效)
opacity-rule = [
"90:class_g = 'Alacritty'",
"80:class_g = 'Code'"
];
shadow = true;
shadow-radius = 12;
关键点:
- 仅对 XWayland 窗口生效,原生 Wayland 窗口不受影响。
- 避免使用 vsync
或 use-damage
,可能导致问题。
picom --config ~/.config/picom/picom.conf --log-level DEBUG
检查日志确认是否识别到 XWayland 窗口。
在 Wayland 合成器配置文件中(如 ~/.config/sway/config
)添加:
exec_always picom --config ~/.config/picom/picom.conf
for_window
规则设置透明度)。ini
backend = "xrender";
vsync = false;
jonaburg
分支支持更多特性):
bash
git clone https://github.com/jonaburg/picom
cd picom && meson setup --buildtype=release . build
ninja -C build && sudo ninja -C build install
xr_glx_hybrid
后端。通过以上步骤,可以在 Wayland 环境中合理利用 Picom 增强 XWayland 应用的外观,同时保持系统稳定性。