diff --git a/home-manager/common/programs/core.nix b/home-manager/common/programs/core.nix index b89b20b..c457d23 100644 --- a/home-manager/common/programs/core.nix +++ b/home-manager/common/programs/core.nix @@ -67,106 +67,6 @@ with lib; { tmate ]; }) - (mkIf (config.nathan.programs.util.git.enable - && config.nathan.programs.util.git.gpgSign) { - programs.git.signing = { - key = lib.mkDefault "B7A40A5D78C08885"; - signByDefault = lib.mkDefault config.nathan.programs.util.git.gpgSign; - }; - }) - (mkIf (config.nathan.programs.util.git.enable - && config.nathan.programs.util.git.sshSign) { - home.file.allowedSigners = { - target = ".ssh/allowed_signers"; - text = (import ../../../info/ssh-keys.nix).allowedSigners; - }; - programs.git = { - extraConfig = { - commit.gpgsign = true; - gpg.format = "ssh"; - user.signingkey = "~/.ssh/id_ed25519.pub"; - gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers"; - }; - }; - }) - (mkIf config.nathan.programs.util.git.enable { - # Git adjacent packages - home.packages = [ - inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".git-branchless - ]; - ######################### - ## Git configuration - ######################### - programs.git = { - enable = true; - package = pkgs.gitAndTools.gitFull; - userName = "Nathan McCarty"; - userEmail = "nathan@mccarty.io"; - ignores = [ - "**/*~" - "*~" - "*_archive" - "/auto/" - "auto-save-list" - ".cask/" - ".dir-locals.el" - "dist/" - "**/.DS_Store" - "*.elc" - "/elpa/" - "/.emacs.desktop" - "/.emacs.desktop.lock" - "/eshell/history" - "/eshell/lastdir" - "flycheck_*.el" - "*_flymake.*" - "/network-security.data" - ".org-id-locations" - ".persp" - ".projectile" - "*.rel" - "/server/" - "tramp" - "\\#*\\#" - ]; - delta.enable = true; - lfs.enable = true; - extraConfig = { - init = { defaultBranch = "trunk"; }; - log = { - showSignature = true; - abbrevCommit = true; - follow = true; - decorate = false; - }; - rerere = { - enable = true; - autoupdate = true; - }; - merge = { - ff = "only"; - conflictstyle = "diff3"; - }; - push = { - default = "simple"; - followTags = true; - }; - pull = { rebase = true; }; - status = { showUntrackedFiles = "all"; }; - transfer = { fsckobjects = true; }; - color = { ui = "auto"; }; - diff = { - mnemonicPrefix = true; - renames = true; - wordRegex = "."; - submodule = "log"; - }; - # credential = { helper = "cache"; }; - # Disable annoying safe directory nonsense - safe = { directory = "*"; }; - }; - }; - }) (mkIf config.nathan.programs.util.ssh { ######################### ## SSH Configuration diff --git a/home-manager/common/programs/git.nix b/home-manager/common/programs/git.nix new file mode 100644 index 0000000..730cf97 --- /dev/null +++ b/home-manager/common/programs/git.nix @@ -0,0 +1,105 @@ +{ config, lib, pkgs, inputs, ... }: +with lib; { + config = mkMerge [ + (mkIf (config.nathan.programs.util.git.enable + && config.nathan.programs.util.git.gpgSign) { + programs.git.signing = { + key = lib.mkDefault "B7A40A5D78C08885"; + signByDefault = lib.mkDefault config.nathan.programs.util.git.gpgSign; + }; + }) + (mkIf (config.nathan.programs.util.git.enable + && config.nathan.programs.util.git.sshSign) { + home.file.allowedSigners = { + target = ".ssh/allowed_signers"; + text = (import ../../../info/ssh-keys.nix).allowedSigners; + }; + programs.git = { + extraConfig = { + commit.gpgsign = true; + gpg.format = "ssh"; + user.signingkey = "~/.ssh/id_ed25519.pub"; + gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers"; + }; + }; + }) + (mkIf config.nathan.programs.util.git.enable { + # Git adjacent packages + home.packages = [ + inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".git-branchless + ]; + ######################### + ## Git configuration + ######################### + programs.git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userName = "Nathan McCarty"; + userEmail = "nathan@mccarty.io"; + ignores = [ + "**/*~" + "*~" + "*_archive" + "/auto/" + "auto-save-list" + ".cask/" + ".dir-locals.el" + "dist/" + "**/.DS_Store" + "*.elc" + "/elpa/" + "/.emacs.desktop" + "/.emacs.desktop.lock" + "/eshell/history" + "/eshell/lastdir" + "flycheck_*.el" + "*_flymake.*" + "/network-security.data" + ".org-id-locations" + ".persp" + ".projectile" + "*.rel" + "/server/" + "tramp" + "\\#*\\#" + ]; + delta.enable = true; + lfs.enable = true; + extraConfig = { + init = { defaultBranch = "trunk"; }; + log = { + showSignature = true; + abbrevCommit = true; + follow = true; + decorate = false; + }; + rerere = { + enable = true; + autoupdate = true; + }; + merge = { + ff = "only"; + conflictstyle = "diff3"; + }; + push = { + default = "simple"; + followTags = true; + }; + pull = { rebase = true; }; + status = { showUntrackedFiles = "all"; }; + transfer = { fsckobjects = true; }; + color = { ui = "auto"; }; + diff = { + mnemonicPrefix = true; + renames = true; + wordRegex = "."; + submodule = "log"; + }; + # credential = { helper = "cache"; }; + # Disable annoying safe directory nonsense + safe = { directory = "*"; }; + }; + }; + }) + ]; +} diff --git a/home-manager/darwin/default.nix b/home-manager/darwin/default.nix index 2c581e1..21910b2 100644 --- a/home-manager/darwin/default.nix +++ b/home-manager/darwin/default.nix @@ -12,6 +12,7 @@ with nLib; { ../common/programs/core.nix ../common/programs/devel.nix ../common/programs/terminal.nix + ../common/programs/git.nix ./programs/core.nix ./programs/emacs.nix ./programs/devel.nix diff --git a/home-manager/linux/default.nix b/home-manager/linux/default.nix index e1f0f5c..b1414df 100644 --- a/home-manager/linux/default.nix +++ b/home-manager/linux/default.nix @@ -12,6 +12,7 @@ with nLib; { ../common/programs/core.nix ../common/programs/devel.nix ../common/programs/terminal.nix + ../common/programs/git.nix ./programs/sway.nix ./programs/communications.nix ./programs/devel.nix