2 # Copyright Armaan Bhojwani 2021 <me@armaanb.net>
3 # MIT licensed, see the LICENSE file for more information.
5 #######################################################################
7 #######################################################################
27 INCLUDE="admone-pwd;admone-vcs;admone-exit-code"
28 FORMAT_LOWER="%B%F{%(?.cyan.red)}"
31 FORMAT_SHORT="%B%F{%(?.cyan.red)}"
34 zstyle ':vcs_info:git:*' formats '%b%u%c'
35 zstyle ':vcs_info:git:*' actionformats '%b|%a%u%c'
36 zstyle ':vcs_info:*' unstagedstr ' *'
37 zstyle ':vcs_info:*' stagedstr ' +'
39 #######################################################################
41 #######################################################################
47 echo "%F{green}${vcs_info_msg_0_}%f"
50 ([[ $SHOW_0_EXIT_CODE == "1" ]] && echo "%(?,%F{cyan}%?%f,%F{red}%?%f)") ||
51 echo "%(?,,%F{red}%?%f)"
63 #######################################################################
65 #######################################################################
67 # Cursor shape depends on vi mode
68 function zle-keymap-select zle-line-init zle-line-finish {
72 print -n -- "\E]50;CursorShape=0\C-G"
76 print -n -- "\E]50;CursorShape=1\C-G"
83 set-twoline-prompt() {
86 lower="${PRE_LOWER}${FORMAT_LOWER}${PROMPT_CHAR}%f%b "
88 # Add in functions as defined above
89 upper+="${BLOCK_LEFT}$($THE_COMMAND)${BLOCK_RIGHT}"
91 for (( i = 0; i < $NUM_FUNCS; i++ )); do
92 THE_COMMAND="$(echo $INCLUDE | cut -d ';' -f $(($i + 2)))"
93 upper+="${BLOCK_SEPARATOR}${BLOCK_LEFT}$(${THE_COMMAND})${BLOCK_RIGHT}"
97 PROMPT=${upper}$'\n'${lower}
100 set-oneline-prompt() {
101 PROMPT="${FORMAT_LOWER}${PROMPT_CHAR}%f%b "
104 for (( i = 0; i <= $NUM_FUNCS; i++ )); do
105 THE_COMMAND="$(echo $INCLUDE | cut -d ';' -f $(($i + 1)))"
106 RPROMPT+="${BLOCK_LEFT}$($THE_COMMAND)${BLOCK_RIGHT}"
112 NUM_FUNCS="$(echo $INCLUDE | grep -o ';' | wc -l)"
113 THE_COMMAND="$(echo $INCLUDE | cut -d ';' -f 1)"
115 if [[ $TWO_LINE == "1" ]]; then
121 [[ -v PS1_NL ]] && echo || PS1_NL=
124 if [[ ! $(echo $INCLUDE | grep -q "vcs") ]]; then
125 zstyle ':vcs_info:*' check-for-changes true
126 autoload -Uz add-zsh-hook vcs-info
127 add-zsh-hook precmd vcs_info
130 autoload -Uz add-zsh-hook
131 add-zsh-hook precmd set-prompt
134 zle -N zle-line-finish
135 zle -N zle-keymap-select