Skip to content

Instantly share code, notes, and snippets.

@Frankie-B
Forked from deepanchal/starship.toml
Created July 1, 2024 14:30
Show Gist options
  • Save Frankie-B/36270cebe867d88b00be8fe751b94405 to your computer and use it in GitHub Desktop.
Save Frankie-B/36270cebe867d88b00be8fe751b94405 to your computer and use it in GitHub Desktop.
Starship config
# Get editor completions based on the config schema
"$schema" = 'https://starship.rs/config-schema.json'
format = """
$username\
$hostname\
$localip\
$shlvl\
$singularity\
$kubernetes\
$directory\
$vcsh\
$fossil_branch\
${custom.git_server}\
$git_branch\
$git_commit\
$git_state\
$git_metrics\
$git_status\
$hg_branch\
$pijul_channel\
$docker_context\
$package\
$c\
$cmake\
$cobol\
$daml\
$dart\
$deno\
$dotnet\
$elixir\
$elm\
$erlang\
$fennel\
$golang\
$guix_shell\
$haskell\
$haxe\
$helm\
$java\
$julia\
$kotlin\
$gradle\
$lua\
$nim\
$nodejs\
$ocaml\
$opa\
$perl\
$php\
$pulumi\
$purescript\
$python\
$raku\
$rlang\
$red\
$ruby\
$rust\
$scala\
$swift\
$terraform\
$vlang\
$vagrant\
$zig\
$buf\
$nix_shell\
$conda\
$meson\
$spack\
$memory_usage\
$aws\
$gcloud\
$openstack\
$azure\
$env_var\
$crystal\
$custom\
$sudo\
$cmd_duration\
$line_break\
$jobs\
$battery\
$time\
$status\
$os\
$container\
$shell\
$character"""
################################################################################
## Custom Commands
################################################################################
[custom.git_server]
#disabled = true
description = "Display symbol for remote Git server"
command = """
GIT_REMOTE=$(command git ls-remote --get-url 2> /dev/null)
if [[ "$GIT_REMOTE" =~ "github" ]]; then
GIT_REMOTE_SYMBOL=" "
elif [[ "$GIT_REMOTE" =~ "gitlab" ]]; then
GIT_REMOTE_SYMBOL=" "
elif [[ "$GIT_REMOTE" =~ "bitbucket" ]]; then
GIT_REMOTE_SYMBOL=" "
elif [[ "$GIT_REMOTE" =~ "git" ]]; then
GIT_REMOTE_SYMBOL=" "
else
GIT_REMOTE_SYMBOL=" "
fi
echo "$GIT_REMOTE_SYMBOL "
"""
when = 'git rev-parse --is-inside-work-tree 2> /dev/null'
style = "white"
format = '[$output]($style) '
[custom.git_scope]
disabled = true
command = '''
printf "%s (%s)" \
"$(if [ -n "$GIT_AUTHOR_EMAIL" ]; then echo "$GIT_AUTHOR_EMAIL"; else git config user.email; fi)" \
"$(if [ -n "$GIT_AUTHOR_NAME" ]; then echo "$GIT_AUTHOR_NAME"; else git config user.name; fi)"
'''
description = 'The currently configured Git user.{email,name}'
format = '$output '
style = 'blue bold'
when = 'git rev-parse --is-inside-work-tree'
[custom.git_last_commit]
disabled = true
description = "Display last commit hash and message"
command = "git show -s --format='%h \"%s\"'"
when = 'git rev-parse --is-inside-work-tree 2> /dev/null'
style = "bright-yellow bold"
format = "[$output]($style) "
[custom.ssh_no_keys]
disabled = true
description = "SSH missing keys"
when = "ssh-add -l | grep -q 'no identities'"
command = "echo 🚫"
format = '\[$symbol[$output]($style)\]'
shell = ["bash", "--noprofile", "--norc"]
symbol = "🔑"
style = "bold fg:red"
[custom.ssh_keys]
disabled = true
description = "SSH key count"
when = "ssh-add -l | grep -v -q 'no identities'"
command = "ssh-add -l | grep -v 'no identities' | wc -l"
format = '\[$symbol[$output]($style)\]'
shell = ["bash", "--noprofile", "--norc"]
symbol = "🔑"
style = "bold fg:green"
################################################################################
## Shell
################################################################################
[battery]
full_symbol = "🔋"
charging_symbol = "🔌"
discharging_symbol = ""
[[battery.display]]
threshold = 30
style = "bold red"
[cmd_duration]
min_time = 10_000 # Show command duration over 10,000 milliseconds (=10 sec)
format = '\[[⏱ $duration]($style)\]'
style = 'yellow'
[memory_usage]
format = '\[$symbol[${ram}( | ${swap})]($style)\]'
threshold = 70
style = "bold dimmed white"
disabled = false
[time]
time_format = "%T"
format = "🕙 $time($style) "
style = "bright-white"
disabled = true
[username]
format = '\[[$user]($style)\]'
style_user = "bold dimmed blue"
show_always = false
[hostname]
ssh_only = false
format = "<[$hostname]($style)>"
trim_at = "-"
style = "bold dimmed white"
disabled = true
[directory]
truncation_length = 5
format = "[$path]($style)[$lock_symbol]($lock_style) "
[directory.substitutions]
"Documents" = ""
"Downloads" = ""
"Music" = ""
"Pictures" = ""
################################################################################
## GIT
################################################################################
[git_branch]
format = '\[[$symbol$branch]($style)\]'
symbol = '🌱 '
style = "bold green"
[git_state]
format = '\[[\($state( $progress_current of $progress_total)\)]($style)\]'
[git_status]
conflicted = "⚔️ "
ahead = "💨${count} "
behind = "🐢${count} "
diverged = "🔱 💨${ahead_count} 🐢${behind_count} "
untracked = "🛤️ ${count} "
stashed = "📦 "
modified = "📝${count} "
staged = "🗃️ ${count} "
renamed = "📛${count} "
deleted = "🗑️ ${count} "
style = "bright-white"
format = '\[ $all_status$ahead_behind\]'
[git_commit]
commit_hash_length = 8
style = "bold white"
tag_symbol = '🔖 '
disabled = false
################################################################################
## Languages & Tools
################################################################################
[aws]
format = '\[[$symbol($profile)(\($region\))(\[$duration\])]($style)\]'
symbol = '󰅟 '
style = "yellow"
[bun]
format = '\[[$symbol($version)]($style)\]'
[c]
format = '\[[$symbol($version(-$name))]($style)\]'
[cmake]
format = '\[[$symbol($version)]($style)\]'
[cobol]
format = '\[[$symbol($version)]($style)\]'
[conda]
format = '\[[$symbol$environment]($style)\]'
[crystal]
format = '\[[$symbol($version)]($style)\]'
[daml]
format = '\[[$symbol($version)]($style)\]'
[dart]
format = '\[[$symbol($version)]($style)\]'
[deno]
format = '\[[$symbol($version)]($style)\]'
[docker_context]
format = '\[[$symbol$context]($style)\]'
[dotnet]
format = '\[[$symbol($version)(🎯 $tfm)]($style)\]'
[elixir]
format = '\[[$symbol($version \(OTP $otp_version\))]($style)\]'
[elm]
format = '\[[$symbol($version)]($style)\]'
[erlang]
format = '\[[$symbol($version)]($style)\]'
[fennel]
format = '\[[$symbol($version)]($style)\]'
[fossil_branch]
format = '\[[$symbol$branch]($style)\]'
[gcloud]
format = '\[[$symbol$account(@$domain)(\($region\))]($style)\]'
[golang]
format = '\[[$symbol($version)]($style)\]'
[gradle]
format = '\[[$symbol($version)]($style)\]'
[guix_shell]
format = '\[[$symbol]($style)\]'
[haskell]
format = '\[[$symbol($version)]($style)\]'
[haxe]
format = '\[[$symbol($version)]($style)\]'
[helm]
format = '\[[$symbol($version)]($style)\]'
[hg_branch]
format = '\[[$symbol$branch]($style)\]'
[java]
format = '\[[$symbol($version)]($style)\]'
[julia]
format = '\[[$symbol($version)]($style)\]'
[kotlin]
format = '\[[$symbol($version)]($style)\]'
[kubernetes]
format = '\[[$symbol$context( \($namespace\))]($style)\]'
[lua]
format = '\[[$symbol($version)]($style)\]'
[meson]
format = '\[[$symbol$project]($style)\]'
[nim]
format = '\[[$symbol($version)]($style)\]'
[nix_shell]
format = '\[[$symbol$state( \($name\))]($style)\]'
[nodejs]
format = '\[[$symbol($version)]($style)\]'
[ocaml]
format = '\[[$symbol($version)(\($switch_indicator$switch_name\))]($style)\]'
[opa]
format = '\[[$symbol($version)]($style)\]'
[openstack]
format = '\[[$symbol$cloud(\($project\))]($style)\]'
[os]
format = '\[[$symbol]($style)\]'
[package]
format = '\[[$symbol$version]($style)\]'
[perl]
format = '\[[$symbol($version)]($style)\]'
[php]
format = '\[[$symbol($version)]($style)\]'
[pijul_channel]
format = '\[[$symbol$channel]($style)\]'
[pulumi]
format = '\[[$symbol$stack]($style)\]'
[purescript]
format = '\[[$symbol($version)]($style)\]'
[python]
format = '\[[${symbol}${pyenv_prefix}(${version})(\($virtualenv\))]($style)\]'
style = "bold green"
[raku]
format = '\[[$symbol($version-$vm_version)]($style)\]'
[red]
format = '\[[$symbol($version)]($style)\]'
[ruby]
format = '\[[$symbol($version)]($style)\]'
[rust]
format = '\[[$symbol($version)]($style)\]'
style = "bold green"
[scala]
format = '\[[$symbol($version)]($style)\]'
[spack]
format = '\[[$symbol$environment]($style)\]'
[sudo]
format = '\[[as $symbol]\]'
[swift]
format = '\[[$symbol($version)]($style)\]'
[terraform]
format = '\[[$symbol$workspace]($style)\]'
[vagrant]
format = '\[[$symbol($version)]($style)\]'
[vlang]
format = '\[[$symbol($version)]($style)\]'
[zig]
format = '\[[$symbol($version)]($style)\]'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment