35 lines
695 B
Bash
Executable File
35 lines
695 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
Wallpaper_DIR="/home/smayzy/wallpaper"
|
|
LOCKFILE="/tmp/wallpaper_changer.lock"
|
|
|
|
if [ -f "$LOCKFILE" ]; then
|
|
old_pid=$(cat "$LOCKFILE")
|
|
if ps -p "$old_pid" > /dev/null 2>&1; then
|
|
kill "$old_pid"
|
|
sleep 1
|
|
fi
|
|
fi
|
|
|
|
echo $$ > "$LOCKFILE"
|
|
|
|
set_wallpaper() {
|
|
local Wallpaper=$(find $Wallpaper_DIR | shuf -n 1)
|
|
|
|
> /home/smayzy/.config/hypr/hyprpaper.conf
|
|
|
|
echo "preload = $Wallpaper" >> /home/smayzy/.config/hypr/hyprpaper.conf
|
|
echo "wallpaper = ,$Wallpaper" >> /home/smayzy/.config/hypr/hyprpaper.conf
|
|
|
|
pkill hyprpaper 2>/dev/null
|
|
hyprpaper &
|
|
}
|
|
|
|
trap "rm -f $LOCKFILE" EXIT
|
|
|
|
while true; do
|
|
set_wallpaper
|
|
sleep 600
|
|
done
|
|
|