Fixed gpg-agent plugin not doing what the README says it does.

It now launches the `gpg-agent` executable (via `gpgconf --launch`) when
Zsh first starts up.

Also updated the README to explain what issues it fixes when the plugin
is enabled for better transparency about what the plugin actually does.

Signed-off-by: G'lek Tarssza <glek@glektarssza.com>
This commit is contained in:
G'lek Tarssza 2025-09-04 11:24:28 -06:00
commit fc2fc9a28c
No known key found for this signature in database
GPG key ID: 161A6190D2CB472A
2 changed files with 9 additions and 2 deletions

View file

@ -1,6 +1,11 @@
# gpg-agent
Enables [GPG's gpg-agent](https://www.gnupg.org/documentation/manuals/gnupg/) if it is not running.
Enables [GPG's gpg-agent](https://www.gnupg.org/documentation/manuals/gnupg/) if it is not running and fixes some common issues.
Issues fixed are:
* The `GPG_TTY` environment variable being set incorrectly or not set at all.
* SSH agent support being broken when `enable-ssh-support` is enabled.
To use it, add `gpg-agent` to the plugins array of your zshrc file:

View file

@ -1,8 +1,10 @@
export GPG_TTY=$TTY
# Launch gpg-agent ahead of time
gpgconf --launch gpg-agent
# Fix for passphrase prompt on the correct tty
# See https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html#option-_002d_002denable_002dssh_002dsupport
function _gpg-agent_update-tty_preexec {
export GPG_TTY="${TTY}"
gpg-connect-agent updatestartuptty /bye &>/dev/null
}
autoload -U add-zsh-hook