{ config, pkgs, ... }: { programs.starship = { enable = true; # Configuration written to ~/.config/starship.toml settings = { add_newline = true; format = "[](#f50505)$os$username[](bg:#E40046 fg:#f50505)$directory[](fg:#E40046 bg:#5018dd)$git_branch$git_status[](fg:#5018dd bg:#86BBD8)$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala[](fg:#86BBD8 bg:#06969A)$docker_context[](fg:#06969A bg:#5018dd)$time[ ](fg:#5018dd)"; # Disable the blank line at the start of the prompt # You can also replace your username with a neat symbol like  or disable this # and use the os module below username = { show_always = true; style_user = "bg:#f50505"; style_root = "bg:#f50505"; format = "[$user ]($style)"; disabled = false; }; #An alternative to the username module which displays a symbol that # represents the current operating system os = { style = "bg:#f50505"; disabled = false; # Disabled by default }; directory = { style = "bg:#E40046"; 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 = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; docker_context = { symbol = " "; style = "bg:#06969A"; format = "[ $symbol $context ]($style)"; }; elixir = { symbol = " "; style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; elm = { symbol = " "; style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; git_branch = { symbol = ""; style = "bg:#5018dd"; format = "[ $symbol $branch ]($style)"; }; git_status = { style = "bg:#5018dd"; format = "[$all_status$ahead_behind ]($style)"; }; golang = { symbol = " "; style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; gradle = { style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; haskell = { symbol = " "; style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; java = { symbol = " "; style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; julia = { symbol = " "; style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; nodejs = { symbol = ""; style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; nim = { symbol = "󰆥 "; style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; rust = { symbol = ""; style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; scala = { symbol = " "; style = "bg:#86BBD8"; format = "[ $symbol ($version) ]($style)"; }; time = { disabled = false; time_format = "%R"; # Hour:Minute Format style = "bg:#5018dd"; format = "[  $time ]($style)"; }; }; }; }