aboutsummaryrefslogtreecommitdiff
path: root/modules/home/tools/gpg
diff options
context:
space:
mode:
Diffstat (limited to 'modules/home/tools/gpg')
-rw-r--r--modules/home/tools/gpg/default.nix32
1 files changed, 32 insertions, 0 deletions
diff --git a/modules/home/tools/gpg/default.nix b/modules/home/tools/gpg/default.nix
new file mode 100644
index 0000000..297d9d0
--- /dev/null
+++ b/modules/home/tools/gpg/default.nix
@@ -0,0 +1,32 @@
+{ options, config, lib, pkgs, namespace, ... }:
+
+with lib; with lib.${namespace}; let
+ cfg = config.${namespace}.tools.gpg;
+ impermanence = config.${namespace}.impermanence;
+in {
+ options.${namespace}.tools.gpg = with types; {
+ enable = mkEnableOption "gpg";
+ };
+
+ config = mkIf cfg.enable {
+ home.persistence.${impermanence.secure.location} = {
+ directories = [
+ ".gnupg"
+ ];
+ };
+
+ programs.gpg.enable = true;
+
+ services.gpg-agent = {
+ enable = true;
+ enableSshSupport = true;
+ pinentryPackage = (pkgs.writeShellScriptBin "pinentry-wrapper" ''
+ if [[ -v DISPLAY ]]; then
+ exec ${pkgs.pinentry-gnome3}/bin/pinentry-gnome3 "$@"
+ fi
+
+ exec ${pkgs.pinentry-gnome3}/bin/pinentry-tty "$@"
+ '');
+ };
+ };
+}