diff --git a/functions/appearance.zsh b/functions/appearance.zsh
deleted file mode 100644
index 277274d..0000000
--- a/functions/appearance.zsh
+++ /dev/null
@@ -1,16 +0,0 @@
-# Load and run colors.
-autoload -U colors
-colors -i
-
-# Set the default prompt theme.
-PS1="%n@%m:%~%# "
-
-# Set the default Git prompt theme.
-ZSH_THEME_GIT_PROMPT_PREFIX="git:("    # Prefix before the branch name.
-ZSH_THEME_GIT_PROMPT_SUFFIX=")"        # Suffix after the branch name.
-ZSH_THEME_GIT_PROMPT_DIRTY="*"         # Indicator to display if the branch is dirty.
-ZSH_THEME_GIT_PROMPT_CLEAN=""          # Indicator to display if the branch is clean.
-
-# Enable parameter, arithmentic expansion and command substitution in prompt.
-setopt prompt_subst
-
diff --git a/oh-my-zsh.zsh b/oh-my-zsh.zsh
index 67571dc..3980b64 100644
--- a/oh-my-zsh.zsh
+++ b/oh-my-zsh.zsh
@@ -5,11 +5,8 @@ if [[ "$TERM" == 'dumb' ]]; then
   DISABLE_COLOR='true'
 fi
 
