diff --git a/options/custom/programs/git.nix b/options/custom/programs/git.nix
index 0c119c3..1a90ed7 100644
--- a/options/custom/programs/git.nix
+++ b/options/custom/programs/git.nix
@@ -6,34 +6,89 @@
 with lib; let
   cfg = config.custom.programs.git;
 in {
-  options.custom.programs.git.enable = mkOption {default = false;};
+  options.custom.programs.git = {
+    enable = mkOption {default = false;};
+  };
 
-  config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
-    # https://wiki.archlinux.org/title/Git
-    # https://git-scm.com
-    programs.git = {
-      enable = true;
-      userName = "Myned";
-      userEmail = "dev@${config.custom.domain}";
+  config = mkIf cfg.enable {
+    home-manager.sharedModules = [
+      {
+        # https://git-scm.com
+        # https://wiki.nixos.org/wiki/Git
+        # https://wiki.archlinux.org/title/Git
+        programs.git = {
+          enable = true;
+          userName = "Myned";
+          userEmail = "dev@${config.custom.domain}";
 
-      # BUG: GitHub Desktop tries to enable if this is not in gitconfig
-      lfs.enable = true; # Enable Large File Storage
+          # BUG: GitHub Desktop tries to enable if this is not in gitconfig
+          lfs.enable = true; # Large File Storage
 
-      signing = {
-        signByDefault = true;
-        key = "C7224454F7881A34";
-      };
+          signing = {
+            # TODO: Use ssh signing
+            format = "openpgp";
+            signByDefault = true;
+            key = "C7224454F7881A34";
+          };
 
-      extraConfig = {
-        fetch.prune = true;
-        init.defaultBranch = "master";
-        push.autoSetupRemote = true;
-        pull.ff = "only";
-        url."git@github.com:".insteadOf = [
-          "gh:"
-          "github:"
-        ];
-      };
-    };
+          # https://git-scm.com/docs/git-config
+          # https://git-scm.com/book/en/v2/
+          # https://jvns.ca/blog/2024/02/16/popular-git-config-options/
+          extraConfig = {
+            # https://git-scm.com/docs/git-config#Documentation/git-config.txt-alias
+            #?? git ALIAS
+            alias = {
+              # https://wiki.archlinux.org/title/Git#Visual_representation
+              graph = "log --graph --oneline --decorate";
+            };
+
+            diff = {
+              # https://git-scm.com/docs/git-config#Documentation/git-config.txt-codediffalgorithmcode
+              algorithm = "histogram";
+
+              # https://git-scm.com/docs/git-config#Documentation/git-config.txt-codediffcolorMovedcode
+              colorMoved = true;
+            };
+
+            # https://git-scm.com/docs/git-config#Documentation/git-config.txt-fetchprune
+            fetch.prune = true;
+
+            # https://git-scm.com/docs/git-config#Documentation/git-config.txt-formatsignOff
+            #?? Signed-off-by: USERNAME <EMAIL>
+            format.signOff = true;
+
+            # https://git-scm.com/docs/git-config#Documentation/git-config.txt-helpautoCorrect
+            help.autoCorrect = "prompt";
+
+            # https://git-scm.com/docs/git-config#Documentation/git-config.txt-codeinitdefaultBranchcode
+            init.defaultBranch = "master"; # owo
+
+            # https://git-scm.com/docs/git-config#Documentation/git-config.txt-mergeconflictStyle
+            merge.conflictStyle = "zdiff3";
+
+            # https://git-scm.com/docs/git-config#Documentation/git-config.txt-pushautoSetupRemote
+            push.autoSetupRemote = true;
+
+            # https://git-scm.com/docs/git-rebase
+            rebase = {
+              # https://git-scm.com/docs/git-config#Documentation/git-config.txt-rebaseautoSquash
+              autoSquash = true;
+
+              # https://git-scm.com/docs/git-config#Documentation/git-config.txt-rebaseautoStash
+              autoStash = true;
+            };
+
+            # https://git-scm.com/docs/git-config#Documentation/git-config.txt-rerereenabled
+            rerere.enabled = true; # reuse recovered resolution
+
+            # https://git-scm.com/docs/git-config#Documentation/git-config.txt-submodulerecurse
+            submodule.recurse = true;
+
+            # https://git-scm.com/docs/git-config#Documentation/git-config.txt-transferfsckObjects
+            transfer.fsckObjects = true;
+          };
+        };
+      }
+    ];
   };
 }