function fish_prompt --description 'Write out the prompt' # Just calculate these once, to save a few cycles when displaying the prompt if not set -q __fish_prompt_hostname set -g __fish_prompt_hostname (hostname|cut -d . -f 1) end if not set -q __fish_prompt_normal set -g __fish_prompt_normal (set_color normal) end switch $USER case root if not set -q __fish_prompt_cwd if set -q fish_color_cwd_root set -g __fish_prompt_cwd (set_color $fish_color_cwd_root) else set -g __fish_prompt_cwd (set_color $fish_color_cwd) end end echo -n -s (set_color red) "$USER" (set_color normal) @ (set_color green) "$__fish_prompt_hostname" (set_color normal) ':[' "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_normal" ']' echo echo -n '# ' case '*' if not set -q __fish_prompt_cwd set -g __fish_prompt_cwd (set_color $fish_color_cwd) end if set -q VIRTUAL_ENV echo -n -s (set_color -b blue white) "(" (basename "$VIRTUAL_ENV") ")" (set_color normal) " " end echo -n -s (set_color blue) "(" (set_color yellow) (date "+%H:%M") (set_color blue) ")[" (set_color green) "$USER@$__fish_prompt_hostname " (set_color cyan) "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_normal" (set_color blue) ']' echo echo -n '$ ' end end