From dbcbce2a628a5cb450b442d7fecc10eda369e9ca Mon Sep 17 00:00:00 2001 From: smayzy Date: Sun, 13 Jul 2025 22:21:17 +0200 Subject: [PATCH] modify wallpaper.sh to stop it from letting multiple instances run at the same time --- dotfiles/hypr-lap/wallpaper.sh | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/dotfiles/hypr-lap/wallpaper.sh b/dotfiles/hypr-lap/wallpaper.sh index 95b00d1..9c7876e 100755 --- a/dotfiles/hypr-lap/wallpaper.sh +++ b/dotfiles/hypr-lap/wallpaper.sh @@ -1,17 +1,13 @@ #!/usr/bin/env bash Wallpaper_DIR="/home/smayzy/wallpaper" -LOCKFILE="/tmp/wallpaper_changer.lock" MONITOR=$(hyprctl monitors | awk '/Monitor/ {print $2; exit}') -if [ -f "$LOCKFILE" ]; then - old_pid=$(cat "$LOCKFILE") - if ps -p "$old_pid" > /dev/null 2>&1; then - kill "$old_pid" - fi -fi - -echo $$ > "$LOCKFILE" +SCRIPT_NAME=$(basename "$0") +SELF_PID=$$ +pgrep -f "$SCRIPT_NAME" | grep -v "^$SELF_PID$" | while read -r pid; do + kill "$pid" +done set_wallpaper() { local Wallpaper=$(find $Wallpaper_DIR | shuf -n 1) @@ -25,8 +21,6 @@ set_wallpaper() { hyprpaper & } -trap "rm -f $LOCKFILE" EXIT - while true; do set_wallpaper sleep 600