{ config , lib , pkgs , ... }: { imports = [ ./yazi.nix ]; programs.nix-index-database.comma.enable = true; programs.ripgrep.package = pkgs.ripgrep.override { withPCRE2 = true; }; home.packages = with pkgs; [ walk nuspell git-extras # delete-merged-branches and friends git-worktree-switcher mergiraf gitui gitstatus hut # sourcehut tools ] ++ (with pkgs.hunspellDicts; [ en-gb-large de-de ]); home.shellAliases = { wprop = "xprop | egrep '^WM_(CLASS|NAME|WINDOW_ROLE|TYPE)'"; }; programs.git = { difftastic = { enable = true; }; extraConfig = { "merge.mergiraf" = { name = "mergiraf"; driver = "${pkgs.mergiraf}/bin/mergiraf merge --git %O %A %B -s %S -x %X -y %Y -p %P -l %L"; }; }; }; programs.gh = { enable = true; settings = { git_protocol = "ssh"; aliases = { fork = "repo fork --remote --remote-name alanpearce --default-branch-only"; }; }; }; programs.jujutsu = { enable = true; settings = { user = { name = config.programs.git.userName; email = config.programs.git.userEmail; }; ui = { "diff.tool" = [ "${pkgs.difftastic}/bin/difft" "--color=always" "$left" "$right" ]; }; }; }; xdg.configFile."git/attributes" = { source = (pkgs.runCommandLocal "mergiraf-gitattributes" { } '' ${pkgs.mergiraf}/bin/mergiraf languages --gitattributes >> $out ''); }; }