5ff21efad72117377c7b6cabd850d6b2b01ee31a
- Author
- shellbye <Shellbye@users.noreply.github.com>
- Committer
- Marc Cornellà <marc.cornella@live.com>
- Date
Message
Add pygmalion-virtualenv theme (#5139)
Diff
1diff --git a/themes/pygmalion-virtualenv.zsh-theme b/themes/pygmalion-virtualenv.zsh-theme
2new file mode 100644
3index 0000000000000000000000000000000000000000..ea28e125a18e1475565391b262538d0ba2714eb1
4--- /dev/null
5+++ b/themes/pygmalion-virtualenv.zsh-theme
6@@ -0,0 +1,50 @@
7+# Yay! High voltage and arrows!
8+
9+
10+function _virtualenv_prompt_info {
11+ if [[ -n "$(whence virtualenv_prompt_info)" ]]; then
12+ if [ -n "$(whence pyenv_prompt_info)" ]; then
13+ if [ "$1" = "inline" ]; then
14+ ZSH_THEME_VIRTUAL_ENV_PROMPT_PREFIX=%{$fg[blue]%}"::%{$fg[red]%}"
15+ ZSH_THEME_VIRTUAL_ENV_PROMPT_SUFFIX=""
16+ virtualenv_prompt_info
17+ fi
18+ [ "$(pyenv_prompt_info)" = "${PYENV_PROMPT_DEFAULT_VERSION}" ] && virtualenv_prompt_info
19+ else
20+ virtualenv_prompt_info
21+ fi
22+ fi
23+}
24+
25+prompt_setup_pygmalion(){
26+ ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}"
27+ ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
28+ ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}⚡%{$reset_color%}"
29+ ZSH_THEME_GIT_PROMPT_CLEAN=""
30+
31+ 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%}'
32+ post_prompt='%{$fg[cyan]%}⇒%{$reset_color%} '
33+
34+ base_prompt_nocolor=$(echo "$base_prompt" | perl -pe "s/%\{[^}]+\}//g")
35+ post_prompt_nocolor=$(echo "$post_prompt" | perl -pe "s/%\{[^}]+\}//g")
36+
37+ precmd_functions+=(prompt_pygmalion_precmd)
38+}
39+
40+prompt_pygmalion_precmd(){
41+ local gitinfo=$(git_prompt_info)
42+ local gitinfo_nocolor=$(echo "$gitinfo" | perl -pe "s/%\{[^}]+\}//g")
43+ local exp_nocolor="$(print -P \"$base_prompt_nocolor$gitinfo_nocolor$post_prompt_nocolor\")"
44+ local prompt_length=${#exp_nocolor}
45+
46+ local nl=""
47+
48+ if [[ $prompt_length -gt 40 ]]; then
49+ nl=$'\n%{\r%}';
50+ fi
51+ PROMPT="$base_prompt$gitinfo$nl$post_prompt"
52+}
53+
54+prompt_setup_pygmalion
55+
56+