#!/usr/bin/env bash

WALLPAPER_DIR="$HOME/Pictures/Wallpapers/current/"
INTRO_DIR="$HOME/Pictures/Wallpapers/intro/"
DELAY=5m

intro() {
  if [ -z "$(ls -A "$WALLPAPER_DIR")" ]; then
    echo "Current wallpaper folder is empty, nothing to do"
    sleep 1
    exit 0
  fi

  WALLPAPER=$(find "$INTRO_DIR" -type l | shuf -n 1)
  
  while true; do

    if hyprctl hyprpaper reload ,"$WALLPAPER"; then
      sleep 1.5
      break
    fi

    sleep 0.1

  done

}

random_wallpaper() {
  # Check if folder is not empty
  if [ -z "$(ls -A "$WALLPAPER_DIR")" ]; then
    echo "Current wallpaper folder is empty, nothing to do"
    exit 0
  fi

  CURRENT_WALL=$(hyprctl hyprpaper listloaded)

  # Get a random wallpaper that is not the current one
  WALLPAPER=$(find "$WALLPAPER_DIR" -type l ! -name "$(basename "$CURRENT_WALL")" | shuf -n 1)

  # Apply the selected wallpaper
  hyprctl hyprpaper unload all
  hyprctl hyprpaper reload ,"$WALLPAPER"

  echo "Set random wallpaper to $WALLPAPER"
}

loop() {
  intro
  while true; do
    random_wallpaper
    sleep "$DELAY"
  done
}

loop
