nixos/pkgs/pinentry-selector.nix

25 lines
581 B
Nix

{ 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
'';
}