From 6174f3650cf42aaf008012e828d5a1f8e2ce037f Mon Sep 17 00:00:00 2001 From: Leander Scherer Date: Thu, 8 Jan 2026 02:48:11 +0100 Subject: refactor(modules): separate nixos/home-manager modules, use standard option conventions --- modules/users/git/default.nix | 81 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 modules/users/git/default.nix (limited to 'modules/users/git/default.nix') diff --git a/modules/users/git/default.nix b/modules/users/git/default.nix new file mode 100644 index 0000000..f1f555e --- /dev/null +++ b/modules/users/git/default.nix @@ -0,0 +1,81 @@ +{ + config, + lib, + ... +}: +let + cfg = config.nx.git; + inherit (lib) mkOption mkIf types; +in +{ + options.nx.git = { + enable = mkOption { + description = "Enable git"; + type = types.bool; + default = false; + }; + + userName = mkOption { + description = "Git username"; + type = types.str; + default = "Leander Scherer"; + }; + + userEmail = mkOption { + description = "Git email"; + type = types.str; + default = "leander@schererleander.de"; + }; + + signKey = mkOption { + description = "Sign key"; + type = types.nullOr types.str; + default = "A3502B180BC1D41A"; + }; + + signFlavor = mkOption { + description = "Sign key flavor"; + type = types.enum [ + "ssh" + "openpgp" + ]; + default = "openpgp"; + }; + }; + + config = mkIf cfg.enable { + programs.git = { + enable = true; + + signing = mkIf (cfg.signKey != null) { + key = cfg.signKey; + signByDefault = true; + }; + + ignores = [ + "*~" + ".DS_Store" + ".direnv" + ".envrc" + ]; + + settings = { + user.name = cfg.userName; + user.email = cfg.userEmail; + help.autocorrect = 20; + alias = { + st = "status"; + co = "checkout"; + br = "branch"; + }; + pull.rebase = true; + gpg.format = cfg.signFlavor; + url."git@github.com:".insteadOf = "https://github.com"; + }; + }; + programs.diff-highlight = { + enable = true; + enableGitIntegration = true; + }; + }; +} -- cgit v1.3.1