如何在Ubuntu上使用Compton实现窗口抖动
Compton本身是一个轻量级窗口合成器,主要功能是提供窗口透明度、阴影和动画效果,但原生并不直接支持窗口抖动(即通过鼠标快速移动窗口边缘实现的震动效果)。若需实现窗口抖动,需结合第三方工具(如xdotool)模拟鼠标操作,或通过Compton的动画参数调整窗口移动的流畅度。以下是具体步骤:
首先确保系统已安装Compton和xdotool(用于模拟鼠标移动):
sudo apt update
sudo apt install compton xdotool
Compton的配置文件通常位于~/.config/compton.conf(若不存在则手动创建)。编辑配置文件以优化动画效果(抖动的基础):
nano ~/.config/compton.conf
添加或修改以下参数:
# 启用合成(必须)
enable = true
# 选择OpenGL后端(提升动画性能)
backend = "glx"
# 开启动画效果
fade = true
animation-duration = 0.3 # 动画持续时间(秒,越小越快)
animation-step = 0.1 # 动画步长(值越小,抖动越细腻)
# 排除不需要动画的窗口(如桌面、面板)
shadow-exclude = ["class_g = 'Compton'", "class_g = 'Panel'"]
保存并退出(Ctrl+X→Y→Enter)。
由于Compton没有原生抖动命令,需通过xdotool模拟鼠标快速移动窗口边缘,实现抖动效果。创建脚本文件:
nano ~/jiggle_window.sh
粘贴以下内容(脚本逻辑:获取当前活动窗口ID,快速左右移动窗口):
#!/bin/bash
# 获取当前活动窗口ID
window_id=$(xdotool getactivewindow)
# 抖动次数(来回次数)
times=5
# 每次抖动的偏移量(像素)
offset=10
# 抖动间隔(秒)
delay=0.1
# 循环抖动(左右移动)
for ((i=1; i<=times; i++)); do
# 向右移动窗口
xdotool windowmove --sync $window_id $offset 0
sleep $delay
# 向左移动窗口(回到原位)
xdotool windowmove --sync $window_id -$offset 0
sleep $delay
done
保存并赋予执行权限:
chmod +x ~/jiggle_window.sh
compton -c ~/.config/compton.conf
~/jiggle_window.sh
此时窗口会快速左右抖动,效果由animation-duration(动画速度)和脚本中的times(抖动次数)、offset(偏移量)控制。若需每次登录系统时自动启动Compton,可将其添加到桌面环境的启动应用程序中:
compton -c ~/.config/compton.conf
compton -v查看日志排查问题(如显卡驱动兼容性)。offset(偏移量)和delay(间隔)参数优化。通过以上步骤,即可在Ubuntu上使用Compton结合xdotool实现窗口抖动效果。