{ 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)"; }; }; }; }