mirror of
https://github.com/aviallon/nixos-lib.git
synced 2026-04-05 17:27:50 +00:00
35 lines
976 B
Nix
35 lines
976 B
Nix
{ writeShellScriptBin, pinentry, ... }:
|
|
writeShellScriptBin "pinentry" ''
|
|
flavor=
|
|
if [ -n "$XDG_CURRENT_DESKTOP" ]; then
|
|
case "$XDG_CURRENT_DESKTOP" in
|
|
KDE|LXQT)
|
|
flavor="qt" ;;
|
|
XFCE)
|
|
flavor="gtk2" ;;
|
|
Gnome)
|
|
flavor="gnome3" ;;
|
|
*)
|
|
echo "Unknown desktop '$XDG_CURRENT_DESKTOP', use 'gnome3'" >&2
|
|
flavor="gnome3" ;;
|
|
esac
|
|
elif [ -z "$XAUTHORITY" -a -z "$WAYLAND_DISPLAY" ]; then
|
|
echo "No Xauthority nor Wayland display, using curses" >&2
|
|
flavor="curses"
|
|
fi
|
|
|
|
if [ -z "$flavor" ]; then
|
|
echo "WARNING: pinentry flavor could not be detected, use 'curses'" >&2
|
|
flavor="curses"
|
|
fi
|
|
|
|
declare -A pinentryFlavors
|
|
pinentryFlavors["qt"]="${pinentry.qt}"
|
|
pinentryFlavors["gtk2"]="${pinentry.gtk2}"
|
|
pinentryFlavors["gnome"]="${pinentry.gnome3}"
|
|
pinentryFlavors["curses"]="${pinentry.curses}"
|
|
|
|
echo "Selected flavor: $flavor" >&2
|
|
|
|
exec ''${pinentryFlavors[$flavor]}/bin/pinentry
|
|
''
|