diff options
| author | Leander Scherer <leander@schererleander.de> | 2026-01-08 02:48:11 +0100 |
|---|---|---|
| committer | Leander Scherer <leander@schererleander.de> | 2026-01-08 19:08:12 +0100 |
| commit | 6174f3650cf42aaf008012e828d5a1f8e2ce037f (patch) | |
| tree | 9bbbd99680cd5adb56596a14734d4896bc6af733 /modules/users/gpg/default.nix | |
| parent | c582c4d0675aada46fa196b7af1941ed753d055f (diff) | |
refactor(modules): separate nixos/home-manager modules, use standard option conventions
Diffstat (limited to 'modules/users/gpg/default.nix')
| -rw-r--r-- | modules/users/gpg/default.nix | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/modules/users/gpg/default.nix b/modules/users/gpg/default.nix new file mode 100644 index 0000000..d5714b0 --- /dev/null +++ b/modules/users/gpg/default.nix @@ -0,0 +1,62 @@ +{ + config, + pkgs, + lib, + ... +}: + +let + inherit (lib) + mkOption + types + mkIf + ; + cfg = config.nx.gpg; +in +{ + + options.nx.gpg = { + enable = mkOption { + description = "GNU Privacy Guard"; + type = types.bool; + default = config.nx.git.enable; + }; + + gpgKey = mkOption { + description = "default gpg key"; + type = types.nullOr types.str; + default = ""; + }; + + pinentry = mkOption { + description = "pinentry flavor"; + type = types.enum [ + "curses" + "gnome3" + "qt" + "mac" + ]; + default = if pkgs.stdenv.isDarwin then "mac" else "curses"; + }; + }; + + config = lib.mkIf cfg.enable { + programs.gpg = { + enable = true; + #settings.default-key = mkIf (cfg.gpgKey != null) cfg.gpgKey; + }; + + services.gpg-agent = { + enable = true; + pinentry.package = + if cfg.pinentry == "gnome3" then + pkgs.pinentry-gnome3 + else if cfg.pinentry == "qt" then + pkgs.pinentry-qt + else if cfg.pinentry == "mac" then + pkgs.pinentry_mac + else + pkgs.pinentry-curses; + }; + }; +} |
