35 lines
1,022 B
Bash
Executable file
35 lines
1,022 B
Bash
Executable file
#!/bin/bash
|
|
|
|
# Directory containing wallpapers
|
|
WALLPAPER_DIR="$HOME/Desktop/wallpapers"
|
|
|
|
# File to keep track of the current wallpaper index
|
|
INDEX_FILE="$HOME/.current_wallpaper_index"
|
|
|
|
# Find images in the wallpaper directory (supports .jpg, .jpeg, and .png)
|
|
wallpapers=($(find "$WALLPAPER_DIR" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \)))
|
|
|
|
# Check if any wallpapers are found
|
|
if [[ ${#wallpapers[@]} -eq 0 ]]; then
|
|
echo "No wallpapers found in the directory: $WALLPAPER_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
# Read the current index from the file or set it to 0 if it doesn't exist
|
|
if [[ -f $INDEX_FILE ]]; then
|
|
current_index=$(cat $INDEX_FILE)
|
|
else
|
|
current_index=0
|
|
fi
|
|
|
|
# Calculate the next index, looping back to 0 if needed
|
|
next_index=$(( (current_index + 1) % ${#wallpapers[@]} ))
|
|
|
|
# Set the next wallpaper
|
|
next_wallpaper="${wallpapers[$next_index]}"
|
|
hyprctl hyprpaper preload "$next_wallpaper"
|
|
hyprctl hyprpaper wallpaper ,"$next_wallpaper"
|
|
|
|
# Save the new index to the file
|
|
echo $next_index > $INDEX_FILE
|
|
|