Not for normies
| 1 | autoload -U add-zsh-hook |
| 2 | autoload -Uz vcs_info |
| 3 | |
| 4 | local c0=$(printf "\033[0m") |
| 5 | local c1=$(printf "\033[38;5;215m") |
| 6 | local c2=$(printf "\033[38;5;209m") |
| 7 | local c3=$(printf "\033[38;5;203m") |
| 8 | local c4=$(printf "\033[33;4m") |
| 9 | local c5=$(printf "\033[38;5;137m") |
| 10 | local c6=$(printf "\033[38;5;240m") |
| 11 | local c7=$(printf "\033[38;5;149m") |
| 12 | local c8=$(printf "\033[38;5;126m") |
| 13 | local c9=$(printf "\033[38;5;162m") |
| 14 | |
| 15 | if [ "$TERM" = "linux" ]; then |
| 16 | c1=$(printf "\033[34;1m") |
| 17 | c2=$(printf "\033[35m") |
| 18 | c3=$(printf "\033[31m") |
| 19 | c4=$(printf "\033[31;1m") |
| 20 | c5=$(printf "\033[32m") |
| 21 | c6=$(printf "\033[32;1m") |
| 22 | c7=$(printf "\033[33m") |
| 23 | c8=$(printf "\033[33;1m") |
| 24 | c9=$(printf "\033[34m") |
| 25 | fi |
| 26 | |
| 27 | zstyle ':vcs_info:*' actionformats \ |
| 28 | '%{$c8%}(%f%s)%{$c7%}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f ' |
| 29 | zstyle ':vcs_info:*' formats \ |
| 30 | "%{$c8%}%s%{$c7%}:%{$c7%}(%{$c9%}%b%{$c7%})%f " |
| 31 | zstyle ':vcs_info:*' enable git |
| 32 | |
| 33 | add-zsh-hook precmd prompt_jnrowe_precmd |
| 34 | |
| 35 | prompt_jnrowe_precmd () { |
| 36 | vcs_info |
| 37 | |
| 38 | if [ "${vcs_info_msg_0_}" = "" ]; then |
| 39 | dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$c4%}%/ %{$c0%}(%{$c5%}%?%{$c0%})" |
| 40 | PROMPT='${dir_status} ${ret_status}%{$reset_color%} |
| 41 | > ' |
| 42 | elif [[ $(git diff --cached --name-status 2>/dev/null ) != "" ]]; then |
| 43 | dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$c4%}%/ %{$c0%}(%{$c5%}%?%{$c0%})" |
| 44 | PROMPT='${vcs_info_msg_0_} |
| 45 | ${dir_status} ${vcs_info_msg_0_}%{$reset_color%} |
| 46 | > ' |
| 47 | elif [[ $(git diff --name-status 2>/dev/null ) != "" ]]; then |
| 48 | dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$c4%}%/ %{$c0%}(%{$c5%}%?%{$c0%})" |
| 49 | PROMPT='${vcs_info_msg_0_} |
| 50 | ${dir_status}%{$reset_color%} |
| 51 | %{$c9%}·>%{$c0%} ' |
| 52 | else |
| 53 | dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$c4%}%/ %{$c0%}(%{$c5%}%?%{$c0%})" |
| 54 | PROMPT='${vcs_info_msg_0_} |
| 55 | ${dir_status} ${vcs_info_msg_0_}%{$reset_color%} |
| 56 | > ' |
| 57 | fi |
| 58 | } |