32 lines
962 B
Bash
Executable File
32 lines
962 B
Bash
Executable File
#!/bin/sh
|
|
WALLPAPER_DIR="$HOME/Pictures/Wallpapers/"
|
|
CACHE_FILE="$HOME/.cache/current_wallpaper"
|
|
|
|
# 确保目录存在
|
|
mkdir -p "$(dirname "$CACHE_FILE")" 2>/dev/null
|
|
[ -d "$WALLPAPER_DIR" ] || mkdir -p "$WALLPAPER_DIR"
|
|
|
|
NEXT_WALLPAPER=$(find "$WALLPAPER_DIR" -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.gif" -o -name "*.webp" \) 2>/dev/null | shuf -n1)
|
|
|
|
if [ -z "$NEXT_WALLPAPER" ]; then
|
|
echo "⚠️ 未找到壁纸文件,请添加图片到: $WALLPAPER_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
# 初始化 awww (如果未运行)
|
|
if ! pgrep -x awww-daemon >/dev/null; then
|
|
awww-daemon
|
|
fi
|
|
|
|
# 平滑切换壁纸 - 与 swww 完全兼容的命令
|
|
awww img "$NEXT_WALLPAPER" \
|
|
--transition-type=wipe \
|
|
--transition-duration=1.5 \
|
|
--transition-fps=60 \
|
|
--transition-angle=30 \
|
|
--transition-bezier=.43,1.19,1,.4
|
|
|
|
# 保存当前壁纸
|
|
echo "$NEXT_WALLPAPER" > "$CACHE_FILE"
|
|
echo "✅ 壁纸已切换: $(basename "$NEXT_WALLPAPER")"
|