{
  config,
  lib,
  ...
}:
with lib; let
  cfg = config.custom.programs.git;
in {
  options.custom.programs.git.enable = mkOption {default = false;};

  config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
    # https://wiki.archlinux.org/title/Git
    # https://git-scm.com
    programs.git = {
      enable = true;
      userName = "Myned";
      userEmail = "dev@bjork.tech";

      # BUG: GitHub Desktop tries to enable if this is not in gitconfig
      lfs.enable = true; # Enable Large File Storage

      signing = {
        signByDefault = true;
        key = "C7224454F7881A34";
      };

      extraConfig = {
        fetch.prune = true;
        init.defaultBranch = "master";
        push.autoSetupRemote = true;
        pull.ff = "only";
        url."git@github.com:".insteadOf = [
          "gh:"
          "github:"
        ];
      };
    };
  };
}