#!/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"