Browse Source

Added risto theme and made git.zsh themable

 * git.zsh is now themable:
   * git_prompt_info() now will look in the following variables for
     formatting strings:
     * ZSH_THEME_GIT_PROMPT_PREFIX - Prefix for the prompt (before the
       branch name)
     * ZSH_THEME_GIT_PROMPT_SUFFIX - The very end of the prompt
     * ZSH_THEME_GIT_PROMPT_DIRTY - Displayed when the branch is dirty
     * ZSH_THEME_GIT_PROMPT_CLEAN - Displayed when the branch is clean
 * Updated geoffgarside, robbyrussell, and maran to work with new git
   theme
 * Added the Risto theme, which is very similar to a number of bash
   prompts, and allows me to use zsh in with out my co-workers knowing I
   have the advantage. Think of it as a ninja theme.
Christopher Sexton 14 years ago
parent
commit
85a4e30289
5 changed files with 31 additions and 4 deletions
  1. 13 3
      git.zsh
  2. 3 0
      themes/geoffgarside.zsh-theme
  3. 4 1
      themes/maran.zsh-theme
  4. 6 0
      themes/risto.zsh-theme
  5. 5 0
      themes/robbyrussell.zsh-theme

+ 13 - 3
git.zsh

@@ -1,16 +1,26 @@
+#
+ZSH_THEME_GIT_PROMPT_PREFIX="git:("
+ZSH_THEME_GIT_PROMPT_SUFFIX=")"
+ZSH_THEME_GIT_PROMPT_DIRTY="*"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+
 # get the name of the branch we are on
 function git_prompt_info() {
   if [[ -d .git ]]; then
     ref=$(git symbolic-ref HEAD 2> /dev/null) || return
     branch=${ref#refs/heads/}
-    CURRENT_BRANCH="git:(%{$fg[red]%}${branch}%{$fg[blue]%})%{$reset_color%}$(parse_git_dirty)"
+    CURRENT_BRANCH="$ZSH_THEME_GIT_PROMPT_PREFIX${branch}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
   else
     CURRENT_BRANCH=''
   fi
 
   echo $CURRENT_BRANCH
 }
-
 parse_git_dirty () {
-  [[ $(git status | tail -n1) != "nothing to commit (working directory clean)" ]] && echo " %{$fg[yellow]%}✗%{$reset_color%}"
+  if [[ $(git status  | tail -n1) != "nothing to commit (working directory clean)" ]]; then
+    echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
+  else
+    echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
+  fi
 }
+

+ 3 - 0
themes/geoffgarside.zsh-theme

@@ -1,2 +1,5 @@
 # PROMPT="[%*] %n:%c $(git_prompt_info)%(!.#.$) "
 PROMPT='[%*] %{$fg[cyan]%}%n%{$reset_color%}:%{$fg[green]%}%c%{$reset_color%}$(git_prompt_info) %(!.#.$) '
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[yellow]%}git:("
+ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%}"

+ 4 - 1
themes/maran.zsh-theme

@@ -1,3 +1,6 @@
 # Theme with full path names and hostname
 # Handy if you work on different servers all the time;
-PROMPT='%{$fg[cyan]%}%n%{$reset_color%}@$fg[yellow]%}%M:%{$fg[green]%}%/%{$reset_color%} $(git_prompt_info) %(!.#.$) '
+PROMPT='%{$fg[cyan]%}%n%{$reset_color%}@$fg[yellow]%}%M:%{$fg[green]%}%/%{$reset_color%} $(git_prompt_info) %(!.#.$) '
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[cyan]%}git:("
+ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%}"

+ 6 - 0
themes/risto.zsh-theme

@@ -0,0 +1,6 @@
+# -*- sh -*- vim:set ft=sh ai et sw=4 sts=4:
+# It might be bash like, but I can't have my co-workers knowing I use zsh
+PROMPT='%{$fg[green]%}%n@%m:%{$fg_bold[blue]%}%2~ $(git_prompt_info)%{$reset_color%}%(!.#.$) '
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[red]%}‹"
+ZSH_THEME_GIT_PROMPT_SUFFIX="›%{$reset_color%}"

+ 5 - 0
themes/robbyrussell.zsh-theme

@@ -1 +1,6 @@
 PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"