diff --git a/modules/shell/gnupg.nix b/modules/shell/gnupg.nix index 162f0617..43083d55 100644 --- a/modules/shell/gnupg.nix +++ b/modules/shell/gnupg.nix @@ -1,13 +1,32 @@ { config, lib, pkgs, ... }: { - environment.systemPackages = with pkgs; [ - gnupg - pinentry - ]; + environment = { + extraInit = '' + export GNUPGHOME="$XDG_CONFIG_HOME/gnupg" + if [ ! -d "$GNUPGHOME" ]; then + mkdir -p "$GNUPGHOME" -m 700 + fi + ''; + + systemPackages = with pkgs; [ + gnupg + pinentry + ]; + }; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; + + systemd.user.services.gpg-agent.serviceConfig.ExecStart = [ + "" '' + ${pkgs.gnupg}/bin/gpg-agent \ + --supervised \ + --allow-emacs-pinentry \ + --default-cache-ttl 1200 \ + --pinentry-program ${pkgs.pinentry}/bin/pinentry-gtk-2 + '' + ]; }