{ config, lib, pkgs, ... }: { home-manager = { sharedModules = [{ programs.git = { enable = true; lfs.enable = true; signing = { signByDefault = true; key = null; }; extraConfig.credential.helper = "store"; hooks = let commit-msg-hook = pkgs.writeShellScriptBin "git-commit-msg" '' git interpret-trailers --if-exists doNothing --trailer \ "Signed-off-by: $(git config user.name) <$(git config user.email)>" \ --in-place "$1" ''; in { commit-msg = "${commit-msg-hook}/bin/git-commit-msg"; }; }; }]; users = lib.attrsets.mapAttrs (user: config: ({ programs.git = { userName = config.fullName; userEmail = config.email; }; })) (lib.attrsets.filterAttrs (name: config: config.isNormalUser) config.users.users); }; }