How are folks using starship? Share your setup! ✨ #1107
Replies: 19 comments 11 replies
-
ScreenshotEnvironment
Shell configuration# Configure Jump
status --is-interactive; and source (jump shell fish | psub)
# Load all saved ssh keys
/usr/bin/ssh-add -A ^/dev/null
# Set the emoji width for iTerm
set -g fish_emoji_width 2
# Hide the fish greeting
set fish_greeting ""
# Use legacy fzf keybindings
set -g FZF_LEGACY_KEYBINDINGS 1
# Use nvm LTS
nvm use lts/\*
# Fish syntax highlighting
set -g fish_color_autosuggestion '555' 'brblack'
set -g fish_color_cancel -r
set -g fish_color_command --bold
set -g fish_color_comment red
set -g fish_color_cwd green
set -g fish_color_cwd_root red
set -g fish_color_end brmagenta
set -g fish_color_error brred
set -g fish_color_escape 'bryellow' '--bold'
set -g fish_color_history_current --bold
set -g fish_color_host normal
set -g fish_color_match --background=brblue
set -g fish_color_normal normal
set -g fish_color_operator bryellow
set -g fish_color_param cyan
set -g fish_color_quote yellow
set -g fish_color_redirection brblue
set -g fish_color_search_match 'bryellow' '--background=brblack'
set -g fish_color_selection 'white' '--bold' '--background=brblack'
set -g fish_color_user brgreen
set -g fish_color_valid_path --underline
# Initialize Starship
starship init fish | source Starship ConfigurationThe vanilla Nerd Font preset . |
Beta Was this translation helpful? Give feedback.
-
ScreenshotEnvironment
Shell Configurationcappyzawa/dotfiles: dotfiles for cappyzawa Starship Configuration |
Beta Was this translation helpful? Give feedback.
-
Environment
|
Beta Was this translation helpful? Give feedback.
-
Screenshot
Environment
Configurationprompt_order = [
'jobs',
'git_branch',
'cmd_duration',
'character',
]
jobs.symbol = ' '
cmd_duration.prefix = ''
git_branch.symbol = ' ' |
Beta Was this translation helpful? Give feedback.
-
ScreenshotEnvironment
Shell Configurationhttps://github.com/lukewhrit/dotfiles/tree/master/.config/zsh Starship Configurationhttps://github.com/lukewhrit/dotfiles/blob/master/.config/starship.toml |
Beta Was this translation helpful? Give feedback.
-
Starship config: https://github.com/Malternative3772/dotfiles/blob/main/starship.toml Fish config: https://github.com/Malternative3772/dotfiles/blob/main/config.fish Inspired by the Lambda Fish theme. |
Beta Was this translation helpful? Give feedback.
-
Just took a screenshot for another thread with all the features I use lit up, so thought I'd share it here. No Left to right, features are: shlvl, character ( Starship config: https://github.com/wlonkly/dotfiles/blob/master/home/.config/starship.toml The fragile bash it replaced: https://github.com/wlonkly/dotfiles/blob/master/home/.bash_prompt Bash config: https://github.com/wlonkly/dotfiles/blob/master/home/.bashrc, https://github.com/wlonkly/dotfiles/blob/master/home/.bash_profile * I made an exception for us-east-1. |
Beta Was this translation helpful? Give feedback.
-
I'm trying to reproduce the awesome BobTheFish's Theme but AFAIK it's currently not 100% doable ScreenshotsNeofetch (it lies, i'm using Fish) Environments Git status Prompts for screenshots has been generated by this script Environment
Shell Configuration`~/.config/fish/config.fish`# ~/.config/fish/config.fish: DO NOT EDIT -- this file has been generated
# automatically by home-manager.
# if we haven't sourced the general config, do it
if not set -q __fish_general_config_sourced
set -p fish_function_path /nix/store/53i9d28j4wa16qpbc4gibfdwmvmsg757-fish-foreign-env-git-20200209/share/fish-foreign-env/functions
fenv source /home/pinage404/.nix-profile/etc/profile.d/hm-session-vars.sh > /dev/null
set -e fish_function_path[1]
eval (/nix/store/0y1yv2vd57d9432y9yndvjqazbc3bm93-direnv-2.22.0/bin/direnv hook fish)
# and leave a note so we don't source this config section again from
# this very shell (children will source the general config anew)
set -g __fish_general_config_sourced 1
end
# if we haven't sourced the login config, do it
status --is-login; and not set -q __fish_login_config_sourced
and begin
# Login shell initialisation
# and leave a note so we don't source this config section again from
# this very shell (children will source the general config anew)
set -g __fish_login_config_sourced 1
end
# if we haven't sourced the interactive config, do it
status --is-interactive; and not set -q __fish_interactive_config_sourced
and begin
# Abbreviations
# Aliases
# Prompt initialisation
# Interactive shell intialisation
# add completions generated by Home Manager to $fish_complete_path
begin
set -l joined (string join " " $fish_complete_path)
set -l prev_joined (string replace --regex "[^\s]*generated_completions.*" "" $joined)
set -l post_joined (string replace $prev_joined "" $joined)
set -l prev (string split " " (string trim $prev_joined))
set -l post (string split " " (string trim $post_joined))
set fish_complete_path $prev "/home/pinage404/.local/share/fish/home-manager_generated_completions" $post
end
# and leave a note so we don't source this config section again from
# this very shell (children will source the general config anew,
# allowing configuration changes in, e.g, aliases, to propagate)
set -g __fish_interactive_config_sourced 1
end I was having an issue with oh-my-fish + Starship with a kind of double prompt, so i use this plugin https://gitlab.com/pinage404/omf_theme_starship to avoid oh-my-fish's prompt Starship ConfigurationIssuesSome specials characters don't display well (i don't know who is responsible of this : my configuration, NixOS, Konsole, Fira Code, NerdFonts, Starship ...) When i have a command that return a non-zero, i have a angry table flip emoji [status]
disabled = false
style = "red"
symbol = "\\(╯°□°)╯︵ ┻━┻ "
format = "\b[](bg:$style fg:#4169e1)[$symbol$status](bg:$style)[](fg:$style)" This visually break the autocompletion with Fish (characters are badly aligned) I have to dig deeper to find how to solve this but i don't really know how |
Beta Was this translation helpful? Give feedback.
-
Environment
Shell Configurationcappyzawa/dotfiles: dotfiles for cappyzawa Starship Configuration |
Beta Was this translation helpful? Give feedback.
-
Here's my config. I'll do without Neofetch because it doesn't support LS_COLORS ScreenshotEnvironment
Shell Configuration
Starship Configurationhttps://github.com/fredericrous/dotfiles/blob/main/private_dot_config/starship.toml |
Beta Was this translation helpful? Give feedback.
-
I decided to (mostly) duplicate the p10k prompt I have been using for awhile now, I was pretty happy with how it turned out. Neofetch. Environment
Shell Configurationhttps://github.com/jmreicha/configs/blob/master/.zshrc Starship Configurationhttps://github.com/jmreicha/configs/blob/master/config/starship/starship.toml |
Beta Was this translation helpful? Give feedback.
-
Features
ScreenshotEnvironment
Shell Configuration
Starship Configuration |
Beta Was this translation helpful? Give feedback.
-
I had someone ask me for help making a Starship version of the Prezto default prompt (sorin). Here's what I came up with: ScreenshotEnvironment
Starship Configuration# prezto.toml
add_newline = false
# A minimal left prompt
format = """$python$directory$character"""
# move the rest of the prompt to the right
right_format = """$status$all"""
[character]
success_symbol = "[❯](red)[❯](yellow)[❯](green)"
error_symbol = "[❯](red)[❯](yellow)[❯](green)"
vicmd_symbol = "[❮](green)[❮](yellow)[❮](red)"
[git_branch]
format = '[$branch]($style) '
style = 'bold green'
[python]
format = '\($virtualenv\) '
[git_status]
format = '$all_status$ahead_behind '
ahead = '[⬆](bold purple) '
behind = '[⬇](bold purple) '
staged = '[✚](green) '
deleted = '[✖](red) '
renamed = '[➜](purple) '
stashed = '[✭](cyan) '
untracked = '[◼](white) '
modified = '[✱](blue) '
conflicted = '[═](yellow) '
diverged = '⇕ '
up_to_date = ''
[directory]
style = "blue"
truncation_length = 1
truncation_symbol = ""
fish_style_pwd_dir_length = 1
[cmd_duration]
format = '[$duration]($style) '
[line_break]
disabled = true
[status]
disabled = false
symbol = '✘ ' |
Beta Was this translation helpful? Give feedback.
-
ScreenshotEnvironment
Starship Configurationformat = """
$git_branch\
$git_status\
$python\
$nodejs\
$c\
$cpp\
$rust\
$java\
$golang\
$docker_context\
$kubernetes
$battery $time
$os [$username](yellow)[@](cyan)[$hostname](green) $directory$character
"""
[character]
success_symbol = '[➜](bold green)'
error_symbol = '[➜](bold red)'
[battery]
full_symbol = "• "
charging_symbol = "⇡ "
discharging_symbol = "⇣ "
[[battery.display]]
threshold = 100
[time]
format = "[$time]($style)"
disabled = false
[username]
show_always = true
format = "[$user]($style)"
[hostname]
ssh_only = false
format = "[$hostname]($style)"
[c]
format = "[$symbol($version )]($style)"
symbol = " "
[directory]
read_only = " "
[docker_context]
symbol = " "
format = "[$symbol$context]($style)"
[elm]
symbol = " "
[golang]
symbol = " "
format = "[$symbol($version )]($style)"
[hg_branch]
symbol = " "
[java]
symbol = " "
format = "[$symbol($version )]($style)"
[memory_usage]
symbol = " "
[nodejs]
format = "[$symbol($version )]($style)"
symbol = " "
[os]
disabled = false
[os.symbols]
Alpine = " "
Amazon = " "
Android = " "
Arch = " "
CentOS = " "
Debian = " "
DragonFly = " "
Emscripten = " "
EndeavourOS = " "
Fedora = " "
FreeBSD = " "
Garuda = " "
Gentoo = " "
HardenedBSD = "ﲊ "
Illumos = " "
Linux = " "
Macos = " "
Manjaro = " "
Mariner = " "
MidnightBSD = " "
Mint = " "
NetBSD = " "
NixOS = " "
OpenBSD = " "
openSUSE = " "
OracleLinux = " "
Pop = " "
Raspbian = " "
Redhat = " "
RedHatEnterprise = " "
Redox = " "
Solus = "ﴱ "
SUSE = " "
Ubuntu = " "
Unknown = " "
Windows = " "
[package]
symbol = " "
format = "[$symbol($version )]($style)"
[python]
symbol = " "
format = "[$symbol($version )]($style)" rip symbol formatting |
Beta Was this translation helpful? Give feedback.
-
Screenshotstarship.tomlhttps://gist.github.com/sanmue/f0ed97bed95c7bc7926cc3a88949bd39 same as above, with dark background in upper line of prompt: ... have tried 'starship' and fiddled around with the appearance to have the same shell prompt everywhere via 'starship' that I had customized for zsh under Manjaro according to my preferences (--> https://github.com/romkatv/powerlevel10k). Environmentfrom starship bug-report:
Font: MesloLG Nerd Font from neofetch: Shell Configurationthe part "custom zsh config" to "custom alias definitions" is mostly just copied from the already existing file in Manjaro "/usr/share/zsh/manjaro-zsh-config" ### BEGIN 'starship shell prompt' ANSIBLE MANAGED BLOCK ###
# -------------------------------------------
# starship shell prompt - Add the init script
# -------------------------------------------
eval "$(starship init zsh)"
### END 'starship shell prompt' ANSIBLE MANAGED BLOCK ###
### BEGIN 'custom zsh config' ANSIBLE MANAGED BLOCK ###
# -----------------
# custom zsh config
# -----------------
## Options section
# setopt interactivecomments
setopt correct # Auto correct mistakes
setopt extendedglob # Extended globbing. Allows using regular expressions with *
setopt nocaseglob # Case insensitive globbing
setopt rcexpandparam # Array expension with parameters
setopt nocheckjobs # Don't warn about running processes when exiting
setopt numericglobsort # Sort filenames numerically when it makes sense
setopt nobeep # No beep
setopt appendhistory # Immediately append history instead of overwriting
setopt histignorealldups # If a new command is a duplicate, remove #the older one
setopt autocd # if only directory path is entered, cd #there.
setopt inc_append_history # save commands are added to the history #immediately, otherwise only when shell exits.
setopt histignorespace # Don't save commands that start with #space
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case insensitive tab completion
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors for dirs/files/etc)
zstyle ':completion:*' rehash true # automatically find new executables in path
# Speed up completions
zstyle ':completion:*' accept-exact '*(N)'
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path ~/.zsh/cache
HISTFILE=~/.zhistory
HISTSIZE=10000
SAVEHIST=10000
WORDCHARS=${WORDCHARS//\/[&.;]} # Don't consider certain characters part of the word
## Keybindings section
bindkey -e
bindkey '^[[7~' beginning-of-line # Home key
bindkey '^[[H' beginning-of-line # Home key
if [[ "${terminfo[khome]}" != "" ]]; then
bindkey "${terminfo[khome]}" beginning-of-line # [Home] - Go to beginning of line
fi
bindkey '^[[8~' end-of-line # End key
bindkey '^[[F' end-of-line # End key
if [[ "${terminfo[kend]}" != "" ]]; then
bindkey "${terminfo[kend]}" end-of-line # [End] - Go to end of line
fi
bindkey '^[[2~' overwrite-mode # Insert key
bindkey '^[[3~' delete-char # Delete key
bindkey '^[[C' forward-char # Right key
bindkey '^[[D' backward-char # Left key
bindkey '^[[5~' history-beginning-search-backward # Page up key
bindkey '^[[6~' history-beginning-search-forward # Page down key
# Navigate words with ctrl+arrow keys
bindkey '^[Oc' forward-word #
bindkey '^[Od' backward-word #
bindkey '^[[1;5D' backward-word #
bindkey '^[[1;5C' forward-word #
bindkey '^H' backward-kill-word # delete previous word with ctrl+backspace
bindkey '^[[Z' undo # Shift+tab undo last action
## Theming section
autoload -Uz compinit promptinit colors zcalc
compinit -d
promptinit
colors
# Color man pages
export LESS_TERMCAP_mb=$'\E[01;32m'
export LESS_TERMCAP_md=$'\E[01;32m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;47;34m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;36m'
export LESS=-R
## Plugins section: Enable fish style features
# Use syntax highlighting
if [[ -r /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh ]]; then
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
fi
# Use autosuggestions
if [[ -r /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]]; then
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
fi
# Use history substring search
if [[ -r /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh ]]; then
source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh
# bind UP and DOWN arrow keys to history substring search
zmodload zsh/terminfo
bindkey "$terminfo[kcuu1]" history-substring-search-up
bindkey "$terminfo[kcud1]" history-substring-search-down
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
fi
# Offer to install missing package if command is not found
if [[ -r /usr/share/zsh/functions/command-not-found.zsh ]]; then
source /usr/share/zsh/functions/command-not-found.zsh
export PKGFILE_PROMPT_INSTALL_MISSING=1
fi
## File and Dir colors for ls and other outputs
export LS_OPTIONS='--color=auto'
eval "$(dircolors -b)"
## Alias section
alias ls='ls $LS_OPTIONS'
alias cp="cp -i" # Confirm before overwriting something
alias df='df -h' # Human-readable sizes
alias free='free -m' # Show sizes in MB"
### END 'custom zsh config' ANSIBLE MANAGED BLOCK ###
### BEGIN 'custom alias definitions' ANSIBLE MANAGED BLOCK ###
# ------------------------
# custom alias definitions
# ------------------------
# KITTY - alias to be able to use kitty features when connecting to remote servers (e.g use tmux on remote server)
alias kssh="kitty +kitten ssh"
# directory listing (+ using 'exa' instead of 'ls')
alias ls='exa --color=auto --icons --group' # --group relevant/wirkt nur bei '-l'; so ist aber schon standardmäßig überall dabei
alias ll='ls -la --ignore-glob ..' # show long listing of all except ".."
alias l='ls -la --ignore-glob .?*' # show long listing but no hidden dotfiles except "." (rekursiv bis 1. Unterverzeichnis, mit dessen Inhalt)
# tree-view:
alias lst='ls --tree' # lst = ls tree
alias lstl='lst --long' # lstl = ls tree long
alias lstla='lstl --all' # lstla = ls tree long all
alias lstlale='lstla --level' # lstlale = ls tree long all level # Aufruf: lstlale 3
alias lstle='lst --level' # lstle = ls tree level # Aufruf: lstle 3 (entspricht: ls --tree --level 3)
### END 'custom alias definitions' ANSIBLE MANAGED BLOCK ###
### BEGIN 'vim' ANSIBLE MANAGED BLOCK ###
# ------------------------------
# vim als Standard Editor setzen
# -------------------------------
export VISUAL=vim
export EDITOR="${VISUAL}"
### END 'vim' ANSIBLE MANAGED BLOCK ###
### BEGIN 'user-bin' ANSIBLE MANAGED BLOCK ###
# ------------------------------------------
# Benutzer-bin Verzeichnis an PATH anhängen:
# ------------------------------------------
export PATH=~/.local/bin:$PATH
### END 'user-bin' ANSIBLE MANAGED BLOCK ###
### BEGIN 'pyenv' ANSIBLE MANAGED BLOCK ###
# -----
# pyenv
# -----
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
### END 'pyenv' ANSIBLE MANAGED BLOCK ###
### BEGIN 'systemd user' ANSIBLE MANAGED BLOCK ###
# -----
# systemd user import-environment
# -----
systemctl --user import-environment PATH
### END 'systemd user' ANSIBLE MANAGED BLOCK ### |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
a config just like p10k: format = "$directory$git_branch$git_status[ ](fg:#444444)"
right_format = "[](fg:#444444)$status$cmd_duration$nix_shell$custom"
[cmd_duration]
format = "[](fg:#7a7a7a bg:#444444)[ $duration ]($style)"
style = "fg:#9b9b9b bg:#444444"
[custom]
[custom.direnv]
format = "[](fg:#7a7a7a bg:#444444)[ $symbol ]($style)"
style = "fg:#7a7a7a bg:#444444"
symbol = "[▼](fg:white bg:#444444)"
when = "test \"$DIRENV_WATCHES\" != \"\""
[custom.vim_shell]
format = "[](fg:#7a7a7a bg:#444444)[ $symbol ]($style)"
style = "fg:#7a7a7a bg:#444444"
symbol = "[](fg:green bg:#444444)"
when = "test \"$VIMRUNTIME\" != \"\""
[directory]
format = "[ $path ]($style)"
style = "fg:#00afff bg:#444444"
truncate_to_repo = false
[git_branch]
format = "[](fg:#7a7a7a bg:#444444)[ $branch(:$remote_branch) ]($style)"
style = "fg:#00dd00 bg:#444444"
[git_metrics]
added_style = "fg:#b4951e bg:#444444"
deleted_style = "fg:bright-red bg:235"
disabled = false
format = "([+$added]($added_style))[]($added_style)"
[git_status]
ahead = "⇡$count"
behind = "⇣$count"
diverged = "⇡$ahead_count⇣$behind_count"
format = "[$all_status$ahead_behind ]($style)"
modified = "[!$count ](fg:#b4951e bg:#444444)"
style = "fg:#b4951e bg:#444444"
untracked = "[?$count ](fg:#00afff bg:#444444)"
[hg_branch]
format = "[ $symbol$branch ]($style)"
symbol = " "
[nix_shell]
format = "[](fg:#7a7a7a bg:#444444)[ $state $symbol ]($style)"
style = "fg:#5690ad bg:#444444"
symbol = "❄️"
[status]
disabled = false
format = "[ $signal_name $symbol ]($style)"
map_symbol = true
sigint_symbol = "[✘](fg:#d60202 bg:#444444)"
style = "bg:#444444"
success_symbol = "[✔](fg:green bg:#444444)"
symbol = "[✘](fg:#d60202 bg:#444444)" |
Beta Was this translation helpful? Give feedback.
-
Boring stuff...Environment
Relevant Shell Configuration#
# Load Sources
#
source $HOME/.zsh/load-sources.zsh Starship Configuration# Get editor completions based on the config schema
"$schema" = 'https://starship.rs/config-schema.json'
# Custom format
format = """($all
)$character"""
# Inserts a blank line between shell prompts
add_newline = false
# A continuation prompt that displays two filled in arrows
continuation_prompt = "[→→](bold blue)"
[line_break]
disabled = true
[character]
success_symbol = "[→](bold blue)"
error_symbol = "[→](bold red)"
[status]
symbol = "🆗"
success_symbol = ""
format = '$symbol$signal_name$maybe_int'
map_symbol = true
disabled = false
[sudo]
style = "bold green"
symbol = "🔑"
disabled = false
# Nerd Font Symbols
[aws]
symbol = " "
[buf]
symbol = " "
[c]
symbol = " "
[conda]
symbol = " "
[dart]
symbol = " "
[directory]
read_only = " "
truncation_length = 1
truncation_symbol = ''
format = "[$read_only]($read_only_style)"
disabled = true
[docker_context]
symbol = " "
[elixir]
symbol = " "
[elm]
symbol = " "
[git_branch]
symbol = " "
[golang]
symbol = " "
[haskell]
symbol = " "
[hg_branch]
symbol = " "
[java]
symbol = " "
[julia]
symbol = " "
[lua]
symbol = " "
[memory_usage]
symbol = " "
[meson]
symbol = "喝 "
[nim]
symbol = " "
[nix_shell]
symbol = " "
[nodejs]
symbol = " "
[package]
symbol = " "
[python]
symbol = " "
[rlang]
symbol = "ﳒ "
[ruby]
symbol = " "
[rust]
symbol = " "
[scala]
symbol = " "
[spack]
symbol = "🅢 "
|
Beta Was this translation helpful? Give feedback.
-
Howdy folks! 👋
I'd love to hear a little bit about how people are using starship in their setups.
Getting to see how folks use the prompt, maybe we can create a few presets out of interesting configurations.
Let's use the following template to share our preferred setups:
Beta Was this translation helpful? Give feedback.
All reactions