aboutsummaryrefslogtreecommitdiff
path: root/dot_config/hypr
diff options
context:
space:
mode:
Diffstat (limited to 'dot_config/hypr')
-rw-r--r--dot_config/hypr/config/autostart.lua1
-rw-r--r--dot_config/hypr/scripts/executable_ssh-agent-session24
2 files changed, 25 insertions, 0 deletions
diff --git a/dot_config/hypr/config/autostart.lua b/dot_config/hypr/config/autostart.lua
index d902fc9..ae8522e 100644
--- a/dot_config/hypr/config/autostart.lua
+++ b/dot_config/hypr/config/autostart.lua
@@ -1,4 +1,5 @@
hl.on("hyprland.start", function()
+ hl.exec_cmd("~/.config/hypr/scripts/ssh-agent-session")
hl.exec_cmd("awww-daemon")
hl.exec_cmd("awww restore")
hl.exec_cmd("gentoo-pipewire-launcher")
diff --git a/dot_config/hypr/scripts/executable_ssh-agent-session b/dot_config/hypr/scripts/executable_ssh-agent-session
new file mode 100644
index 0000000..6a05ba8
--- /dev/null
+++ b/dot_config/hypr/scripts/executable_ssh-agent-session
@@ -0,0 +1,24 @@
+ #!/bin/sh
+
+ agent_socket="${XDG_RUNTIME_DIR:?XDG_RUNTIME_DIR is not set}/ssh-agent.sock"
+
+ SSH_AUTH_SOCK="$agent_socket" /usr/bin/ssh-add -l >/dev/null 2>&1
+ agent_status=$?
+
+ case "$agent_status" in
+ 0|1)
+ # Agent exists; status 1 only means it currently has no keys.
+ exit 0
+ ;;
+ 2)
+ # No reachable agent. Remove only its stale runtime socket.
+ rm -f -- "$agent_socket"
+ exec /usr/bin/ssh-agent \
+ -D \
+ -a "$agent_socket" \
+ -t 8h
+ ;;
+ *)
+ exit "$agent_status"
+ ;;
+ esac