summaryrefslogtreecommitdiff
path: root/programs/gpg/default.nix
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-06-17 21:57:53 -0400
committerFreya Murphy <freya@freyacat.org>2025-06-17 21:57:53 -0400
commite0f2eb724245e02cb247b644f0947261d8665318 (patch)
tree13f929df40059d37165cbe46be95a6404a1bbecb /programs/gpg/default.nix
parentrefactor styles to new color scheme basis (diff)
downloaddotfiles-nix-e0f2eb724245e02cb247b644f0947261d8665318.tar.gz
dotfiles-nix-e0f2eb724245e02cb247b644f0947261d8665318.tar.bz2
dotfiles-nix-e0f2eb724245e02cb247b644f0947261d8665318.zip
remove nix dir and move out all sub modules
Diffstat (limited to 'programs/gpg/default.nix')
-rw-r--r--programs/gpg/default.nix36
1 files changed, 36 insertions, 0 deletions
diff --git a/programs/gpg/default.nix b/programs/gpg/default.nix
new file mode 100644
index 0000000..e45617d
--- /dev/null
+++ b/programs/gpg/default.nix
@@ -0,0 +1,36 @@
+{ config, lib, pkgs, ... }:
+
+let
+
+ keysDir = ../../files/keys;
+ keys = lib.attrsets.mapAttrsToList (name: type: "${keysDir}/${name}") (builtins.readDir keysDir);
+ gpgKeys = builtins.filter (path: lib.strings.hasSuffix "asc" path) keys;
+
+in
+{
+ home-manager.users.${config.user} = {
+
+ # install keys into gpg keyring
+ programs.gpg = {
+ enable = true;
+ publicKeys = map (path: { source = path; trust = 5; }) gpgKeys;
+ };
+
+ # global gpg agent
+ services.gpg-agent = {
+ enable = true;
+ enableExtraSocket = true;
+ enableSshSupport = true;
+ pinentry.package = pkgs.pinentry-curses;
+ };
+
+ };
+
+ # yubikey support
+ services = {
+ pcscd.enable = true;
+ udev.packages = with pkgs; [
+ yubikey-personalization
+ ];
+ };
+}