diff options
Diffstat (limited to 'old/config/fish/functions/fish_prompt.fish')
-rw-r--r-- | old/config/fish/functions/fish_prompt.fish | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/old/config/fish/functions/fish_prompt.fish b/old/config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..bd142dd --- /dev/null +++ b/old/config/fish/functions/fish_prompt.fish @@ -0,0 +1,69 @@ +function fish_prompt --description 'Write out the prompt' + set -l last_status $status + + # Just calculate this 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 + + set -l normal (set_color normal) + + # Hack; fish_config only copies the fish_prompt function (see #736) + if not set -q -g __fish_classic_git_functions_defined + set -g __fish_classic_git_functions_defined + + function __fish_repaint_user --on-variable fish_color_user --description "Event handler, repaint when fish_color_user changes" + if status --is-interactive + commandline -f repaint ^/dev/null + end + end + + function __fish_repaint_host --on-variable fish_color_host --description "Event handler, repaint when fish_color_host changes" + if status --is-interactive + commandline -f repaint ^/dev/null + end + end + + function __fish_repaint_status --on-variable fish_color_status --description "Event handler; repaint when fish_color_status changes" + if status --is-interactive + commandline -f repaint ^/dev/null + end + end + + function __fish_repaint_bind_mode --on-variable fish_key_bindings --description "Event handler; repaint when fish_key_bindings changes" + if status --is-interactive + commandline -f repaint ^/dev/null + end + end + + # initialize our new variables + if not set -q __fish_classic_git_prompt_initialized + set -qU fish_color_user; or set -U fish_color_user -o green + set -qU fish_color_host; or set -U fish_color_host -o cyan + set -qU fish_color_status; or set -U fish_color_status red + set -U __fish_classic_git_prompt_initialized + end + end + + set -l color_cwd + set -l prefix + 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 + set suffix '#' + case '*' + set color_cwd $fish_color_cwd + set suffix '>' + end + + set -l prompt_status + if test $last_status -ne 0 + set prompt_status ' ' (set_color $fish_color_status) "[$last_status]" "$normal" + end + + echo -n -s (set_color $fish_color_user) "$USER" $normal @ (set_color $fish_color_host) "$__fish_prompt_hostname" $normal ' ' (set_color $color_cwd) (prompt_pwd) $normal (__fish_vcs_prompt) $normal $prompt_status "> " +end |