feat(starship): tmux & shpool indicator

This commit is contained in:
2026-02-07 12:09:57 +08:00
parent 42fbf5cee6
commit 2d324de58a
3 changed files with 39 additions and 32 deletions

View File

@@ -11,17 +11,26 @@ in
}; };
config = lib.mkMerge [ config = lib.mkMerge [
{
my.cli.shell.starship.format = lib.mkOrder 0 [ "$all" ];
}
(lib.mkIf cfg.enable { (lib.mkIf cfg.enable {
my.hm = { my.hm = {
programs.starship = { programs.starship = {
enable = true; enable = true;
settings = lib.recursiveUpdate (with builtins; fromTOML (readFile ./starship-preset.toml)) { settings = lib.recursiveUpdate (with builtins; fromTOML (readFile ./starship-preset.toml)) {
add_newline = false; add_newline = false;
command_timeout = 2000;
nix_shell.disabled = true; nix_shell.disabled = true;
format = lib.concatStringsSep "" cfg.format; format = let
dedupDollar = list: let
result = builtins.foldl' (acc: elem:
if lib.hasPrefix "$" elem then
if builtins.elem elem acc.seen
then acc
else acc // { result = acc.result ++ [elem]; seen = acc.seen ++ [elem]; }
else
acc // { result = acc.result ++ [elem]; }
) { result = []; seen = []; } (lib.reverseList list);
in lib.reverseList result.result;
in "$all" + lib.concatStrings (dedupDollar cfg.format);
}; };
}; };
}; };

View File

@@ -22,20 +22,19 @@ in
forward_env = [ "PATH" ]; forward_env = [ "PATH" ];
}; };
}; };
# https://github.com/starship/starship/discussions/7260 programs.starship = {
# programs.starship = { settings = {
# settings = { custom.shpool = {
# custom.shpool = { description = "Display current shpool session name";
# description = "Display current shpool session name"; when = ''test -n "$SHPOOL_SESSION_NAME"'';
# when = ''test -n "$SHPOOL_SESSION_NAME"''; command = "echo $SHPOOL_SESSION_NAME";
# command = "echo $SHPOOL_SESSION_NAME"; symbol = " ";
# symbol = " "; style = "fg:#dea584";
# style = "fg:#dea584"; format = "[$symbol \\[$output\\] ]($style)";
# format = "[$symbol $output]($style)"; };
# }; };
# }; };
# };
}; };
# my.cli.shell.starship.format = [ "$starship$character" ]; my.cli.shell.starship.format = [ "\${custom.shpool}" "$character" ];
}; };
} }

View File

@@ -34,20 +34,19 @@ in
}) })
]; ];
}; };
# https://github.com/starship/starship/discussions/7260 programs.starship = {
# programs.starship = { settings = {
# settings = { custom.tmux = {
# custom.tmux = { description = "Display current tmux session name";
# description = "Display current tmux session name"; when = ''test -n "$TMUX"'';
# when = ''test -n "$TMUX"''; command = "tmux display-message -p '#S'";
# command = "tmux display-message -p '#S'"; symbol = " ";
# symbol = " "; style = "bold green";
# style = "bold green"; format = "[$symbol \\[$output\\] ]($style)";
# format = "[$symbol $output]($style)"; };
# }; };
# }; };
# };
}; };
# my.cli.shell.starship.format = [ "$tmux$character" ]; my.cli.shell.starship.format = [ "\${custom.tmux}" "$character" ];
}; };
} }