Parent directory

linuxonly.zsh-theme

1954 bytes
 1autoload -U add-zsh-hook
 2autoload -Uz vcs_info
 3
 4local c0=$(printf "\033[0m")
 5local c1=$(printf "\033[38;5;215m")
 6local c2=$(printf "\033[38;5;209m")
 7local c3=$(printf "\033[38;5;203m")
 8local c4=$(printf "\033[33;4m")
 9local c5=$(printf "\033[38;5;137m")
10local c6=$(printf "\033[38;5;240m")
11local c7=$(printf "\033[38;5;149m")
12local c8=$(printf "\033[38;5;126m")
13local c9=$(printf "\033[38;5;162m")
14
15if [ "$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")
25fi
26
27zstyle ':vcs_info:*' actionformats \
28    '%{$c8%}(%f%s)%{$c7%}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
29zstyle ':vcs_info:*' formats \
30    "%{$c8%}%s%{$c7%}:%{$c7%}(%{$c9%}%b%{$c7%})%f "
31zstyle ':vcs_info:*' enable git
32
33add-zsh-hook precmd prompt_jnrowe_precmd
34
35prompt_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}