57 lines
1.1 KiB
Bash
Executable File
57 lines
1.1 KiB
Bash
Executable File
#!/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
|