diff --git a/home/david/configurations/Tytonidae/default.nix b/home/david/configurations/Tytonidae/default.nix index 3c3d736..3b3c345 100644 --- a/home/david/configurations/Tytonidae/default.nix +++ b/home/david/configurations/Tytonidae/default.nix @@ -20,6 +20,11 @@ youthlic.programs = { helix.enable = true; gpg.enable = true; + git = { + email = "uilc.youthilc@gmail.com"; + name = "ulic-youthlic"; + signKey = "C6FCBD7F49E1CBBABD6661F7FC02063F04331A95"; + }; }; xdg.userDirs = { @@ -38,11 +43,6 @@ home.homeDirectory = "/home/${unixName}"; home.stateVersion = "24.11"; programs.home-manager.enable = true; - programs.git = { - enable = true; - userName = "Ulic-youthlic"; - userEmail = "ulic.youthlic@gmail.com"; - }; programs.obs-studio = { enable = true; plugins = with pkgs.obs-studio-plugins; [ diff --git a/home/modules/default.nix b/home/modules/default.nix index 8db7e5a..6969b1e 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -8,6 +8,7 @@ ./nix.nix ./helix ./gpg + ./git.nix ]; options = { diff --git a/home/modules/git.nix b/home/modules/git.nix new file mode 100644 index 0000000..00b0c7b --- /dev/null +++ b/home/modules/git.nix @@ -0,0 +1,54 @@ +{ config, lib, ... }: +{ + options = { + youthlic.programs.git = { + email = lib.mkOption { + type = lib.types.str; + description = '' + git email + ''; + }; + name = lib.mkOption { + type = lib.types.str; + example = ''youthlic''; + description = '' + git name + ''; + }; + signKey = lib.mkOption { + type = lib.types.addCheck (lib.types.nullOr lib.types.str) ( + x: (x == null || config.youthlic.programs.gpg.enable) + ); + default = null; + description = '' + key fingerprint for sign commit + ''; + }; + }; + }; + config = + let + cfg = config.youthlic.programs.git; + in + { + programs.lazygit = { + enable = true; + }; + programs.git = lib.mkMerge [ + { + enable = true; + userEmail = cfg.email; + userName = cfg.name; + delta = { + enable = true; + }; + } + (lib.mkIf (cfg.signKey != null) { + signing = { + signByDefault = true; + key = cfg.signKey; + }; + }) + ]; + }; +}