# Get editor completions based on the config schema "$schema" = 'https://starship.rs/config-schema.json' format = """ [](fg:bright-purple)\ $os\ $shell\ $username\ [](bg:bright-red fg:bright-purple)\ $directory\ [](fg:bright-red bg:bright-blue)\ ${custom.jj}\ ${git_branch}\ ${git_status}\ ${git_state}\ [](fg:bright-blue bg:bright-cyan)\ $c\ $golang\ $python\ $gradle\ $java\ $nodejs\ $rust\ [](fg:bright-cyan bg:bright-green)\ $docker_context\ [](fg:bright-green bg:bright-blue)\ $time\ ${custom.foo}\ [ ](fg:bright-blue)\ """ right_format = """ [](fg:bright-red) $status\ [](bg:bright-red fg:bright-blue) $cmd_duration\ $hostname\ [](fg:bright-blue) """ # Disable the blank line at the start of the prompt # add_newline = false # You can also replace your username with a neat symbol like  or disable this # and use the os module below [username] style_user = "bg:bright-purple fg:black" style_root = "bg:bright-purple fg:black" format = '[$user ]($style)' disabled = false # An alternative to the username module which displays a symbol that # represents the current operating system [os] style = "bg:bright-purple fg:black" format = "[$symbol]($style)" disabled = false # Disabled by default [os.symbols] Ubuntu = " " Arch = " " CentOS = " " # AlmaLinux = " " NixOS = " " Windows = " " Macos = "" Alpine = " " [directory] style = "bg:bright-red fg:black" format = "[ $path ]($style)" truncation_symbol = "…/" truncation_length = 1 fish_style_pwd_dir_length = 2 # 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:bright-cyan fg:black" format = '[ $symbol ($version) ]($style)' [docker_context] symbol = " " style = "bg:bright-green fg:black" format = '[ $symbol $context ]($style) $path' [git_branch] symbol = "" style = "bg:bright-blue fg:black" format = '[ $symbol $branch ]($style)' [git_commit] symbol = " " style = "bg:bright-blue fg:black" format = "[($hash$tag)]($style) " [git_status] style = "bg:bright-blue fg:black" format = '[$all_status$ahead_behind]($style)' renamed = ' ' stashed = ' ' modified = ' ' untracked = '' conflicted = '' staged = ' ' up_to_date = ' ' diverged = '' deleted = '' # [git_state] style = "bg:bright-blue fg:black" format = '[\($state( $progress_current of $progress_total)\)]($style)' [golang] symbol = "" style = "bg:bright-cyan fg:black" format = '[$symbol($version) ]($style)' version_format = "v${major}.${minor}" [gradle] style = "bg:bright-cyan fg:black" format = '[($symbol$version)]($style)' [java] symbol = "" style = "bg:bright-cyan fg:black" format = '[($symbol$version)]($style)' [nodejs] symbol = "" style = "bg:bright-cyan fg:black" format = '[ $symbol ($version) ]($style)' [python] symbol = "" style = "bg:bright-cyan fg:black" format = '[ ${symbol}${pyenv_prefix}(${version} )(\($virtualenv\))]($style)' [rust] symbol = "" style = "bg:bright-cyan fg:black" format = '[ $symbol ($version) ]($style)' [time] time_format = "%r" # Hour:Minute Format disabled = false style = "bg:bright-blue fg:black" format = '[ $time ]($style)' [shell] bash_indicator = " " powershell_indicator = " " zsh_indicator = " " nu_indicator = "ν" xonsh_indicator = "🐚" style = "bg:bright-purple fg:black" format = '[$indicator]($style)' disabled = false [cmd_duration] format = "[ $duration]($style)" style = "fg:black bg:bright-blue" show_milliseconds = true [status] disabled=false style="fg:black bg:bright-red" symbol=" " # success_symbol="" format = "[ $symbol$status]($style)" [hostname] style="bg:bright-blue fg:black" ssh_symbol="@" format='[ $ssh_symbol$hostname ]($style)' [sudo] style="bg:bright-blue fg:black" disabled = false symbol=" " format = "[ $symbol]($style)" # custom module for jj status [custom.jj] description = "The current jj status" when = "jj --ignore-working-copy root" symbol = "🥋 " shell = ["starship-jj", "starship", "prompt", "--ignore-working-copy"] disabled = true # command = ''' # jj log --revisions @ --no-graph --ignore-working-copy --color always --limit 1 --template ' # separate(" ", # change_id.shortest(4), # bookmarks, # "|", # concat( # if(conflict, "💥"), # if(divergent, "🚧"), # if(hidden, "👻"), # if(immutable, "🔒"), # ), # raw_escape_sequence("\x1b[1;32m") ++ if(empty, "(empty)"), # raw_escape_sequence("\x1b[1;32m") ++ coalesce( # truncate_end(29, description.first_line(), "…"), # "(no description set)", # ) ++ raw_escape_sequence("\x1b[0m"), # ) # ' # ''' # [custom.git_status] # ignore_timeout = true # when = "bash -c'starship-jj --ignore-working-copy root'" # command = "starship module git_status" # description = "Only show git_status if we're not in a jj repo" # style = "bg:bright-blue fg:black" # format = 'jjs: [$output ]($style)' # # # [custom.git_branch] # command = "starship module git_branch" # when = "bash -c'jj --ignore-working-copy root'" # style = "bg:bright-blue fg:black" # format = 'jjb: [$output ]($style)' # # [custom.git_state] # command = "starship module git_state" # when = "bash -c'jj --ignore-working-copy root'" # style = "bg:bright-blue fg:black" # format = 'jjst: [$output ]($style)'