dotfiles/dot_config/fish/functions/fish_prompt.fish
2024-05-18 19:08:15 -07:00

44 lines
1.3 KiB
Fish

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