diff --git a/home/modules/gpg/default.nix b/home/modules/gpg/default.nix index 1862db3..34642d5 100644 --- a/home/modules/gpg/default.nix +++ b/home/modules/gpg/default.nix @@ -2,6 +2,7 @@ pkgs, config, lib, + outputs, ... }: { @@ -26,7 +27,7 @@ { enable = true; enableSshSupport = true; - pinentryPackage = pkgs.pinentry-curses; + pinentryPackage = outputs.packages."${pkgs.system}".pinentry-selector; } (lib.mkIf config.youthlic.programs.fish.enable { enableFishIntegration = true; diff --git a/nixos/configurations/Tytonidae/default.nix b/nixos/configurations/Tytonidae/default.nix index 6cfce14..cbe46e9 100644 --- a/nixos/configurations/Tytonidae/default.nix +++ b/nixos/configurations/Tytonidae/default.nix @@ -29,14 +29,14 @@ openssh.enable = true; steam.enable = true; }; - gui.enabled = "niri"; + gui.enabled = "cosmic"; }; specialisation = { - cosmic = { + niri = { inheritParentConfig = true; configuration = { - youthlic.gui.enabled = lib.mkForce "cosmic"; + youthlic.gui.enabled = lib.mkForce "niri"; }; }; }; diff --git a/pkgs/default.nix b/pkgs/default.nix index db05879..fbc2153 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -4,6 +4,7 @@ ... }: { + pinentry-selector = pkgs.callPackage ./pinentry-selector.nix { }; immersive-translate = (pkgs.callPackage "${inputs.firefox-addons}/default.nix" { }).firefox-addons.immersive-translate; } diff --git a/pkgs/pinentry-selector.nix b/pkgs/pinentry-selector.nix new file mode 100644 index 0000000..a2ecc9c --- /dev/null +++ b/pkgs/pinentry-selector.nix @@ -0,0 +1,22 @@ +{ pkgs }: +pkgs.writeShellApplication { + name = "pinentry"; + runtimeInputs = with pkgs; [ + pinentry-all + ]; + text = '' + case $(tty) in + /dev/tty[1-9]) + pinentry-curses;; + /dev/pts/*) + if [ -z "$SSH_CLIENT" ]; then + pinentry-qt + else + pinentry-curses + fi + ;; + *) + pinentry-curses;; + esac + ''; +}