nixos-config/dotfiles/zsh-prompt.sh

49 lines
1.2 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# vim: ft=zsh
NOCOLOR=""
PURPLE=""
YELLOW=""
GREEN=""
BOLDYELLOW=""
BOLDRED=""
BOLDGREEN=""
typeset -A modecolor
modecolor[emacs]=$BOLDYELLOW
modecolor[viins]=$BOLDYELLOW
modecolor[main]=$BOLDYELLOW
modecolor[vicmd]=$PURPLE
modecolor[viopp]=$BOLDYELLOW
modecolor[visual]=$YELLOW
modecolor[isearch]=$BOLDRED
modecolor[command]=$BOLDGREEN
modecolor[.safe]=$BOLDYELLOW
function update-prompt-color {
MODE=$2
[ -z "$MODE" ] && MODE=$KEYMAP
[ -z "$MODE" ] && MODE=main
COLOR="${modecolor[$MODE]}"
[ "$MODE" = "main" ] && INDICATOR='+' || INDICATOR=' '
PS1="%{$COLOR%}[$INDICATOR] %~%# %{$NOCOLOR%}"
[ -n "$VIRTUAL_ENV" -a ! "$(basename "$VIRTUAL_ENV")" = "default" ] && VENV_STRING="%{$GREEN%}($(basename $VIRTUAL_ENV))" || VENV_STRING=
USER_STRING="%{$PURPLE%}%n@%m"
#USER_STRING="%{$PURPLE%}rhelmot@%m"
TIME_STRING="%{$PURPLE%}[%{$YELLOW%}%D{%r}%{$PURPLE%}]"
RPS1="$VENV_STRING $USER_STRING $TIME_STRING%{$NOCOLOR%}"
zle && zle reset-prompt
}
function neutral-prompt-color {
update-prompt-color dummy main
}
zle -N zle-line-init update-prompt-color
zle -N zle-keymap-select update-prompt-color
zle -N zle-line-finish neutral-prompt-color
update-prompt-color