{ config, lib, pkgs, ... }: let cfg = config.samfelag.modules.dev.git; in { options.samfelag.modules.dev.git = with lib.types; { enable = lib.mkEnableOption "git"; userName = lib.my.mkOpt str config.user.name; userEmail = lib.my.mkOpt (nullOr str) null; }; config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ git ]; hm.programs.git = { enable = true; settings = { user = { name = cfg.userName; email = cfg.userEmail; }; init.defaultBranch = "main"; }; ignores = [ ".direnv" ".project" ]; }; }; }