modify wallpaper.sh to stop it from letting multiple instances run at the same time

This commit is contained in:
smayzy 2025-07-13 22:21:17 +02:00
parent e83ff7f66a
commit dbcbce2a62

View File

@ -1,17 +1,13 @@
#!/usr/bin/env bash #!/usr/bin/env bash
Wallpaper_DIR="/home/smayzy/wallpaper" Wallpaper_DIR="/home/smayzy/wallpaper"
LOCKFILE="/tmp/wallpaper_changer.lock"
MONITOR=$(hyprctl monitors | awk '/Monitor/ {print $2; exit}') MONITOR=$(hyprctl monitors | awk '/Monitor/ {print $2; exit}')
if [ -f "$LOCKFILE" ]; then SCRIPT_NAME=$(basename "$0")
old_pid=$(cat "$LOCKFILE") SELF_PID=$$
if ps -p "$old_pid" > /dev/null 2>&1; then pgrep -f "$SCRIPT_NAME" | grep -v "^$SELF_PID$" | while read -r pid; do
kill "$old_pid" kill "$pid"
fi done
fi
echo $$ > "$LOCKFILE"
set_wallpaper() { set_wallpaper() {
local Wallpaper=$(find $Wallpaper_DIR | shuf -n 1) local Wallpaper=$(find $Wallpaper_DIR | shuf -n 1)
@ -25,8 +21,6 @@ set_wallpaper() {
hyprpaper & hyprpaper &
} }
trap "rm -f $LOCKFILE" EXIT
while true; do while true; do
set_wallpaper set_wallpaper
sleep 600 sleep 600