nix-config/modules/HOME-MANAGER/COMMON/shell/starship.nix
2024-12-26 16:51:37 +01:00

159 lines
4.6 KiB
Nix

{ lib, config, ... }:
{
programs.starship = {
enable = true;
settings = {
format = lib.concatStrings [
"[ ](fg:twelve bg:trans_blue)"
"[ ](bg:trans_blue)[ ](fg:trans_blue bg:trans_pink)"
"$hostname"
"[ ](bg:trans_pink)[ ](fg:trans_pink bg:trans_white)"
"$directory"
"[ ](bg:trans_white)[ ](fg:trans_white bg:trans_pink)"
"("
"$git_branch"
"$git_status"
")"
"[ ](bg:trans_pink)[ ](fg:trans_pink bg:trans_blue)"
"$character"
];
right_format = lib.concatStrings [
"$cmd_duration"
"("
"$python"
"$conda"
"$c"
"$cmake"
"$golang"
"$haskell"
"$rust"
")"
];
palette = "stylix";
# Disables the blank line at the start of the prompt
add_newline = true;
palettes.stylix = {
first = config.lib.stylix.colors.withHashtag.base00;
second = config.lib.stylix.colors.withHashtag.base01;
third = config.lib.stylix.colors.withHashtag.base02;
fourth = config.lib.stylix.colors.withHashtag.base03;
fifth = config.lib.stylix.colors.withHashtag.base04;
sixth = config.lib.stylix.colors.withHashtag.base05;
seventh = config.lib.stylix.colors.withHashtag.base06;
eighth = config.lib.stylix.colors.withHashtag.base07;
baseeight = config.lib.stylix.colors.withHashtag.base08;
basenine = config.lib.stylix.colors.withHashtag.base09;
ten = config.lib.stylix.colors.withHashtag.base0A;
eleven = config.lib.stylix.colors.withHashtag.base0B;
twelve = config.lib.stylix.colors.withHashtag.base0C;
thirteen = config.lib.stylix.colors.withHashtag.base0D;
fourteen = config.lib.stylix.colors.withHashtag.base0E;
fifteen = config.lib.stylix.colors.withHashtag.base0F;
trans_blue = "#55CDFD";
trans_pink = "#F6AAB7";
trans_white = "#FFFFFF";
pride_red = "#FF1E26";
pride_orange = "#FE941E";
pride_yellow = "#FFFF00";
pride_green = "#06BD00";
pride_blue = "#001A98";
pride_violet = "#760088";
# Text color:
black = "#272D37";
white = "#CBF4F8";
github = "#B02B10";
};
hostname = {
ssh_only = false;
style = "bg:trans_pink fg:twelve";
format = "[$hostname](bold $style)";
};
directory = {
style = "bg:trans_white fg:twelve";
format = "[ $path](bold $style)($style)[$read_only](bold $style)";
truncation_symbol = "/";
truncate_to_repo = true;
read_only =" ";
};
c = {
symbol = " ";
version_format = "\${raw}";
style = "bg:fourth fg:white";
format = "[$symbol($version) ]($style)";
};
cmake = {
symbol = " ";
version_format = "\${raw}";
style = "bg:fourth fg:white";
format = "[$symbol($version) ]($style)";
};
golang = {
symbol = " ";
version_format = "\${raw}";
style = "bg:fourth fg:white";
format = "[$symbol($version) ]($style)";
};
python = {
symbol = " ";
version_format = "\${raw}";
style = "bg:fourth fg:white";
python_binary = ["./venv/bin/python" "./env/Scripts/python" "python" "python3" "python2"];
format = "[$symbol($version)]($style)[ (\($virtualenv\)) ](bg:fourth fg:white)";
};
conda = {
symbol = " ";
style = "bg:fourth fg:white";
ignore_base = false;
format = "[$symbol ($environment) ]($style)";
};
haskell = {
symbol = " ";
version_format = "\${raw}";
style = "bg:fourth fg:white";
format = "[$symbol($version) ]($style)";
};
rust = {
symbol = " ";
version_format = "\${raw}";
style = "bg:fourth fg:white";
format = "[$symbol($version) ]($style)";
};
git_branch = {
symbol = " ";
style = "bg:trans_pink fg:twelve";
format = "[$symbol $branch ](bold $style)";
};
git_status = {
style = "bold bg:trans_pink fg:twelve";
format = "([\($all_status$ahead_behind\)](bold $style))";
};
cmd_duration = {
style = "bg:eighth fg:twelve";
format = "[ $duration ](bold $style)";
};
character = {
success_symbol = "[:3 ](bold fg:twelve bg:trans_blue)[](fg:trans_blue)";
error_symbol = "[:o ](bold fg:twelve bg:trans_blue)[](fg:trans_blue)";
};
};
};
}