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 set __fish_jobs_num (count (jobs)) if test $__fish_jobs_num -gt 0 set -g __fish_jobs (set_color normal)(set_color --bold) "$__fish_jobs_num" else set -g __fish_jobs $__fish_prompt_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 printf '%s@%s %s%s%s#%s ' $USER $__fish_prompt_hostname "$__fish_prompt_cwd" (prompt_pwd) "$__fish_jobs" "$__fish_prompt_normal" case '*' if not set -q __fish_prompt_cwd set -g __fish_prompt_cwd (set_color $fish_color_cwd) end printf '%s@%s %s%s%s>%s ' $USER $__fish_prompt_hostname "$__fish_prompt_cwd" (prompt_pwd) "$__fish_jobs" "$__fish_prompt_normal" end end