Debian 下使用 Compton 实现窗口动画的要点
Compton 是 X11 的窗口合成器,主要负责窗口的合成、阴影、透明度等视觉呈现;它并不提供类似 KWin/Mutter 那样的“内置窗口过渡动画”。因此,常见的“窗口动画”(如淡入淡出、滑入滑出、最小化/最大化过渡)通常来自窗口管理器(如 i3、Openbox、awesome)或桌面环境自带的动画,Compton 的作用是让这些动画更顺滑(抗撕裂、透明叠加正确)。若使用 Wayland,Compton 不适用,应改用相应桌面/合成器的内置动画方案。
快速实现顺滑过渡的做法
killall compton && compton --config ~/.config/compton.conf &~/.config/i3/config 中加入 exec --no-startup-id compton --config ~/.config/compton.conf)。让动画更顺滑的实用配置示例
# ~/.config/compton.conf
backend = "glx";
vsync = true;
# 淡入淡出
fade = true;
fade-delta = 10;
fade-in-step = 0.03;
fade-out-step = 0.03;
# 阴影
shadow = true;
shadow-radius = 5;
shadow-offset-x = 1;
shadow-offset-y = 1;
shadow-opacity = 0.3;
shadow-exclude = [
"name 'Notification'",
"class_g ? 'Dmenu'",
"class_g ? 'Dunst'",
"_NET_WM_STATE@:32a * '_NET_WM_STATE_HIDDEN'"
];
# 透明度(示例:Firefox/Chromium 保持 90% 不透明)
opacity-rule = [
"90:class_g='Firefox'",
"90:class_g='Chromium'"
];
# 忽略根窗口透明,减少某些环境下的异常
ignore_root = true;
说明:上述键位与语义以当前主流 Compton 配置为准;若你的版本不支持个别键(例如某些“动画时长”项),请删除或改用等效项(如用 fade-delta 调节速度)。
常见故障排查
killall compton && compton --config ~/.config/compton.conf & 重载;留意终端输出的弃用/错误提示并修正。compton --config ~/.config/compton.conf。进阶方案
若需要“窗口抖动、弹跳、路径动画”等更丰富的效果,Compton 本身不提供,可结合 xdotool 等工具编写脚本对窗口进行移动/缩放,从而实现自定义动画;例如用 xdotool windowmove 将窗口平滑移动到目标位置,再配合 Compton 的淡入淡出获得更自然的观感。