Files
dotfiles/hypr/scripts/change-wallpaper.sh

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")"