diff options
Diffstat (limited to 'oh-my-zsh/themes/pygmalion-virtualenv.zsh-theme')
-rw-r--r-- | oh-my-zsh/themes/pygmalion-virtualenv.zsh-theme | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/oh-my-zsh/themes/pygmalion-virtualenv.zsh-theme b/oh-my-zsh/themes/pygmalion-virtualenv.zsh-theme new file mode 100644 index 0000000..c2ab7f4 --- /dev/null +++ b/oh-my-zsh/themes/pygmalion-virtualenv.zsh-theme @@ -0,0 +1,54 @@ +# Yay! High voltage and arrows! + + +function _virtualenv_prompt_info { + if [[ -n "$(whence virtualenv_prompt_info)" ]]; then + if [ -n "$(whence pyenv_prompt_info)" ]; then + if [ "$1" = "inline" ]; then + ZSH_THEME_VIRTUAL_ENV_PROMPT_PREFIX=%{$fg[blue]%}"::%{$fg[red]%}" + ZSH_THEME_VIRTUAL_ENV_PROMPT_SUFFIX="" + virtualenv_prompt_info + fi + [ "$(pyenv_prompt_info)" = "${PYENV_PROMPT_DEFAULT_VERSION}" ] && virtualenv_prompt_info + else + virtualenv_prompt_info + fi + fi +} + +prompt_setup_pygmalion(){ + setopt localoptions extendedglob + + ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}" + ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " + ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}⚡%{$reset_color%}" + ZSH_THEME_GIT_PROMPT_CLEAN="" + + base_prompt='$(_virtualenv_prompt_info)%{$fg[magenta]%}%n%{$reset_color%}%{$fg[cyan]%}@%{$reset_color%}%{$fg[yellow]%}%m%{$reset_color%}%{$fg[red]%}:%{$reset_color%}%{$fg[cyan]%}%0~%{$reset_color%}%{$fg[red]%}|%{$reset_color%}' + post_prompt='%{$fg[cyan]%}⇒%{$reset_color%} ' + + base_prompt_nocolor=${base_prompt//\%\{[^\}]##\}} + post_prompt_nocolor=${post_prompt//\%\{[^\}]##\}} + + autoload -U add-zsh-hook + add-zsh-hook precmd prompt_pygmalion_precmd +} + +prompt_pygmalion_precmd(){ + setopt localoptions nopromptsubst extendedglob + + local gitinfo=$(git_prompt_info) + local gitinfo_nocolor=${gitinfo//\%\{[^\}]##\}} + local exp_nocolor="$(print -P \"${base_prompt_nocolor}${gitinfo_nocolor}${post_prompt_nocolor}\")" + local prompt_length=${#exp_nocolor} + + # add new line on prompt longer than 40 characters + local nl="" + if [[ $prompt_length -gt 40 ]]; then + nl=$'\n%{\r%}' + fi + + PROMPT="${base_prompt}\$(git_prompt_info)${nl}${post_prompt}" +} + +prompt_setup_pygmalion |