diff options
Diffstat (limited to 'bin/pretty-lock')
| -rwxr-xr-x | bin/pretty-lock | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/bin/pretty-lock b/bin/pretty-lock index 8ef40e0..48918f6 100755 --- a/bin/pretty-lock +++ b/bin/pretty-lock @@ -1,5 +1,32 @@ #!/bin/sh +LOCKFILE="$HOME/.local/state/algo/swayidle.lock" +LOCKDIR="$(dirname "$LOCKFILE")" + +# Ensure the directory exists +mkdir -p "$LOCKDIR" + +# Check if lockfile exists and process is running +if [ -e "$LOCKFILE" ]; then + LOCKPID=$(cat "$LOCKFILE") + if kill -0 "$LOCKPID" 2>/dev/null; then + echo "swayidle is already running with PID $LOCKPID" + exit 1 + else + echo "Stale lockfile found. Removing." + rm -f "$LOCKFILE" + fi +fi + +# Create lockfile with current PID +echo $$ > "$LOCKFILE" + +# Function to clean up on exit +cleanup() { + rm -f "$LOCKFILE" +} +trap cleanup EXIT + swaylock \ -f \ --screenshots \ |
