#!/bin/bash # Set environment for Hyprland export XDG_RUNTIME_DIR="/run/user/$(id -u)" export WAYLAND_DISPLAY=$(ls "$XDG_RUNTIME_DIR"/wayland-* | head -1 | xargs basename) CONFIG_FILE="$HOME/.config/hypr/hyprpaper.conf" INDEX_FILE="$HOME/.config/hypr/wallpaper_index" # Read wallpaper list from config wallpapers=() while IFS= read -r line; do if [[ "$line" =~ ^preload\ =\ (.*) ]]; then wallpapers+=("${BASH_REMATCH[1]}") fi done < "$CONFIG_FILE" # Check for wallpapers if [ ${#wallpapers[@]} -eq 0 ]; then echo "No wallpapers found!" >&2 exit 1 fi # Read current index current_index=0 if [ -f "$INDEX_FILE" ]; then current_index=$(<"$INDEX_FILE") fi # Set current wallpaper current_index=$((current_index % ${#wallpapers[@]})) hyprctl hyprpaper wallpaper ",${wallpapers[current_index]}" # Update index for next run next_index=$(( (current_index + 1) % ${#wallpapers[@]} )) echo "$next_index" > "$INDEX_FILE"