-# Add all defined plugins to fpath.
-plugin=${plugin:=()}
-for plugin in $plugins; do
-  fpath=("$OMZ/plugins/$plugin" $fpath)
-done
+# Add functions to fpath.
+fpath+=(${OMZ}/plugins/${^plugins} $OMZ/themes/*(/))
 
 # Load and run compinit.
 autoload -Uz compinit && compinit -i
@@ -26,18 +23,8 @@ for plugin in $plugins; do
   fi
 done
 
-# Load the theme.
-if [[ "$ZSH_THEME" == "random" ]]; then
-  themes=($OMZ/themes/**/*.theme.zsh)
-  theme_index=${#themes[@]}
-  (( theme_index=((RANDOM % theme_index) + 1) ))
-  random_theme="${themes[$theme_index]}"
-  source "$random_theme"
-else
-  if [[ -f "$OMZ/themes/$ZSH_THEME/$ZSH_THEME.theme.zsh" ]]; then
-    source "$OMZ/themes/$ZSH_THEME/$ZSH_THEME.theme.zsh"
-  fi
-fi
+# Load and run the prompt theming system.
+autoload -Uz promptinit && promptinit -i
 
 # Compile zcompdump, if modified, to increase startup speed.
 if [[ "$HOME/.zcompdump" -nt "$HOME/.zcompdump.zwc" ]] || [[ ! -e "$HOME/.zcompdump.zwc" ]]; then
diff --git a/templates/zshrc.template.zsh b/templates/zshrc.template.zsh
index 99b9daf..510fcf9 100644
--- a/templates/zshrc.template.zsh
+++ b/templates/zshrc.template.zsh
@@ -1,24 +1,25 @@
 # Path to oh-my-zsh.
-export OMZ="$HOME/.oh-my-zsh"
-
-# Set the name of the theme to load (see $OMZ/themes/).
-# Setting it to 'random' loads a random theme.
-export ZSH_THEME="robbyrussell"
+OMZ="$HOME/.oh-my-zsh"
 
 # Set to 'true' to enable case-sensitivity.
-export CASE_SENSITIVE='false'
+CASE_SENSITIVE='false'
 
 # Set to 'true' to disable color (auto set on dumb terminals).
-export DISABLE_COLOR='false'
+DISABLE_COLOR='false'
 
 # Set to 'true' to disable auto setting the tab and window titles.
-export DISABLE_AUTO_TITLE='false'
+DISABLE_AUTO_TITLE='false'
 
 # Set the plugins to load (see $OMZ/plugins/).
-# Example: plugins=(rails git textmate ruby lighthouse)
+# Example: plugins=(git lighthouse rails ruby textmate)
 plugins=(git)
 
+# This will make you scream: OH MY ZSH!
 source "$OMZ/oh-my-zsh.zsh"
 
+# Load the prompt theme (type prompt -l to list all themes).
+# Setting it to 'random' loads a random theme.
+[[ "$TERM" != 'dumb' ]] && prompt sorin || prompt off
+
 # Customize to your needs...
 
diff --git a/themes/minimal/minimal.theme.zsh b/themes/minimal/minimal.theme.zsh
deleted file mode 100644
index d3c9e36..0000000
--- a/themes/minimal/minimal.theme.zsh
+++ /dev/null
@@ -1,15 +0,0 @@
-ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[white]%}["
-ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}"
-ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}"
-ZSH_THEME_GIT_PROMPT_CLEAN=""
-
-#Customized git status, oh-my-zsh currently does not allow render dirty status before branch
-git_custom_status() {
-  local cb=$(current_branch)
-  if [ -n "$cb" ]; then
-    echo "- $ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
-  fi
-}
-
-
-PROMPT='%2~ $(git_custom_status) »%b '
diff --git a/themes/minimal/prompt_minimal_setup b/themes/minimal/prompt_minimal_setup
new file mode 100644
index 0000000..765d2fa
--- /dev/null
+++ b/themes/minimal/prompt_minimal_setup
@@ -0,0 +1,35 @@
+function +vi-git-status() {
+  # Untracked files.
+  if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
+    hook_com[unstaged]='%F{red}●%f'
+  fi
+}
+
+function prompt_minimal_precmd () {
+  setopt noxtrace noksharrays localoptions
+  vcs_info
+}
+
+function prompt_minimal_setup() {
+  setopt noxtrace noksharrays localoptions
+  prompt_opts=(cr subst percent)
+
+  autoload -Uz add-zsh-hook
+  autoload -Uz vcs_info
+
+  add-zsh-hook precmd prompt_minimal_precmd
+
+  zstyle ':vcs_info:*' enable bzr git hg svn
+  zstyle ':vcs_info:*' check-for-changes true
+  zstyle ':vcs_info:*' stagedstr '%F{green}●%f'
+  zstyle ':vcs_info:*' unstagedstr '%F{yellow}●%f'
+  zstyle ':vcs_info:*' formats ' - [%b%c%u]'
+  zstyle ':vcs_info:*' actionformats " - [%b%c%u|%F{cyan}%a%f]"
+  zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b|%F{cyan}%r%f'
+  zstyle ':vcs_info:git*+set-message:*' hooks git-status
+
+  PROMPT='%2~${vcs_info_msg_0_} » '
+}
+
+prompt_minimal_setup "$@"
+
diff --git a/themes/nicoulaj/nicoulaj.theme.zsh b/themes/nicoulaj/nicoulaj.theme.zsh
deleted file mode 100644
index 333aa5e..0000000
--- a/themes/nicoulaj/nicoulaj.theme.zsh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env zsh
-# ------------------------------------------------------------------------------
-# Prompt for the Zsh shell:
-#   * One line.
-#   * VCS info on the right prompt.
-#   * Only shows the path on the left prompt by default.
-#   * Crops the path to a defined length and only shows the path relative to
-#     the current VCS repository root.
-#   * Wears a different color wether the last command succeeded/failed.
-#   * Shows user@hostname if connected through SSH.
-#   * Shows if logged in as root or not.
-# ------------------------------------------------------------------------------
-
-# Customizable parameters.
-PROMPT_PATH_MAX_LENGTH=30
-PROMPT_DEFAULT_END=❯
-PROMPT_ROOT_END=❯❯❯
-PROMPT_SUCCESS_COLOR=$FG[071]
-PROMPT_FAILURE_COLOR=$FG[124]
-PROMPT_VCS_INFO_COLOR=$FG[242]
-
-# Set required options.
-setopt promptsubst
-
-# Load required modules.
-autoload -U add-zsh-hook
-autoload -Uz vcs_info
-
-# Add hook for calling vcs_info before each command.
-add-zsh-hook precmd vcs_info
-
-# Set vcs_info parameters.
-zstyle ':vcs_info:*' enable hg bzr git
-zstyle ':vcs_info:*:*' check-for-changes true # Can be slow on big repos.
-zstyle ':vcs_info:*:*' unstagedstr '!'
-zstyle ':vcs_info:*:*' stagedstr '+'
-zstyle ':vcs_info:*:*' actionformats "%S" "%r/%s/%b %u%c (%a)"
-zstyle ':vcs_info:*:*' formats "%S" "%r/%s/%b %u%c"
-zstyle ':vcs_info:*:*' nvcsformats "%~" ""
-
-# Define prompts.
-PROMPT="%(0?.%{$PROMPT_SUCCESS_COLOR%}.%{$PROMPT_FAILURE_COLOR%})${SSH_TTY:+[%n@%m]}%{$FX[bold]%}%$PROMPT_PATH_MAX_LENGTH<..<"'${vcs_info_msg_0_%%.}'"%<<%(!.$PROMPT_ROOT_END.$PROMPT_DEFAULT_END)%{$FX[no-bold]%}%{$FX[reset]%} "
-RPROMPT="%{$PROMPT_VCS_INFO_COLOR%}"'$vcs_info_msg_1_'"%{$FX[reset]%}"
diff --git a/themes/nicoulaj/prompt_nicoulaj_setup b/themes/nicoulaj/prompt_nicoulaj_setup
new file mode 100644
index 0000000..71bbad3
--- /dev/null
+++ b/themes/nicoulaj/prompt_nicoulaj_setup
@@ -0,0 +1,47 @@
+# ------------------------------------------------------------------------------
+# Prompt for ZSH:
+#   * One line.
+#   * VCS info on the right prompt.
+#   * Only shows the path on the left prompt by default.
+#   * Crops the path to a defined length and only shows the path relative to
+#     the current VCS repository root.
+#   * Wears a different color wether the last command succeeded/failed.
+#   * Shows user@hostname if connected through SSH.
+#   * Shows if logged in as root or not.
+# ------------------------------------------------------------------------------
+
+function prompt_nicoulaj_setup() {
+  setopt noxtrace noksharrays localoptions
+  prompt_opts=(cr subst percent)
+
+  # Load required modules.
+  autoload -Uz add-zsh-hook
+  autoload -Uz vcs_info
+
+  # Add hook for calling vcs_info before each command.
+  add-zsh-hook precmd vcs_info
+
+  # Customizable parameters.
+  local max_path_chars=30
+  local user_char='❯'
+  local root_char='❯❯❯'
+  local success_color='%F{071}'
+  local failure_color='%F{124}'
+  local vcs_info_color='%F{242}'
+
+  # Set vcs_info parameters.
+  zstyle ':vcs_info:*' enable bzr git hg svn
+  zstyle ':vcs_info:*:*' check-for-changes true # Can be slow on big repos.
+  zstyle ':vcs_info:*:*' unstagedstr '!'
+  zstyle ':vcs_info:*:*' stagedstr '+'
+  zstyle ':vcs_info:*:*' actionformats "%S" "%r/%s/%b %u%c (%a)"
+  zstyle ':vcs_info:*:*' formats "%S" "%r/%s/%b %u%c"
+  zstyle ':vcs_info:*:*' nvcsformats "%~" ""
+
+  # Define prompts.
+  PROMPT="%(?.${success_color}.${failure_color})${SSH_TTY:+[%n@%m]}%B%${max_path_chars}<...<"'${vcs_info_msg_0_%%.}'"%<<%(!.${root_char}.${user_char})%b%f "
+  RPROMPT="${vcs_info_color}"'${vcs_info_msg_1_}'"%f"
+}
+
+prompt_nicoulaj_setup "$@"
+
diff --git a/themes/sorin/prompt_sorin_setup b/themes/sorin/prompt_sorin_setup
new file mode 100644
index 0000000..72e8a96
--- /dev/null
+++ b/themes/sorin/prompt_sorin_setup
@@ -0,0 +1,34 @@
+# ------------------------------------------------------------------------------
+#          FILE:  prompt_sorin_setup
+#   DESCRIPTION:  oh-my-zsh theme file.
+#        AUTHOR:  Sorin Ionescu <sorin.ionescu@gmail.com>
+#       VERSION:  1.0.4
+#    SCREENSHOT:  http://i.imgur.com/aipDQ.png
+# ------------------------------------------------------------------------------
+
+
+function prompt_sorin_setup() {
+  setopt localoptions noxtrace noksharrays
+  prompt_opts=(cr subst percent)
+  
+  MODE_INDICATOR="%B%F{red}❮%f%b%F{red}❮❮%f"
+  ZSH_THEME_GIT_PROMPT_SHA_BEFORE=""
+  ZSH_THEME_GIT_PROMPT_SHA_AFTER=""
+  ZSH_THEME_GIT_PROMPT_AHEAD=""
+  ZSH_THEME_GIT_PROMPT_DIRTY=""
+  ZSH_THEME_GIT_PROMPT_CLEAN=""
+  ZSH_THEME_GIT_PROMPT_PREFIX=" %F{blue}git%f:%F{red}"
+  ZSH_THEME_GIT_PROMPT_SUFFIX="%f"
+  ZSH_THEME_GIT_PROMPT_ADDED="%F{green} ✚%f"
+  ZSH_THEME_GIT_PROMPT_MODIFIED="%F{blue} ✹%f"
+  ZSH_THEME_GIT_PROMPT_DELETED="%F{red} ✖%f"
+  ZSH_THEME_GIT_PROMPT_RENAMED="%F{magenta} ➜%f"
+  ZSH_THEME_GIT_PROMPT_UNMERGED="%F{yellow} ═%f"
+  ZSH_THEME_GIT_PROMPT_UNTRACKED="%F{cyan} ✭%f"
+
+  PROMPT='%F{cyan}%~%f$(git-prompt-info) %(!.%B%F{red}#%f%b.%B%F{green}❯%f%b) '
+  RPROMPT='%(?::%F{red}⏎%f)$(git-prompt-status)'
+}
+
+prompt_sorin_setup "$@"
+
diff --git a/themes/sorin/sorin.theme.zsh b/themes/sorin/sorin.theme.zsh
deleted file mode 100644
index a63a984..0000000
--- a/themes/sorin/sorin.theme.zsh
+++ /dev/null
@@ -1,48 +0,0 @@
-# ------------------------------------------------------------------------------
-#          FILE:  sorin.zsh-theme
-#   DESCRIPTION:  oh-my-zsh theme file.
-#        AUTHOR:  Sorin Ionescu (sorin.ionescu@gmail.com)
-#       VERSION:  1.0.3
-#    SCREENSHOT:  http://i.imgur.com/aipDQ.png
-# ------------------------------------------------------------------------------
-
-
-if [[ "$DISABLE_COLOR" != "true" ]]; then
-  MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}"
-  local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}"
-
-  PROMPT='%{$fg[cyan]%}%c$(git_prompt_info) %(!.%{$fg_bold[red]%}#.%{$fg_bold[green]%}❯)%{$reset_color%} '
-
-  ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[blue]%}git%{$reset_color%}:%{$fg[red]%}"
-  ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
-  ZSH_THEME_GIT_PROMPT_DIRTY=""
-  ZSH_THEME_GIT_PROMPT_CLEAN=""
-
-  RPROMPT='${return_status}$(git_prompt_status)%{$reset_color%}'
-
-  ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚"
-  ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹"
-  ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖"
-  ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜"
-  ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═"
-  ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭"
-else
-  MODE_INDICATOR="❮❮❮"
-  local return_status="%(?::⏎)"
-
-  PROMPT='%c$(git_prompt_info) %(!.#.❯) '
-
-  ZSH_THEME_GIT_PROMPT_PREFIX=" git:"
-  ZSH_THEME_GIT_PROMPT_SUFFIX=""
-  ZSH_THEME_GIT_PROMPT_DIRTY=""
-  ZSH_THEME_GIT_PROMPT_CLEAN=""
-
-  RPROMPT='${return_status}$(git_prompt_status)'
-
-  ZSH_THEME_GIT_PROMPT_ADDED=" ✚"
-  ZSH_THEME_GIT_PROMPT_MODIFIED=" ✹"
-  ZSH_THEME_GIT_PROMPT_DELETED=" ✖"
-  ZSH_THEME_GIT_PROMPT_RENAMED=" ➜"
-  ZSH_THEME_GIT_PROMPT_UNMERGED=" ═"
-  ZSH_THEME_GIT_PROMPT_UNTRACKED=" ✭"
-fi
diff --git a/themes/steeef/prompt_steeef_setup b/themes/steeef/prompt_steeef_setup
new file mode 100644
index 0000000..96ee7b0
--- /dev/null
+++ b/themes/steeef/prompt_steeef_setup
@@ -0,0 +1,110 @@
+# Prompt style and colors based on Steve Losh's Prose theme:
+# http://github.com/sjl/oh-my-zsh/blob/master/themes/prose.zsh-theme
+#
+# vcs_info modifications from Bart Trojanowski's zsh prompt:
+# http://www.jukie.net/bart/blog/pimping-out-zsh-prompt
+#
+# Git untracked files modification from Brian Carper:
+# http://briancarper.net/blog/570/git-info-in-your-zsh-prompt
+
+function virtualenv_info() {
+  if [[ -n "$VIRTUAL_ENV" ]]; then
+    echo '('`basename $VIRTUAL_ENV`') '
+  fi
+}
+
+function prompt_steeef_precmd() {
+  if [[ -n "$__PROMPT_STEEEF_VCS_UPDATE" ]] ; then
+    # Check for untracked files or updated submodules since vcs_info doesn't.
+    if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
+      __PROMPT_STEEEF_VCS_UPDATE=1
+      fmt_branch="(${__PROMPT_STEEEF_COLORS[1]}%b%f%u%c${__PROMPT_STEEEF_COLORS[4]}●%f)"
+    else
+      fmt_branch="(${__PROMPT_STEEEF_COLORS[1]}%b%f%u%c)"
+    fi
+    zstyle ':vcs_info:*:prompt:*' formats "${fmt_branch}"
+
+    vcs_info 'prompt'
+    __PROMPT_STEEEF_VCS_UPDATE=''
+  fi
+}
+
+function prompt_steeef_preexec() {
+  case "$(history $HISTCMD)" in
+    *git*)
+      __PROMPT_STEEEF_VCS_UPDATE=1
+      ;;
+    *svn*)
+      __PROMPT_STEEEF_VCS_UPDATE=1
+      ;;
+  esac
+}
+
+function prompt_steeef_chpwd() {
+  __PROMPT_STEEEF_VCS_UPDATE=1
+}
+
+function prompt_steeef_setup() {
+  setopt localoptions noxtrace noksharrays
+  prompt_opts=(cr subst percent)
+
+  autoload -Uz add-zsh-hook
+  autoload -Uz vcs_info
+
+  add-zsh-hook precmd prompt_steeef_precmd
+  add-zsh-hook preexec prompt_steeef_preexec
+  add-zsh-hook chpwd prompt_steeef_chpwd
+
+  __PROMPT_STEEEF_VCS_UPDATE=1
+
+  # Use extended color pallete if available.
+  if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then
+    __PROMPT_STEEEF_COLORS=(
+      "%F{81}"  # turquoise
+      "%F{166}" # orange
+      "%F{135}" # purple
+      "%F{161}" # hotpink
+      "%F{118}" # limegreen
+    )
+  else
+    __PROMPT_STEEEF_COLORS=(
+      "%F{cyan}"
+      "%F{yellow}"
+      "%F{magenta}"
+      "%F{red}"
+      "%F{green}"
+    )
+  fi
+
+  # Enable VCS systems you use.
+  zstyle ':vcs_info:*' enable bzr git hg svn
+
+  # check-for-changes can be really slow.
+  # You should disable it if you work with large repositories.
+  zstyle ':vcs_info:*:prompt:*' check-for-changes true
+
+  # Formats:
+  # %b - branchname
+  # %u - unstagedstr (see below)
+  # %c - stagedstr (see below)
+  # %a - action (e.g. rebase-i)
+  # %R - repository path
+  # %S - path in the repository
+  local fmt_branch="(${__PROMPT_STEEEF_COLORS[1]}%b%f%u%c)"
+  local fmt_action="(${__PROMPT_STEEEF_COLORS[5]}%a%f)"
+  local fmt_unstaged="${__PROMPT_STEEEF_COLORS[2]}●%f"
+  local fmt_staged="${__PROMPT_STEEEF_COLORS[5]}●%f"
+
+  zstyle ':vcs_info:*:prompt:*' unstagedstr   "${fmt_unstaged}"
+  zstyle ':vcs_info:*:prompt:*' stagedstr     "${fmt_staged}"
+  zstyle ':vcs_info:*:prompt:*' actionformats "${fmt_branch}${fmt_action}"
+  zstyle ':vcs_info:*:prompt:*' formats       "${fmt_branch}"
+  zstyle ':vcs_info:*:prompt:*' nvcsformats   ""
+
+  PROMPT="
+${__PROMPT_STEEEF_COLORS[3]}%n%f at ${__PROMPT_STEEEF_COLORS[2]}%m%f in ${__PROMPT_STEEEF_COLORS[5]}%~%f "'${vcs_info_msg_0_}'"
+"'$(virtualenv_info)'"$ "
+}
+
+prompt_steeef_setup "$@"
+
diff --git a/themes/steeef/steeef.theme.zsh b/themes/steeef/steeef.theme.zsh
deleted file mode 100644
index a2583b0..0000000
--- a/themes/steeef/steeef.theme.zsh
+++ /dev/null
@@ -1,100 +0,0 @@
-# prompt style and colors based on Steve Losh's Prose theme:
-# http://github.com/sjl/oh-my-zsh/blob/master/themes/prose.zsh-theme
-#
-# vcs_info modifications from Bart Trojanowski's zsh prompt:
-# http://www.jukie.net/bart/blog/pimping-out-zsh-prompt
-#
-# git untracked files modification from Brian Carper:
-# http://briancarper.net/blog/570/git-info-in-your-zsh-prompt
-
-function virtualenv_info {
-    [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
-}
-PR_GIT_UPDATE=1
-
-setopt prompt_subst
-autoload colors
-colors
-
-autoload -U add-zsh-hook
-autoload -Uz vcs_info
-
-#use extended color pallete if available
-if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then
-    turquoise="%F{81}"
-    orange="%F{166}"
-    purple="%F{135}"
-    hotpink="%F{161}"
-    limegreen="%F{118}"
-else
-    turquoise="$fg[cyan]"
-    orange="$fg[yellow]"
-    purple="$fg[magenta]"
-    hotpink="$fg[red]"
-    limegreen="$fg[green]"
-fi
-
-# enable VCS systems you use
-zstyle ':vcs_info:*' enable git svn
-
-# check-for-changes can be really slow.
-# you should disable it, if you work with large repositories
-zstyle ':vcs_info:*:prompt:*' check-for-changes true
-
-# set formats
-# %b - branchname
-# %u - unstagedstr (see below)
-# %c - stagedstr (see below)
-# %a - action (e.g. rebase-i)
-# %R - repository path
-# %S - path in the repository
-PR_RST="%{${reset_color}%}"
-FMT_BRANCH="(%{$turquoise%}%b%u%c${PR_RST})"
-FMT_ACTION="(%{$limegreen%}%a${PR_RST})"
-FMT_UNSTAGED="%{$orange%}●"
-FMT_STAGED="%{$limegreen%}●"
-
-zstyle ':vcs_info:*:prompt:*' unstagedstr   "${FMT_UNSTAGED}"
-zstyle ':vcs_info:*:prompt:*' stagedstr     "${FMT_STAGED}"
-zstyle ':vcs_info:*:prompt:*' actionformats "${FMT_BRANCH}${FMT_ACTION}"
-zstyle ':vcs_info:*:prompt:*' formats       "${FMT_BRANCH}"
-zstyle ':vcs_info:*:prompt:*' nvcsformats   ""
-
-
-function steeef_preexec {
-    case "$(history $HISTCMD)" in
-        *git*)
-            PR_GIT_UPDATE=1
-            ;;
-        *svn*)
-            PR_GIT_UPDATE=1
-            ;;
-    esac
-}
-add-zsh-hook preexec steeef_preexec
-
-function steeef_chpwd {
-    PR_GIT_UPDATE=1
-}
-add-zsh-hook chpwd steeef_chpwd
-
-function steeef_precmd {
-    if [[ -n "$PR_GIT_UPDATE" ]] ; then
-        # check for untracked files or updated submodules, since vcs_info doesn't
-        if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
-            PR_GIT_UPDATE=1
-            FMT_BRANCH="(%{$turquoise%}%b%u%c%{$hotpink%}●${PR_RST})"
-        else
-            FMT_BRANCH="(%{$turquoise%}%b%u%c${PR_RST})"
-        fi
-        zstyle ':vcs_info:*:prompt:*' formats       "${FMT_BRANCH}"
-
-        vcs_info 'prompt'
-        PR_GIT_UPDATE=
-    fi
-}
-add-zsh-hook precmd steeef_precmd
-
-PROMPT=$'
-%{$purple%}%n%{$reset_color%} at %{$orange%}%m%{$reset_color%} in %{$limegreen%}%~%{$reset_color%} $vcs_info_msg_0_
-$(virtualenv_info)$ '