From cee12adb75196823bc79f37435d89fd2f4ce8208 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Wed, 15 Jul 2026 00:12:46 +0530 Subject: feat: added git-graph for better visualization of git log graphs The git log graphs lacks customizability so we are using git-graph that has a more verbose configuration and prettier formatting for git log graphs --- modules/programs/git/default.nix | 16 ++++++++++++++++ modules/programs/lazygit/default.nix | 4 ++++ 2 files changed, 20 insertions(+) (limited to 'modules') diff --git a/modules/programs/git/default.nix b/modules/programs/git/default.nix index cb4519d..0fdc4fa 100644 --- a/modules/programs/git/default.nix +++ b/modules/programs/git/default.nix @@ -1,6 +1,7 @@ { config, lib, + pkgs, ... }: @@ -26,6 +27,10 @@ }; config = lib.mkIf config.programs.git.enable { + home.packages = with pkgs; [ + git-graph + ]; + programs.git = { settings = lib.recursiveUpdate @@ -35,6 +40,17 @@ email = config.programs.git.email; }; core.askPass = ""; + alias = { + # The exclamation mark (!) tells Git to execute this as an external shell command. + # This overrides standard git-graph behavior with your custom format string. + log-graph = '' + !f() { + fmt=$(printf '\033[1;34mCommit:\033[0m \033[33m%%h\033[0m%%n\033[1;34mParents:\033[0m \033[35m%%p\033[0m%%n\033[1;34mAuthor:\033[0m \033[32m%%an\033[0m <\033[96m%%ae\033[0m>%%n\033[1;34mDate:\033[0m \033[36m%%ad (%%ar)\033[0m%%n%%n%%B%%n\033[90m--------------------------------------------------------\033[0m') + + git-graph --color always --sparse --style round --format="$fmt" + }; f + ''; + }; } ( lib.optionalAttrs config.programs.git.useSSH { diff --git a/modules/programs/lazygit/default.nix b/modules/programs/lazygit/default.nix index b7882dc..e852f57 100644 --- a/modules/programs/lazygit/default.nix +++ b/modules/programs/lazygit/default.nix @@ -21,6 +21,10 @@ mouseEvents = true; border = "single"; }; + git = { + log.showWholeGraph = true; + branchLogCmd = "git log-graph"; + }; update.method = "never"; }; }; -- cgit v1.2.3