{ config, pkgs, lib, ... }: {
  config = {
    services.gpg-agent = {
      enable = true;
      defaultCacheTtl = 604800;
      maxCacheTtl = 604800;
      pinentryFlavor = "gtk2";
      extraConfig = ''
        allow-preset-passphrase
      '';
    };
    systemd.user.services = {
      gpg_unlock = {
        Unit = {
          Description = "Unlock gpg keyring";
          PartOf = [ "graphical-session.target" ];
          After = [ "graphical-session.target" ];
        };
        Service = { ExecStart = "${pkgs._gpg-unlock}/bin/_gpg-unlock"; };
      };
    };
    systemd.user.timers = {
      gpg_unlock = {
        Unit = {
          Description = "Unlock gpg keyring";
          PartOf = [ "graphical-session.target" ];
          After = [ "graphical-session.target" ];
        };
        Timer = {
          OnBootSec = "0";
          OnUnitActiveSec = "300";
          Unit = "gpg_unlock.service";
        };
        Install = { WantedBy = [ "sway-session.target" ]; };
      };
    };

  };
}
