Skip to content

Instantly share code, notes, and snippets.

@chapmanjacobd
Last active April 25, 2022 21:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chapmanjacobd/8895ce289761017150df3d6506319d90 to your computer and use it in GitHub Desktop.
Save chapmanjacobd/8895ce289761017150df3d6506319d90 to your computer and use it in GitHub Desktop.
2022 fish prompt
# Defined via `source`
function fish_prompt --description 'Write out the prompt'
set -l last_status $status
if not set -q __fish_git_prompt_show_informative_status
set -g __fish_git_prompt_show_informative_status 1
end
if not set -q __fish_git_prompt_hide_untrackedfiles
set -g __fish_git_prompt_hide_untrackedfiles 1
end
if not set -q __fish_git_prompt_color_branch
set -g __fish_git_prompt_color_branch magenta --bold
end
if not set -q __fish_git_prompt_showupstream
set -g __fish_git_prompt_showupstream informative
end
if not set -q __fish_git_prompt_char_upstream_ahead
set -g __fish_git_prompt_char_upstream_ahead "↑"
end
if not set -q __fish_git_prompt_char_upstream_behind
set -g __fish_git_prompt_char_upstream_behind "↓"
end
if not set -q __fish_git_prompt_char_upstream_prefix
set -g __fish_git_prompt_char_upstream_prefix ""
end
if not set -q __fish_git_prompt_char_stagedstate
set -g __fish_git_prompt_char_stagedstate "●"
end
if not set -q __fish_git_prompt_char_dirtystate
set -g __fish_git_prompt_char_dirtystate "✚"
end
if not set -q __fish_git_prompt_char_untrackedfiles
set -g __fish_git_prompt_char_untrackedfiles "…"
end
if not set -q __fish_git_prompt_char_invalidstate
set -g __fish_git_prompt_char_invalidstate "✖"
end
if not set -q __fish_git_prompt_char_cleanstate
set -g __fish_git_prompt_char_cleanstate "✔"
end
if not set -q __fish_git_prompt_color_dirtystate
set -g __fish_git_prompt_color_dirtystate blue
end
if not set -q __fish_git_prompt_color_stagedstate
set -g __fish_git_prompt_color_stagedstate yellow
end
if not set -q __fish_git_prompt_color_invalidstate
set -g __fish_git_prompt_color_invalidstate red
end
if not set -q __fish_git_prompt_color_untrackedfiles
set -g __fish_git_prompt_color_untrackedfiles $fish_color_normal
end
if not set -q __fish_git_prompt_color_cleanstate
set -g __fish_git_prompt_color_cleanstate green --bold
end
if not set -q __fish_prompt_normal
set -g __fish_prompt_normal (set_color normal)
end
set -q VIRTUAL_ENV_DISABLE_PROMPT
or set -g VIRTUAL_ENV_DISABLE_PROMPT true
set -q VIRTUAL_ENV
and set -l venv (echo $VIRTUAL_ENV | md5sum | md5sum | string sub -l 4)
function rand_block_prefix
echo "█▓▒░" | fold -w1 | shuf -n1
end
if set -q venv
printf '(%s) ' $venv
else
printf (rand_block_prefix)
printf (rand_block_prefix)
printf (rand_block_prefix)
printf (rand_block_prefix)
printf ' '
end
set -l duration "$cmd_duration$CMD_DURATION"
if test $duration -gt 100
set duration (math $duration / 1000)s
else
set duration
end
if test -n "$duration"
printf '%s ' $duration
end
# printf ' %s ' (date "+%H:%M")
set -l color_cwd
set -l prefix
set -l suffix
switch "$USER"
case root toor
if set -q fish_color_cwd_root
set color_cwd $fish_color_cwd_root
else
set color_cwd $fish_color_cwd
end
# not #️⃣
set suffix '#'
case '*'
set color_cwd $fish_color_cwd
set suffix (echo "★⛳🃁🃂🃋🃌🃍🃎🃏🍞🌎🌏🌌🌭🌮🌯🌜🌝🌞🌟🌠🐘🐄🎅🧋🌸🌺🧁🧸🦋🍭🍓🌾🌻🍞☕🧺🧸✨🐑🍓🍯🍂🥧🍰🍪🍙🥐🥨🥞🍮🍋🍉🐻🐈🍊🧇❤️" | fold -w1 | shuf -n1)
end
# PWD
set_color $color_cwd
echo -n (prompt_pwd)
set_color normal
printf '%s ' (__fish_vcs_prompt)
if not test $last_status -eq 0
set_color $fish_color_error
set human_readable (fish_status_to_signal $last_status)
if test $human_readable = $last_status
printf "[%s] " $last_status
else
printf "[%s/%s] " $last_status $human_readable
end
set_color normal
end
echo -n "$suffix "
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment