feat(starship): tmux & shpool indicator
This commit is contained in:
@@ -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);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user