diff options
Diffstat (limited to 'modules/workstation/gnupg/default.nix')
-rw-r--r-- | modules/workstation/gnupg/default.nix | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/modules/workstation/gnupg/default.nix b/modules/workstation/gnupg/default.nix index 2f47ddf77b29..eda898314258 100644 --- a/modules/workstation/gnupg/default.nix +++ b/modules/workstation/gnupg/default.nix @@ -1,21 +1,26 @@ -{ pkgs, ... }: +{ config, pkgs, ... }: + +let + gnupgHome = "${config.users.users.qyliss.home}/state/gnupg"; + + pinentryProgram = + if pkgs.stdenv.isDarwin then + "/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac" + else + "${pkgs.pinentry.qt}/bin/pinentry"; + + gpg-agent-conf = pkgs.writeText "gpg-agent.conf" '' + pinentry-program ${pinentryProgram} + ''; +in { - home.qyliss.dirs."state/gnupg".activationScripts.config = - let - pinentry = if pkgs.stdenv.isDarwin then - "/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac" - else - "${pkgs.pinentry.qt}/bin/pinentry"; - - gpg-agent-conf = pkgs.writeText "gpg-agent.conf" '' - pinentry-program ${pinentry} - ''; - in '' - ln -sf ${./dirmngr.conf} dirmngr.conf - ln -sf ${./gpg.conf} gpg.conf - ln -sf ${gpg-agent-conf} gpg-agent.conf - ''; + systemd.tmpfiles.rules = [ + "d ${gnupgHome} 0700 qyliss qyliss" + "L+ ${gnupgHome}/dirmngr.conf - - - - ${./dirmngr.conf}" + "L+ ${gnupgHome}/gpg.conf - - - - ${./gpg.conf}" + "L+ ${gnupgHome}/gpg-agent.conf - - - - ${gpg-agent-conf}" + ]; environment.systemPackages = with pkgs; [ gnupg pinentry ]; |