snowflake/home/programs/terminal/starship.nix

105 lines
2.6 KiB
Nix

{
config,
lib,
...
}: {
home.sessionVariables.STARSHIP_CACHE = "${config.xdg.cacheHome}/starship";
programs.starship = {
enable = true;
enableNushellIntegration = true;
settings = {
palette = "tokyonight";
add_newline = false;
palettes.tokyonight = {
red = "#f7768e";
orange = "#ff9e64";
yellow = "#e0af68";
light-green = "#9ece6a";
green = "#73daca";
turquoise = "#89ddff";
light-cyan = "#b4f9f8";
teal = "#2ac3de";
cyan = "#7dcfff";
blue = "#7aa2f7";
magenta = "#bb9af7";
white = "#c0caf5";
light-gray = "#9aa5ce";
parameters = "#cfc9c2";
comment = "#565f89";
black = "#414868";
foreground = "#a9b1d6";
background = "#1a1b26";
};
format = lib.concatStrings [
"$character"
"$hostname"
"$directory"
"$git_branch"
"$git_status"
"$rust"
"$golang"
];
right_format = lib.concatStrings [
"$nix_shell"
];
character = {
error_symbol = "[](bold red)";
success_symbol = "[](bold teal)";
};
username = {
show_always = false;
format = "[$user]($style)";
style_user = "red";
};
hostname = {
ssh_symbol = "🌐";
format = "[on $hostname $ssh_symbol]($style)";
ssh_only = true;
disabled = false;
};
directory = {
format = "[$path ]($style)";
truncation_length = 3;
truncation_symbol = "/";
read_only = "🔒";
style = "teal";
home_symbol = "";
};
directory.substitutions = {
"Documents" = " ";
"Downloads" = " ";
"Music" = " ";
"Pictures" = " ";
};
nix_shell = {
disabled = false;
impure_msg = "[impure shell](bold red)";
pure_msg = "[pure shell](bold green)";
unknown_msg = "[unknown shell](bold yellow)";
format = "via [ $state( \($name\))](bold teal)";
};
git_branch = {
symbol = "";
format = "[$symbol $branch ]($style)";
};
git_status = {
format = "[$all_status$ahead_behind ]($style)";
};
golang = {
symbol = " ";
format = "[$symbol ($version) ]($style)";
};
rust = {
symbol = "";
format = "[$symbol ($version) ]($style)";
};
time = {
disabled = false;
time_format = "%R";
format = "[ $time ]($style)";
style = "red";
};
};
};
}