if (( ${+commands[gpg]} )) {
# SSH_AUTH_SOCK should be set in a remote SSH session for passthrough
# if it isn't, we are likely the first login shell on the local machine
- if [[ ! -v SSH_AUTH_SOCK ]] {
+ # we also want to update USE_TTY if we are the login shell in graphics mode
+ if [[ ! -v SSH_AUTH_SOCK || -v DISPLAY ]] {
export GPG_TTY=$(tty)
+ export PINENTRY_USER_DATA=USE_TTY=$((! ${+DISPLAY}))
gpg-connect-agent UPDATESTARTUPTTY /bye >/dev/null
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
}