nixos-config/modules/home/starship/default.nix

161 lines
4.5 KiB
Nix
Raw Normal View History

2023-11-06 21:54:14 +01:00
{lib, ...}:
2023-11-05 17:56:55 +01:00
{
2023-11-05 11:40:44 +01:00
programs.starship = {
enable = true;
2023-11-06 21:54:14 +01:00
enableFishIntegration = true;
settings = {
format = lib.concatStrings [
#"[ ](fg:#1e1e2e bg:#ff00aa)"
#"$username"
#"[](fg:#ff00aa)"
"$directory"
"[](fg:#1e1e2e bg:#cba6f7)"
"$git_branch"
"$git_status"
"[](fg:#cba6f7 bg:#89b4fa)"
"$c"
"$elixir"
"$elm"
"$golang"
"$haskell"
"$java"
"$julia"
"$nodejs"
"$nim"
"$rust"
"[](fg:#89b4fa bg:#94e2d5)"
"$nix_shell"
"$docker_context"
"[ ](fg:#94e2d5)"
];
add_newline = false; # Disable the blank line at the start of the prompt
# You can also replace your username with a neat symbol like  to save some space
username = {
show_always = true;
#style_user = "fg:#11111b bg:#89B4FA";
#style_root = "fg:#11111b bg:#cba6f7";
#format = "[$user ]($style)";
format = "[󱄅 ](fg:#11111b bg:#ff00aa)";
};
directory = {
style = "fg:#cdd6f4";
format = "[ $path ]($style)";
truncation_length = 3;
truncation_symbol = "../";
};
# Here is how you can shorten some long paths by text replacement
# similar to mapped_locations in Oh My Posh:
#[directory.substitutions]
#"Documents" = " "
#"Downloads" = " "
#"Music" = " "
#"Pictures" = " "
#"~" = "󰋞 "
# Keep in mind that the order matters. For example:
# "Important Documents" = "  "
# will not be replaced, because "Documents" was already substituted before.
# So either put "Important Documents" before "Documents" or use the substituted version:
# "Important  " = "  "
c = {
symbol = " ";
style = "fg:#11111b bg:#89b4fa";
format = "[[ $symbol ($version) ](fg:#11111b bg:#89b4fa)]($style)";
};
docker_context = {
symbol = " ";
style = "fg:#11111b bg:#94e2d5";
format = "[[ $symbol $context ](fg:#11111b bg:#94e2d5)]($style) $path";
};
elixir = {
symbol = " ";
style = "fg:#11111b bg:#89b4fa";
format = "[[ $symbol ($version) ](fg:#11111b bg:#89b4fa)]($style)";
};
elm = {
symbol = " ";
style = "fg:#11111b bg:#89b4fa";
format = "[[ $symbol ($version) ](fg:#11111b bg:#89b4fa)]($style)";
};
git_branch = {
symbol = "󰘬";
style = "fg:#11111b bg:#cba6f7";
format = "[[ $symbol $branch ](fg:#11111b bg:#cba6f7)]($style)";
};
git_status = {
style = "fg:#11111b bg:#cba6f7";
format = "[[($all_status$ahead_behind )](fg:#11111b bg:#cba6f7)]($style)";
};
golang = {
symbol = " ";
style = "fg:#11111b bg:##89b4fa";
#format = "[[ $symbol ($version) ](fg:#11111b bg:#89b4fa)]($style)";
format = "[[ $symbol](fg:#11111b bg:#89b4fa)]($style)";
};
haskell = {
symbol = " ";
style = "fg:#11111b bg:#89b4fa";
format = "[[ $symbol ($version) ](fg:#11111b bg:#89b4fa)]($style)";
};
java = {
symbol = " ";
style = "fg:#11111b bg:#89b4fa";
format = "[[ $symbol ($version) ](fg:#11111b bg:#89b4fa)]($style)";
};
julia = {
symbol = " ";
style = "fg:#11111b bg:#89b4fa";
format = "[[ $symbol ($version) ](fg:#11111b bg:#89b4fa)]($style)";
};
nodejs = {
symbol = "";
style = "fg:#11111b bg:#89b4fa";
format = "[[ $symbol ($version) ](fg:#11111b bg:#89b4fa)]($style)";
};
nim = {
symbol = " ";
style = "fg:#11111b bg:#89b4fa";
format = "[[ $symbol ($version) ](fg:#11111b bg:#89b4fa)]($style)";
};
nix_shell = {
symbol = "󱄅 ";
impure_msg = "i";
pure_msg = "p";
unknown_msg = "u";
style = "fg:#11111b bg:#94e2d5";
format = "[[ $symbol$state:$name ](fg:#11111b bg:#94e2d5)]($style)";
};
rust = {
symbol = "";
style = "fg:#11111b bg:#89b4fa";
format = "[[ $symbol ($version) ](fg:#11111b bg:#89b4fa)]($style)";
};
time = {
disabled = false;
time_format = "%R"; # Hour:Minute Format
style = "fg:#11111b bg:#89b4fa";
format = "[[ $time ](fg:#11111b bg:#89b4fa)]($style)";
};
};
2023-11-05 11:40:44 +01:00
};
}