diff --git a/modules/applications/default.nix b/modules/applications/default.nix index d2117ff..1e47b0d 100644 --- a/modules/applications/default.nix +++ b/modules/applications/default.nix @@ -11,7 +11,7 @@ ./fcitx5 ./ghostty ./git - ./gnupg.nix + ./gnupg ./grok.nix ./greetd.nix ./ly diff --git a/modules/applications/gnupg.nix b/modules/applications/gnupg.nix deleted file mode 100644 index d6cc900..0000000 --- a/modules/applications/gnupg.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, config, ... }: -let - cfg = config.my.applications.gnupg; -in -{ - options.my.applications.gnupg = { - enable = lib.mkEnableOption "GnuPG agent"; - }; - - config = lib.mkIf cfg.enable { - programs.gnupg.agent = { - enable = true; - enableSSHSupport = false; - }; - }; -} diff --git a/modules/applications/gnupg/default.nix b/modules/applications/gnupg/default.nix new file mode 100644 index 0000000..fa6a410 --- /dev/null +++ b/modules/applications/gnupg/default.nix @@ -0,0 +1,23 @@ +{ + lib, + config, + ... +}: +let + cfg = config.my.applications.gnupg; +in +{ + imports = [ + ./home.nix + ./system.nix + ]; + + options.my.applications.gnupg = { + enable = lib.mkEnableOption "GnuPG agent"; + }; + + config = lib.mkIf cfg.enable { + my.applications.gnupg.system.enable = lib.mkDefault true; + my.applications.gnupg.homeManager.enable = lib.mkDefault true; + }; +} diff --git a/modules/applications/gnupg/home.nix b/modules/applications/gnupg/home.nix new file mode 100644 index 0000000..1021f45 --- /dev/null +++ b/modules/applications/gnupg/home.nix @@ -0,0 +1,22 @@ +{ + lib, + config, + ... +}: +let + hmCfg = config.my.applications.gnupg.homeManager; +in +{ + options.my.applications.gnupg.homeManager = { + enable = lib.mkEnableOption "GnuPG home-manager configuration"; + }; + + config.home-manager.sharedModules = [ + { + config = lib.mkIf hmCfg.enable { + services.gpg-agent.enable = false; + services.gpg-agent.enableSshSupport = false; + }; + } + ]; +} diff --git a/modules/applications/gnupg/system.nix b/modules/applications/gnupg/system.nix new file mode 100644 index 0000000..930a39b --- /dev/null +++ b/modules/applications/gnupg/system.nix @@ -0,0 +1,20 @@ +{ + lib, + config, + ... +}: +let + cfg = config.my.applications.gnupg.system; +in +{ + options.my.applications.gnupg.system = { + enable = lib.mkEnableOption "GnuPG system configuration"; + }; + + config = lib.mkIf cfg.enable { + programs.gnupg.agent = { + enable = true; + enableSSHSupport = false; + }; + }; +} diff --git a/modules/applications/ssh/home.nix b/modules/applications/ssh/home.nix index 2e6fb98..da39484 100644 --- a/modules/applications/ssh/home.nix +++ b/modules/applications/ssh/home.nix @@ -20,16 +20,10 @@ in pkgs.openssh ]; - systemd.user.services.ssh-agent = { - Unit.Description = "OpenSSH authentication agent"; - Service = { - ExecStart = "${pkgs.openssh}/bin/ssh-agent -D -a %t/ssh-agent"; - }; - Install.WantedBy = [ "default.target" ]; - }; - systemd.user.sockets.gcr-ssh-agent.Install.WantedBy = lib.mkForce [ ]; + services.ssh-agent.enable = true; + home.sessionVariables = { SSH_AUTH_SOCK = "\${XDG_RUNTIME_DIR}/ssh-agent"; }; diff --git a/modules/applications/ssh/system.nix b/modules/applications/ssh/system.nix index b53e372..8a80d21 100644 --- a/modules/applications/ssh/system.nix +++ b/modules/applications/ssh/system.nix @@ -16,5 +16,8 @@ in environment.systemPackages = with pkgs; [ openssh # OpenSSH client and server ]; + + programs.ssh.startAgent = true; + services.gnome.gcr-ssh-agent.enable = false; }; }