28 lines
729 B
Bash
28 lines
729 B
Bash
#!/bin/bash
|
|
|
|
# Run user-defined and site-defined pre-exec hooks.
|
|
[[ -r "${XDG_CONFIG_HOME:-$HOME/.config}"/pinentry/preexec ]] && \
|
|
. "${XDG_CONFIG_HOME:-$HOME/.config}"/pinentry/preexec
|
|
[[ -r /etc/pinentry/preexec ]] && . /etc/pinentry/preexec
|
|
|
|
# Guess preferred backend based on environment.
|
|
backends=(curses tty)
|
|
if [[ -n "$DISPLAY" || -n "$WAYLAND_DISPLAY" ]]; then
|
|
case "$XDG_CURRENT_DESKTOP" in
|
|
KDE|LXQT|LXQt)
|
|
backends=(qt qt5 gnome3 gtk curses tty)
|
|
;;
|
|
*)
|
|
backends=(gnome3 gtk qt qt5 curses tty)
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
for backend in "${backends[@]}"
|
|
do
|
|
lddout=$(ldd "/usr/bin/pinentry-$backend" 2>/dev/null) || continue
|
|
[[ "$lddout" == *'not found'* ]] && continue
|
|
exec "/usr/bin/pinentry-$backend" "$@"
|
|
done
|
|
|
|
exit 1
|