{ config, lib, pkgs, ... }: with lib; let cfg = config.modules.gpg; in { config = mkIf cfg.enable { services = { gpg-agent = { enable = true; enableSshSupport = true; enableBashIntegration = true; enableZshIntegration = true; pinentry.package = pkgs.pinentry-qt; }; }; home.packages = [ pkgs.gnupg ]; programs = { gpg = { enable = true; settings = { default-key = mkIf (cfg.signingKey != null) cfg.signingKey; trusted-key = mkIf (cfg.signingKey != null) cfg.signingKey; }; }; }; }; }