laptop-config/home/wallpaper-rotate.sh

23 lines
670 B
Bash

#!/usr/bin/env bash
set -o pipefail
# Wallpapers are in the laptop-config repo
WALLPAPER_DIR="$HOME/laptop-config/wallpapers"
CACHE_FILE="$HOME/.cache/current-wallpaper"
mapfile -t wallpapers < <(find "$WALLPAPER_DIR" -maxdepth 1 -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.gif" \) | sort)
count="${#wallpapers[@]}"
if [ "$count" -eq 0 ]; then
echo "No wallpapers found in $WALLPAPER_DIR"
exit 1
fi
current=$(cat "$CACHE_FILE" 2>/dev/null || echo "")
chosen="$current"
while [ "$chosen" = "$current" ] && [ "$count" -gt 1 ]; do
chosen="${wallpapers[$((RANDOM % count))]}"
done
echo "$chosen" > "$CACHE_FILE"
awww img "$chosen"