{pkgs, ...}: {
  home.packages = with pkgs; [
    # Dev tools
    git
    gh
    git-absorb
    delta # Diffing tool
    onefetch # neofetch for git repos

    pkgs._elements.git-delete-stale
  ];

  programs.git = {
    enable = true;

    signing = {
      signByDefault = true;
      key = "925AC7D69955293F";
    };

    settings = {
      user = {
        name = "Christopher Mühl";
        email = "toki@toph.so";
      };
      push = {
        default = "current";
        autoSetupRemote = true;
        followTags = true;
      };
      column.ui = "auto"; # Display columns in `git branch` automatically
      branch.sort = "-committerdate"; # Sort `git branch` by last commit date
      rerere.enabled = true; # Enable reuse recorded resolution, for automatic merge resolution
      alias.force-push = "push --force-with-lease"; # Safe force pushes
      fetch.writeCommitGraph = true; # Automatically write the commit graph on fetches
      init.defaultBranch = "main";
      core.pager = "delta";
      interactive.diffFilter = "delta --color-only";
      delta = {
        navigate = true;
        dark = true;
      };
      merge.conflictstyle = "zdiff3";
    };
  };
}
