Enable gpg

- Used for commit signing
- Curses pinentry is used, as it's better with a maximized terminal and I never
  use gui git clients anymore
- We need to persist our gpg directory to keep our keys stored
diff --git a/modules/gpg.nix b/modules/gpg.nix
new file mode 100644
index 0000000..71e4915
--- /dev/null
+++ b/modules/gpg.nix
@@ -0,0 +1,22 @@
+{
+  pkgs,
+  username,
+  ...
+}: {
+  home = {
+    programs.gpg.enable = true;
+    services.gpg-agent = {
+      enable = true;
+      extraConfig = ''
+        pinentry-program ${pkgs.pinentry.curses}/bin/pinentry
+      '';
+    };
+  };
+
+  config.environment.persistence."/nix/persist".users.${username}.directories = [
+    {
+      directory = ".gnupg";
+      mode = "0700";
+    }
+  ];
+}