]> git.rmz.io Git - dotfiles.git/blobdiff - zsh/lib/prompt.zsh
make: init zsh-syntax-highlighting submodule
[dotfiles.git] / zsh / lib / prompt.zsh
index 92b63a046fc00740544fad22adeec9697d74e50c..a1be82b931f4c2207fad384b7dc63c7246471977 100644 (file)
@@ -2,15 +2,19 @@
 setopt prompt_subst
 autoload colors; colors;
 
-hostcolor=green
+hostcolor=cyan
 [[ $(hostname) == "tardis" ]]  && hostcolor=red
 
 precmd() {
-  PROMPT='%T $(virtualenv_prompt)%n@%{$fg[$hostcolor]%}%m%(1j. $fg_bold[white]↵%{$fg_bold[red]%}%j.)%{$reset_color%}%-0>..>$(git_prompt_status)%>>
+  PROMPT='%T $(virtualenv_prompt)%n@%{$fg[$hostcolor]%}%m$(jobs_prompt)%-0>..>$(git_prompt_status)%>>
 %(?..%{$fg_bold[white]%}%?)%{$reset_color%}$(vi_prompt_info)%{%(!.$fg[red]❰.$fg[green]❱)%1G%} '
   RPROMPT='%{$fg[green]%}%~%{$reset_color%}'
 }
 
+jobs_prompt() {
+  printf '%s' "%(1j. $fg_bold[white]↵%{$fg_bold[red]%}%j.)%{$reset_color%}"
+}
+
 vi_prompt_info() {
   local vicmd="$fg_bold[green]❰$reset_color%1G"
   local viins="$fg_bold[blue]❱$reset_color%1G"
@@ -78,6 +82,13 @@ git_prompt_status() {
   (( behind > 0 )) && upstream_str+="%{$fg[blue]%} <$behind"
   git_status+="$upstream_str"
 
+  # Format push
+  push_ab=( $(git rev-list --left-right --count @...@{push} 2>/dev/null) )
+  if (( $? == 0 )); then
+    (( push_ab[1] > 0 )) && git_status+="%{$fg_bold[blue]%} ⮝$push_ab[1]"
+    (( push_ab[2] > 0 )) && git_status+="%{$fg_bold[blue]%} ⮟$push_ab[2]"
+  fi
+
   # Format stashed
   stashed=$(git stash list | wc -l)
   if (( stashed > 0 )) then