diff --git a/bin/omarchy-system-lock b/bin/omarchy-system-lock index bd30359f..bcad2452 100755 --- a/bin/omarchy-system-lock +++ b/bin/omarchy-system-lock @@ -10,9 +10,13 @@ omarchy-shell lock lock >/dev/null # Set keyboard layout to default (first layout) hyprctl switchxkblayout all 0 > /dev/null 2>&1 -# Ensure 1password is locked -if pgrep -x "1password" >/dev/null; then - 1password --lock & +# Ensure 1password is locked. Use timeout because `1password --lock` can +# otherwise leave a full Electron helper tree running after each lock. +if pgrep -x "1password" >/dev/null && command -v 1password >/dev/null 2>&1; then + ( + flock -n 9 || exit 0 + timeout --kill-after=1s 3s 1password --lock >/dev/null 2>&1 || true + ) 9>"${XDG_RUNTIME_DIR:-/tmp}/omarchy-1password-lock.lock" & fi # Avoid running screensaver when locked