{ config, lib, ... }: { programs.starship = { enable = true; settings = { add_newline = false; format = lib.concatStrings [ "[](blue)" "[$username:$hostname](bold white bg:blue)" "[](bg:#769ff0 fg:blue)" "$directory" "[](fg:#769ff0 bg:#394260)" "$git_branch" "$git_status" "[](fg:#394260 bg:#212736)" "[](fg:#212736 bg:#1d2230)" "$time" "[ ](fg:#1d2230)" " $character" ]; command_timeout = 5000; # Disable the blank line at the start of the prompt # add_newline = false # You can also replace your username with a neat symbol like  to save some space username = { show_always = true; format = "$user"; }; hostname = { ssh_only = false; format = "$hostname"; disabled = false; }; directory = { style = "fg:#e3e5e5 bg:#769ff0"; 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 ezample: # "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  " = "  " git_branch = { symbol = ""; style = "bg:#4C566A"; format = "[ $symbol $branch ]($style)"; }; git_status = { style = "bg:#394260"; format = "[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)"; }; time = { disabled = false; time_format = "%R"; style = "bg:#33658A"; format = "[ $time ]($style)"; }; }; }; }