From 75a903d038b6141f577aad480a4667162d32080e Mon Sep 17 00:00:00 2001 From: Johannes Löthberg Date: Mon, 11 Aug 2014 21:32:12 +0200 Subject: zprofile: Switch from gnome-keyring to gpg/ssh-agent --- zsh/.zprofile | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/zsh/.zprofile b/zsh/.zprofile index a2be301..0871e85 100644 --- a/zsh/.zprofile +++ b/zsh/.zprofile @@ -41,8 +41,27 @@ export FQDN=$(hostname -f) # LS_COLORS is now required for `ls` to use colour source <(dircolors -b "$XDG_CONFIG_HOME"/dircolors) -[[ -S '/run/user/1000/keyring/gpg' ]] && export GPG_AGENT_INFO='/run/user/1000/keyring/gpg:0:1' -[[ -S '/run/user/1000/keyring/ssh' ]] && export SSH_AUTH_SOCK='/run/user/1000/keyring/ssh' +function { + local envfile="$XDG_RUNTIME_DIR"/gpg-agent.env + if [[ -e "$envfile" ]] && kill -0 $(cut -d':' -f2 <"$envfile") &>/dev/null; then + source "$envfile" + else + source <(gpg-agent --daemon --write-env-file "$envfile") + export GPG_AGENT_INFO + fi +} + +function { + local envfile="$XDG_RUNTIME_DIR"/ssh-agent.env + local pid=$(awk -F'[=;]' 'FNR == 2 {print $2}' "$envfile" 2>/dev/null) + + if [[ -n "$pid" ]] && kill -0 "$pid" &>/dev/null; then + source "$envfile" >/dev/null + else + ssh-agent > "$envfile" + source "$envfile" >/dev/null + fi +} if [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]]; then exec startx "$XDG_CONFIG_HOME"/X11/xinitrc -- cgit v1.2.3-70-g09d2