{ pkgs, config, ... }:
{
  services.gpg-agent.enable = true;
  programs = {
    git = {
      enable = true;
      delta.enable = true;
      includes = [
        {
          condition = "gitdir:${config.home.homeDirectory}/GIT/Personal/";
          contents = {
            user = {
              name = "Nicolai Van der Storm";
              email = "nicolai@nvds.be";
              signingkey = "CA53B34914EFD59B";
            };
            gpg.program = "gpg2";
            commit.gpgsign = true;
          };
        }

        {
          condition = "gitdir:${config.home.homeDirectory}/.dotfiles/";
          contents = {
            user = {
              name = "Nicolai Van der Storm";
              email = "nicolai@nvds.be";
              signingkey = "CA53B34914EFD59B";
            };
            gpg.program = "gpg2";
            commit.gpgsign = true;
          };
        }
      ];

    };
    gpg = {
      enable = true;
      homedir = "${config.xdg.configHome}/gpg";
      publicKeys = [
        {source = "${config.xdg.configHome}/gpg/nicolaivds_pup.gpg";}
        {source = "${config.xdg.configHome}/gpg/nicolaivds.gpg";}
      ];
    };

    ssh = {
      enable = true;
      matchBlocks = {
        # Personal git server
        "git.nvds.be" = {
          hostname = "git.nvds.be";
          identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519_personal";
        };

        # Github
        "github.com" = {
          hostname = "github.com";
          identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519_personal";
        };

        # Gitlab
        "gitlab.com" = {
          hostname = "gitlab.com";
          identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519_personal";
        };
      };
    };
  };
}