{ user, home }: { config, lib, pkgs, ... }: let userConfig = config.users.users.${user}; in { home-manager.users.${user} = { programs.git = { enable = true; lfs.enable = true; userName = userConfig.fullName; userEmail = userConfig.email; signing = { signByDefault = true; key = null; }; extraConfig = { credential.helper = "store"; push.autoSetupRemote = true; core.fsmonitor = true; feature.manyFiles = true; fetch.writeCommitGraph = true; http.cookiefile = "${home}/.config/git/cookies"; advice.detachedHead = false; }; hooks = { commit-msg = lib.meta.getExe ( pkgs.writeShellApplication { name = "git-commit-msg-hook"; runtimeInputs = with pkgs; [ git ]; text = builtins.readFile ./commit-msg.sh; } ); }; }; }; }