{ pkgs }: pkgs.writeShellApplication { name = "pinentry"; runtimeInputs = with pkgs; [ pinentry-all ]; text = '' if [ -v XDG_SESSION_TYPE ]; then case $XDG_SESSION_TYPE in tty) pinentry-tty;; *) pinentry-gnome3;; esac elif [ -v SSH_CLIENT ] && [ -n "$SSH_CLIENT" ]; then pinentry-tty elif [ -v WAYLAND_DISPLAY ] && [ -n "$WAYLAND_DISPLAY" ]; then pinentry-gnome3 elif [ -v DISPLAY ] && [ -n "$DISPLAY" ]; then pinentry-gnome3 else pinentry-tty fi ''; }