#!/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 # xss-lock -- ./pretty-lock & swayidle -w \ timeout 300 '~/bin/pretty-lock' \ timeout 500 'swaymsg "output * dpms off"' \ resume 'swaymsg "output * dpms on"' \ before-sleep 'swaymsg "output * dpms off"' \ before-sleep '~/bin/pretty-lock'