{
  lib,
  config,
  ...
}: let
  cfg = config.marleyos.programs.gpg;
in {
  options.marleyos.programs.gpg.enable = lib.mkEnableOption "gpg";

  config = lib.mkIf cfg.enable {
    programs.gpg = {
      enable = true;
    };

    services.gpg-agent = rec {
      enable = true;

      # Don't ask for the password very often.
      defaultCacheTtl = 60480000;
      maxCacheTtl = defaultCacheTtl;
    };
  };
}