From a6e16830603d49ab4698b208c65701f901512ad2 Mon Sep 17 00:00:00 2001 From: Anthony Rodriguez Date: Mon, 10 Feb 2025 19:02:35 +0100 Subject: [PATCH] shell/starship: add git short status --- modules/programs/terminal/shell/starship.nix | 42 +++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/modules/programs/terminal/shell/starship.nix b/modules/programs/terminal/shell/starship.nix index cc58f2c..6201563 100644 --- a/modules/programs/terminal/shell/starship.nix +++ b/modules/programs/terminal/shell/starship.nix @@ -4,14 +4,15 @@ config, ... }: let - inherit (config.local.systemVars) username; + inherit (lib.strings) concatStrings; toTOML = (pkgs.formats.toml {}).generate; + inherit (config.local.systemVars) username; in { config = lib.mkIf config.local.profiles.desktop.enable { hjem.users.${username} = { packages = [pkgs.starship]; files = { - ".config/starship/config.toml".source = toTOML "starship config" { + ".config/starship.toml".source = toTOML "starship config" { add_newline = true; directory = { style = "bold yellow"; @@ -25,6 +26,43 @@ in { style = "yellow"; format = "[ $duration]($style)"; }; + # https://github.com/llakala/nixos/blob/6e840f11d19e59b49e7ba9573f1398830799758a/apps/core/starship/git_status.nix + git_status = { + modified = "M"; + staged = "S"; + untracked = "A"; + renamed = "R"; + deleted = "D"; + conflicted = "U"; + + ahead = "[+$count](green)"; + behind = "[-$count](red)"; + diverged = "[+$ahead_count](green),[-$behind_count](red)"; + + style = "white"; + + # referenced from https://github.com/clotodex/nix-config/blob/c878ff5d5ae674b49912387ea9253ce985cbd3cd/shell/starship.nix#L82 + format = + concatStrings + [ + "[(" + + "(\\[" + "[($conflicted)](orange)" + "[($stashed)](white)" + "[($staged)](blue)" + "[($deleted)](red)" + "[($renamed)](yellow)" + "[($modified)](yellow)" + "[($untracked)](green)" + "\\])" + + "( \\[$ahead_behind\\])" + + " )]" + "($style)" + ]; + }; }; }; };