714cfb1db2966ddfc0330a09e620164189233b49

Author
Adam Lindberg <eproxus@gmail.com>
Committer
Adam Lindberg <eproxus@gmail.com>
Date

Message

Add guru theme

Diff

  1diff --git a/themes/guru.zsh-theme b/themes/guru.zsh-theme
  2new file mode 100644
  3index 0000000000000000000000000000000000000000..2a22235288514190bff2c309175851440f919ce7
  4--- /dev/null
  5+++ b/themes/guru.zsh-theme
  6@@ -0,0 +1,98 @@
  7+#-------------------------------------------------------------------------------
  8+# Guru theme for oh-my-zsh by Adam Lindberg
  9+# (Needs Git plugin for current_branch method)
 10+#-------------------------------------------------------------------------------
 11+
 12+
 13+# Color shortcuts
 14+R=$fg[red]
 15+Y=$fg[yellow]
 16+G=$fg[green]
 17+M=$fg[magenta]
 18+W=$fg[white]
 19+B=$fg[black]
 20+RB=$fg_bold[red]
 21+YB=$fg_bold[yellow]
 22+GB=$fg_bold[green]
 23+MB=$fg_bold[magenta]
 24+WB=$fg_bold[white]
 25+BB=$fg_bold[black]
 26+RESET=$reset_color
 27+
 28+if [ "$(whoami)" = "root" ]; then
 29+    PROMPTCOLOR="%{$RB%}" PREFIX="-!-";
 30+else
 31+    PROMPTCOLOR="%{$BB%}" PREFIX="---";
 32+fi
 33+
 34+local return_code="%(?..%{$R%}%? ↵%{$RESET%})"
 35+
 36+GIT_PREFIX="%{$YB%}‹"
 37+GIT_SUFFIX="%{$YB%}›"
 38+
 39+# Get the status of the working tree (copied and modified from git.zsh)
 40+custom_git_prompt_status() {
 41+  INDEX=$(git status --porcelain 2> /dev/null)
 42+  STATUS=""
 43+  # Non-staged
 44+  if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then
 45+    STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
 46+  fi
 47+  if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
 48+    STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
 49+  fi
 50+  if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
 51+    STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
 52+  fi
 53+  if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then
 54+    STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
 55+  elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then
 56+    STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
 57+  elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then
 58+    STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
 59+  fi
 60+  # Staged
 61+  if $(echo "$INDEX" | grep '^D  ' &> /dev/null); then
 62+    STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_DELETED$STATUS"
 63+  fi
 64+  if $(echo "$INDEX" | grep '^R  ' &> /dev/null); then
 65+    STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_RENAMED$STATUS"
 66+  fi
 67+  if $(echo "$INDEX" | grep '^M  ' &> /dev/null); then
 68+    STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_MODIFIED$STATUS"
 69+  fi
 70+  if $(echo "$INDEX" | grep '^A' &> /dev/null); then
 71+    STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_ADDED$STATUS"
 72+  fi
 73+  echo $STATUS
 74+}
 75+
 76+# get the name of the branch we are on (copied and modified from git.zsh)
 77+function custom_git_prompt() {
 78+  ref=$(git symbolic-ref HEAD 2> /dev/null) || return
 79+  echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(git_prompt_ahead)$(parse_git_dirty)$(custom_git_prompt_status)$ZSH_THEME_GIT_PROMPT_SUFFIX"
 80+}
 81+
 82+PROMPT='${PROMPTCOLOR}$PREFIX %2~ $(custom_git_prompt)%{$M%}%B»%b%{$RESET%} '
 83+RPS1="${return_code}"
 84+
 85+ZSH_THEME_GIT_PROMPT_PREFIX="%{$YB%}‹"
 86+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$YB%}›%{$RESET%} "
 87+
 88+ZSH_THEME_GIT_PROMPT_AHEAD="%{$BB%}➝"
 89+
 90+# Staged
 91+ZSH_THEME_GIT_PROMPT_STAGED_ADDED="%{$G%}A"
 92+ZSH_THEME_GIT_PROMPT_STAGED_MODIFIED="%{$G%}M"
 93+ZSH_THEME_GIT_PROMPT_STAGED_RENAMED="%{$G%}R"
 94+ZSH_THEME_GIT_PROMPT_STAGED_DELETED="%{$G%}D"
 95+
 96+# Not-staged
 97+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$R%}??"
 98+ZSH_THEME_GIT_PROMPT_MODIFIED="%{$R%}M"
 99+ZSH_THEME_GIT_PROMPT_DELETED="%{$R%}D"
100+ZSH_THEME_GIT_PROMPT_UNMERGED="%{$R%}UU"
101+
102+ZSH_THEME_GIT_PROMPT_DIRTY="%{$R%}* "
103+
104+ZSH_THEME_GIT_PROMPT_CLEAN=""