diff --git a/modules/gpg/init.zsh b/modules/gpg/init.zsh index a3b37ba3..565f21d5 100644 --- a/modules/gpg/init.zsh +++ b/modules/gpg/init.zsh @@ -11,16 +11,18 @@ if (( ! $+commands[gpg-agent] )); then fi # Set the default paths to gpg-agent files. -_gpg_agent_conf="${GNUPGHOME:-$HOME/.gnupg}/gpg-agent.conf" +_gpg_agent_conf="$(gpgconf --list-dir homedir)/gpg-agent.conf" _gpg_agent_env="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/gpg-agent.env" +_gpg_agent_socket="$(gpgconf --list-dir agent-socket)" # Load environment variables from previous run source "$_gpg_agent_env" 2> /dev/null + # Start gpg-agent if not started. -if [[ -z "$GPG_AGENT_INFO" && ! -S "${GNUPGHOME:-$HOME/.gnupg}/S.gpg-agent" ]]; then +if [[ -z "$GPG_AGENT_INFO" && ! -S "${_gpg_agent_socket}" ]]; then # Start gpg-agent if not started. - if ! ps -U "$LOGNAME" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then + if ! ps -U "$LOGNAME" -o pid,ucomm | grep -q "gpg-agent"; then mkdir -p "$_gpg_agent_env:h" eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")" fi @@ -48,7 +50,7 @@ if grep '^enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then fi # Clean up. -unset _gpg_agent_{conf,env} +unset _gpg_agent_{conf,env,socket} # Disable GUI prompts inside SSH. if [[ -n "$SSH_CONNECTION" ]]; then diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index 6bf237c5..a4c8abf6 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -35,7 +35,6 @@ fi if [[ -S "$SSH_AUTH_SOCK" && "$SSH_AUTH_SOCK" != "$_ssh_agent_sock" ]]; then mkdir -p "$_ssh_agent_sock:h" ln -sf "$SSH_AUTH_SOCK" "$_ssh_agent_sock" - export SSH_AUTH_SOCK="$_ssh_agent_sock" fi # Load identities.