2025-06-10 15:54:54 +08:00
|
|
|
{
|
|
|
|
|
writeShellApplication,
|
|
|
|
|
pinentry-all,
|
|
|
|
|
}:
|
|
|
|
|
writeShellApplication {
|
2025-01-15 13:37:41 +08:00
|
|
|
name = "pinentry";
|
2025-06-10 15:54:54 +08:00
|
|
|
runtimeInputs = [
|
2025-01-15 13:37:41 +08:00
|
|
|
pinentry-all
|
|
|
|
|
];
|
|
|
|
|
text = ''
|
|
|
|
|
if [ -v XDG_SESSION_TYPE ]; then
|
|
|
|
|
case $XDG_SESSION_TYPE in
|
|
|
|
|
tty)
|
2025-01-17 13:20:37 +08:00
|
|
|
pinentry-tty "$@";;
|
2025-01-15 13:37:41 +08:00
|
|
|
*)
|
2025-01-17 13:20:37 +08:00
|
|
|
pinentry-gnome3 "$@";;
|
2025-01-15 13:37:41 +08:00
|
|
|
esac
|
|
|
|
|
elif [ -v SSH_CLIENT ] && [ -n "$SSH_CLIENT" ]; then
|
2025-01-17 13:20:37 +08:00
|
|
|
pinentry-tty "$@"
|
2025-01-15 13:37:41 +08:00
|
|
|
elif [ -v WAYLAND_DISPLAY ] && [ -n "$WAYLAND_DISPLAY" ]; then
|
2025-01-17 13:20:37 +08:00
|
|
|
pinentry-gnome3 "$@"
|
2025-01-15 13:37:41 +08:00
|
|
|
elif [ -v DISPLAY ] && [ -n "$DISPLAY" ]; then
|
2025-01-17 13:20:37 +08:00
|
|
|
pinentry-gnome3 "$@"
|
2025-01-15 13:37:41 +08:00
|
|
|
else
|
2025-01-17 13:20:37 +08:00
|
|
|
pinentry-tty "$@"
|
2025-01-15 13:37:41 +08:00
|
|
|
fi
|
|
|
|
|
'';
|
|
|
|
|
}
|