From: sev Date: Sun, 31 Dec 2023 07:16:56 +0000 (-0600) Subject: simplify some gpg stuff, add pinentry fallback X-Git-Url: https://git.sev.monster/~sev/dotfiles.git/commitdiff_plain/29b45f3cd04fe7f94aaebbd99c4bdbb3f23f98f3?ds=sidebyside;hp=0ca7cf361de9a1a40709ae7eaf9dbd77ad105694 simplify some gpg stuff, add pinentry fallback --- diff --git a/bin/pinentry b/bin/pinentry index 39349d5..5a31bd4 100755 --- a/bin/pinentry +++ b/bin/pinentry @@ -2,7 +2,7 @@ # https://kevinlocke.name/bits/2019/07/31/prefer-terminal-for-gpg-pinentry set -C -gfx="gnome qt gtk-4 gtk-3 gtk-2 gtk bemenu dmenu x11" +gfx="qt gnome gtk-4 gtk-3 gtk-2 gtk bemenu dmenu x11" tty="curses-ss curses tty" case "${PINENTRY_USER_DATA-}" in # prefer tty unless USE_TTY is 0 @@ -17,4 +17,7 @@ for x in $list; do fi done +# fallback +exec pinentry "$@" + echo "No pinentry program found" >&2 diff --git a/etc/zsh/.zprofile b/etc/zsh/.zprofile index 407c300..58ebfa1 100644 --- a/etc/zsh/.zprofile +++ b/etc/zsh/.zprofile @@ -143,18 +143,15 @@ if [[ -v commands[gpg-connect-agent] && export GPG_TTY=$(tty) if [[ ( -v DISPLAY || -v WAYLAND_DISPLAY ) && ${PINENTRY_USER_DATA/USE_TTY=0} == $PINENTRY_USER_DATA ]] - export PINENTRY_USER_DATA=USE_TTY=$(( - ${+DISPLAY} + ${+WAYLAND_DISPLAY} == 0)) - # XXX: don't know if gpg-agent supports comments after directives - # XXX: path could have # + export PINENTRY_USER_DATA=USE_TTY=0 # XXX: we are assuming this is our pinentry from .local/bin - sed -Ei 's#^([[:space:]]*pinentry-program[[:space:]]).*$#\1'$HOME'/.local/bin/pinentry#' \ + sed -Ei 's^([[:space:]]*pinentry-program[[:space:]]).*$\1'$HOME'/.local/bin/pinentry' \ ${GNUPGHOME:-~/.gnupg}/gpg-agent.conf 2>/dev/null # XXX: could check for changes before doing this to save perf gpg-connect-agent RELOADAGENT UPDATESTARTUPTTY /bye >/dev/null 2>&1 if {$p} { gpg-connect-agent /subst /serverpid \ - "/echo pid \${get serverpid} on $GPG_TTY" /bye 2>/dev/null + "/echo pid \${get serverpid} on ${WAYLAND_DISPLAY:-${DISPLAY:-$GPG_TTY}}" /bye 2>/dev/null print -nP '%f' } } elif {$p} {