summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.textile24
-rw-r--r--lib/aliases.zsh32
-rw-r--r--lib/completion.zsh22
-rw-r--r--lib/correction.zsh2
-rw-r--r--lib/functions.zsh37
-rw-r--r--lib/git.zsh26
-rw-r--r--lib/history.zsh4
-rw-r--r--lib/key-bindings.zsh2
-rw-r--r--lib/rvm.zsh7
-rw-r--r--lib/spectrum.zsh20
-rw-r--r--oh-my-zsh.sh6
-rw-r--r--plugins/brew.plugin.zsh (renamed from functions/_brew)28
-rw-r--r--plugins/git.plugin.zsh32
-rw-r--r--plugins/lighthouse.plugin.zsh16
-rw-r--r--plugins/mysql-macports.plugin.zsh6
-rw-r--r--plugins/osx.plugin.zsh11
-rw-r--r--plugins/rails.plugin.zsh (renamed from lib/rake_completion.zsh)32
-rw-r--r--plugins/ruby.plugin.zsh4
-rw-r--r--plugins/textmate.plugin.zsh14
-rw-r--r--plugins/vi-mode.plugin.zsh22
-rw-r--r--templates/zshrc.zsh-template4
-rw-r--r--themes/Soliah.zsh-theme6
-rw-r--r--themes/afowler.zsh-theme10
-rw-r--r--themes/arrow.zsh-theme14
-rw-r--r--themes/aussiegeek.zsh-theme8
-rw-r--r--themes/candy.zsh-theme7
-rw-r--r--themes/dallas.zsh-theme26
-rw-r--r--themes/daveverwer.zsh-theme7
-rw-r--r--themes/dst.zsh-theme16
-rw-r--r--themes/dstufft.zsh-theme19
-rw-r--r--themes/duellj.zsh-theme8
-rw-r--r--themes/eastwood.zsh-theme19
-rw-r--r--themes/edvardm.zsh-theme6
-rw-r--r--themes/fletcherm.zsh-theme12
-rw-r--r--themes/jbergantine.zsh-theme6
-rw-r--r--themes/josh.zsh-theme43
-rw-r--r--themes/jreese.zsh-theme16
-rw-r--r--themes/linuxonly80
-rw-r--r--themes/macovsky-ruby.zsh-theme8
-rw-r--r--themes/macovsky.zsh-theme4
-rw-r--r--themes/mgutz.zsh-theme6
-rw-r--r--themes/mikeh.zsh-theme23
-rw-r--r--themes/mrtazz.zsh-theme7
-rw-r--r--themes/pmcgee.zsh-theme16
-rw-r--r--themes/rgm.zsh-theme8
-rw-r--r--themes/skaro.zsh-theme7
-rw-r--r--themes/sporty_256.zsh-theme13
-rw-r--r--themes/takashiyoshida.zsh-theme27
-rw-r--r--themes/thomasjbradley.zsh-theme29
-rw-r--r--themes/wezm+.zsh-theme7
-rwxr-xr-xtools/install.sh13
-rw-r--r--tools/upgrade.sh7
52 files changed, 669 insertions, 160 deletions
diff --git a/README.textile b/README.textile
index 950f8861b..8b1b6875a 100644
--- a/README.textile
+++ b/README.textile
@@ -4,6 +4,8 @@ bq. "OH MY ZSHELL!"
h2. Setup
+@oh-my-zsh@ should work with any recent release of "zsh":http://www.zsh.org/, the minimum recommended version is 4.3.9.
+
h3. The automatic installer... (do you trust me?)
@wget http://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh@
@@ -25,22 +27,19 @@ h3. The manual way
@chsh -s /bin/zsh@
-4. Start / restart zsh (open a new terminal is easy enough..)
+4. Start / restart zsh (open a new terminal is easy enough...)
h3. Problems?
-You _might_ need to modify your PATH in ~/.zshrc if you're not able to find some commands after switching to oh-my-zsh.
+You _might_ need to modify your PATH in ~/.zshrc if you're not able to find some commands after switching to _Oh My Zsh_.
h2. Usage
-TODO: Update this..
-
-* Rake autocomplete: @rake (tab)@. Will generate a cache of all your rake tasks and then let you auto-complete and/or select the task to run.
-* ssh autocomplete: @ssh (tab)@ or @scp (tab)@
-* Git branch, it'll tell you which branch you're in when you're in a git repository directory.
+* enable the plugins you want in your @~/.zshrc@ (take a look at @plugins/@ to see what's possible)
+** example: @plugins=(git osx ruby)@
* Theme support: Change the @ZSH_THEME@ environment variable in @~/.zshrc@.
-** Take a look at the "current themes":http://wiki.github.com/robbyrussell/oh-my-zsh/themes that come bundled with Oh My Zsh.
-* much much more..
+** Take a look at the "current themes":http://wiki.github.com/robbyrussell/oh-my-zsh/themes that come bundled with _Oh My Zsh_.
+* much much more... take a look at @lib/@ what _Oh My Zsh_ offers...
h2. Useful
@@ -49,6 +48,7 @@ the "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty tasty fo
h3. Customization
If you want to override any of the default behavior, just add a new file (ending in @.zsh@) into the @custom/@ directory.
+If you have many functions which go good together you can put them as a *.plugin.zsh file in the @plugin/@ directory and then enable this plugin.
h3. Uninstalling
@@ -66,8 +66,4 @@ I'm far from being a zsh-expert and suspect there are many ways to improve. If y
h3. Send us your theme!
-I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.
-
-h3. Todo from imajes:
-
-* need to make the title bar support git folder \ No newline at end of file
+I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory. \ No newline at end of file
diff --git a/lib/aliases.zsh b/lib/aliases.zsh
index f97daf41a..d2d3aed81 100644
--- a/lib/aliases.zsh
+++ b/lib/aliases.zsh
@@ -1,27 +1,13 @@
-#!/bin/zsh
-
# Push and pop directories on directory stack
alias pu='pushd'
alias po='popd'
-alias ss='thin --stats "/thin/stats" start'
-alias sg='ruby script/generate'
-alias sd='ruby script/destroy'
-alias sp='ruby script/plugin'
-alias ssp='ruby script/spec'
-alias rdbm='rake db:migrate'
-alias sc='ruby script/console'
-alias sd='ruby script/server --debugger'
-alias devlog='tail -f log/development.log'
-
# Basic directory operations
-alias .='pwd'
alias ...='cd ../..'
alias -- -='cd -'
# Super user
alias _='sudo'
-alias ss='sudo su -'
#alias g='grep -in'
@@ -31,23 +17,7 @@ alias history='fc -l 1'
# List direcory contents
alias lsa='ls -lah'
alias l='ls -la'
-alias ll='ls -alr'
+alias ll='ls -l'
alias sl=ls # often screw this up
-alias sgem='sudo gem'
-
-# Find ruby file
-alias rfind='find . -name *.rb | xargs grep -n'
alias afind='ack-grep -il'
-
-# Git and svn mix
-alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
-
-# TextMate
-alias et='mate . &'
-alias ett='mate app config lib db public spec test Rakefile Capfile Todo &'
-alias etp='mate app config lib db public spec test vendor/plugins vendor/gems Rakefile Capfile Todo &'
-alias etts='mate app config lib db public script spec test vendor/plugins vendor/gems Rakefile Capfile Todo &'
-
-# Editor Ruby file in TextMate
-alias mr='mate CHANGELOG app config db lib public script spec test'
diff --git a/lib/completion.zsh b/lib/completion.zsh
index 46b6d8f65..cba90179f 100644
--- a/lib/completion.zsh
+++ b/lib/completion.zsh
@@ -1,15 +1,15 @@
## fixme - the load process here seems a bit bizarre
-setopt noautomenu
+unsetopt menu_complete # do not autoselect the first completion entry
+unsetopt flowcontrol
+setopt auto_menu # show completion menu on succesive tab press
setopt complete_in_word
setopt always_to_end
-unsetopt flowcontrol
-
WORDCHARS=''
autoload -U compinit
-compinit
+compinit -i
zmodload -i zsh/complist
@@ -23,16 +23,10 @@ fi
zstyle ':completion:*' list-colors ''
-
-unsetopt MENU_COMPLETE
-#setopt AUTO_MENU
-
# should this be in keybindings?
bindkey -M menuselect '^o' accept-and-infer-next-history
-zstyle ':completion:*:*:*:*:*' menu yes select
-# zstyle ':completion:*:*:*:*:processes' force-list always
-
+zstyle ':completion:*:*:*:*:*' menu select
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w"
@@ -41,9 +35,3 @@ if [ -f ~/.ssh/known_hosts ]; then
zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts )
zstyle ':completion:*:*:(ssh|scp):*:*' hosts `sed 's/^\([^ ,]*\).*$/\1/' ~/.ssh/known_hosts`
fi
-
-# Complete on history
-#zstyle ':completion:*:history-words' stop yes
-#zstyle ':completion:*:history-words' remove-all-dups yes
-#zstyle ':completion:*:history-words' list false
-#zstyle ':completion:*:history-words' menu yes
diff --git a/lib/correction.zsh b/lib/correction.zsh
index a96f7ffd8..fc60dcdbd 100644
--- a/lib/correction.zsh
+++ b/lib/correction.zsh
@@ -6,3 +6,5 @@ alias mysql='nocorrect mysql'
alias mkdir='nocorrect mkdir'
alias gist='nocorrect gist'
alias heroku='nocorrect heroku'
+alias ebuild='nocorrect ebuild'
+alias hpodder='nocorrect hpodder'
diff --git a/lib/functions.zsh b/lib/functions.zsh
index 74b93f00e..fcbe994be 100644
--- a/lib/functions.zsh
+++ b/lib/functions.zsh
@@ -21,10 +21,6 @@ function preexec {
title $cmd[1]:t "$cmd[2,-1]"
}
-function remote_console() {
- /usr/bin/env ssh $1 "( cd $2 && ruby script/console production )"
-}
-
function zsh_stats() {
history | awk '{print $2}' | sort | uniq -c | sort -rn | head
}
@@ -37,41 +33,8 @@ function upgrade_oh_my_zsh() {
/bin/sh $ZSH/tools/upgrade.sh
}
-function tab() {
- osascript 2>/dev/null <<EOF
- tell application "System Events"
- tell process "Terminal" to keystroke "t" using command down
- end
- tell application "Terminal"
- activate
- do script with command "cd \"$PWD\"; $*" in window 1
- end tell
-EOF
-}
-
function take() {
mkdir -p $1
cd $1
}
-function tm() {
- cd $1
- mate $1
-}
-
-# To use: add a .lighthouse file into your directory with the URL to the
-# individual project. For example:
-# https://rails.lighthouseapp.com/projects/8994
-# Example usage: http://screencast.com/t/ZDgwNDUwNT
-open_lighthouse_ticket () {
- if [ ! -f .lighthouse-url ]; then
- echo "There is no .lighthouse file in the current directory..."
- return 0;
- else
- lighthouse_url=$(cat .lighthouse-url);
- echo "Opening ticket #$1";
- `open $lighthouse_url/tickets/$1`;
- fi
-}
-
-alias lho='open_lighthouse_ticket'
diff --git a/lib/git.zsh b/lib/git.zsh
index 629a08b0e..889dd98df 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -5,33 +5,9 @@ function git_prompt_info() {
}
parse_git_dirty () {
- if [[ $((git status 2> /dev/null) | tail -n1) != "nothing to commit (working directory clean)" ]]; then
+ if [[ -n $(git status -s 2> /dev/null) ]]; then
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
else
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
fi
}
-
-#
-# Will return the current branch name
-# Usage example: git pull origin $(current_branch)
-#
-function current_branch() {
- ref=$(git symbolic-ref HEAD 2> /dev/null) || return
- echo ${ref#refs/heads/}
-}
-
-# Aliases
-alias g='git'
-alias gst='git status'
-alias gl='git pull'
-alias gup='git fetch && git rebase'
-alias gp='git push'
-alias gd='git diff | mate'
-alias gdv='git diff -w "$@" | vim -R -'
-alias gc='git commit -v'
-alias gca='git commit -v -a'
-alias gb='git branch'
-alias gba='git branch -a'
-alias gcount='git shortlog -sn'
-alias gcp='git cherry-pick'
diff --git a/lib/history.zsh b/lib/history.zsh
index 527c32762..ca6f57079 100644
--- a/lib/history.zsh
+++ b/lib/history.zsh
@@ -10,3 +10,7 @@ setopt hist_verify
setopt inc_append_history
setopt extended_history
setopt hist_expire_dups_first
+setopt hist_ignore_space
+
+setopt SHARE_HISTORY
+setopt APPEND_HISTORY
diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh
index 8d22eb2b3..7196a88ff 100644
--- a/lib/key-bindings.zsh
+++ b/lib/key-bindings.zsh
@@ -1,6 +1,6 @@
# TODO: Explain what some of this does..
autoload -U compinit
-compinit
+compinit -i
bindkey -e
bindkey '\ew' kill-region
diff --git a/lib/rvm.zsh b/lib/rvm.zsh
new file mode 100644
index 000000000..597be1b33
--- /dev/null
+++ b/lib/rvm.zsh
@@ -0,0 +1,7 @@
+# get the name of the branch we are on
+function rvm_prompt_info() {
+ ruby_version=$(~/.rvm/bin/rvm-prompt 2> /dev/null) || return
+ echo "($ruby_version)"
+}
+
+
diff --git a/lib/spectrum.zsh b/lib/spectrum.zsh
new file mode 100644
index 000000000..4006a7fe1
--- /dev/null
+++ b/lib/spectrum.zsh
@@ -0,0 +1,20 @@
+#! /bin/zsh
+# A script to make using 256 colors in zsh less painful.
+# P.C. Shyamshankar <sykora@lucentbeing.com>
+# Copied from http://github.com/sykora/etc/blob/master/zsh/functions/spectrum/
+
+typeset -Ag FX FG BG
+
+FX=(
+ reset "%{%}"
+ bold "%{%}" no-bold "%{%}"
+ italic "%{%}" no-italic "%{%}"
+ underline "%{%}" no-underline "%{%}"
+ blink "%{%}" no-blink "%{%}"
+ reverse "%{%}" no-reverse "%{%}"
+)
+
+for color in {000..255}; do
+ FG[$color]="%{[38;5;${color}m%}"
+ BG[$color]="%{[48;5;${color}m%}"
+done
diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
index fa2738e18..bb45c71eb 100644
--- a/oh-my-zsh.sh
+++ b/oh-my-zsh.sh
@@ -10,6 +10,10 @@ for config_file ($ZSH/lib/*.zsh) source $config_file
# Load all of your custom configurations from custom/
for config_file ($ZSH/custom/*.zsh) source $config_file
+# Load all of the plugins that were defined in ~/.zshrc
+plugin=${plugin:=()}
+for plugin ($plugins) source $ZSH/plugins/$plugin.plugin.zsh
+
# Check for updates on initial load...
if [ "$DISABLE_AUTO_UPDATE" = "true" ]
then
@@ -17,3 +21,5 @@ then
else
/usr/bin/env zsh $ZSH/tools/check_for_upgrade.sh
fi
+
+unset config_file \ No newline at end of file
diff --git a/functions/_brew b/plugins/brew.plugin.zsh
index 91397bf3a..162eb6442 100644
--- a/functions/_brew
+++ b/plugins/brew.plugin.zsh
@@ -1,6 +1,6 @@
#compdef brew
-# copied from _fink
+# imported from the latest homebrew contributions
_brew_all_formulae() {
formulae=(`brew search`)
@@ -12,19 +12,25 @@ _brew_installed_formulae() {
local -a _1st_arguments
_1st_arguments=(
+ 'cat:display formula file for a formula'
+ 'cleanup:uninstall unused and old versions of packages'
+ 'create:create a new formula'
+ 'deps:list dependencies and dependants of a formula'
+ 'doctor:audits your installation for common issues'
+ 'edit:edit a formula'
+ 'home:visit the homepage of a formula or the brew project'
+ 'info:information about a formula'
'install:install a formula'
+ 'link:link a formula'
+ 'list:list files in a formula or not-installed formulae'
+ 'log:git commit log for a formula'
+ 'outdated:list formulas for which a newer version is available'
+ 'prune:remove dead links'
'remove:remove a formula'
'search:search for a formula (/regex/ or string)'
- 'list:list files in a formula or not-installed formulae'
- 'link:link a formula'
'unlink:unlink a formula'
- 'home:visit the homepage of a formula or the brew project'
- 'info:information about a formula'
- 'prune:remove dead links'
'update:freshen up links'
- 'log:git commit log for a formula'
- 'create:create a new formula'
- 'edit:edit a formula'
+ 'uses:show formulas which depend on a formula'
)
local expl
@@ -47,12 +53,12 @@ case "$words[1]" in
_arguments \
'(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \
'1: :->forms' && return 0
-
+
if [[ "$state" == forms ]]; then
_brew_installed_formulae
_requested installed_formulae expl 'installed formulae' compadd -a installed_formulae
fi ;;
- install|home|log|info)
+ install|home|log|info|uses|cat|deps)
_brew_all_formulae
_wanted formulae expl 'all formulae' compadd -a formulae ;;
remove|edit|xo)
diff --git a/plugins/git.plugin.zsh b/plugins/git.plugin.zsh
new file mode 100644
index 000000000..655eaf728
--- /dev/null
+++ b/plugins/git.plugin.zsh
@@ -0,0 +1,32 @@
+# Aliases
+alias g='git'
+alias gst='git status'
+alias gl='git pull'
+alias gup='git fetch && git rebase'
+alias gp='git push'
+alias gd='git diff | mate'
+alias gdv='git diff -w "$@" | vim -R -'
+alias gc='git commit -v'
+alias gca='git commit -v -a'
+alias gb='git branch'
+alias gba='git branch -a'
+alias gcount='git shortlog -sn'
+alias gcp='git cherry-pick'
+
+
+# Git and svn mix
+alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
+
+#
+# Will return the current branch name
+# Usage example: git pull origin $(current_branch)
+#
+function current_branch() {
+ ref=$(git symbolic-ref HEAD 2> /dev/null) || return
+ echo ${ref#refs/heads/}
+}
+
+# these aliases take advangate of the previous function
+alias ggpull='git pull origin $(current_branch)'
+alias ggpush='git push origin $(current_branch)'
+alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' \ No newline at end of file
diff --git a/plugins/lighthouse.plugin.zsh b/plugins/lighthouse.plugin.zsh
new file mode 100644
index 000000000..4eb06a997
--- /dev/null
+++ b/plugins/lighthouse.plugin.zsh
@@ -0,0 +1,16 @@
+# To use: add a .lighthouse file into your directory with the URL to the
+# individual project. For example:
+# https://rails.lighthouseapp.com/projects/8994
+# Example usage: http://screencast.com/t/ZDgwNDUwNT
+open_lighthouse_ticket () {
+ if [ ! -f .lighthouse-url ]; then
+ echo "There is no .lighthouse file in the current directory..."
+ return 0;
+ else
+ lighthouse_url=$(cat .lighthouse-url);
+ echo "Opening ticket #$1";
+ `open $lighthouse_url/tickets/$1`;
+ fi
+}
+
+alias lho='open_lighthouse_ticket' \ No newline at end of file
diff --git a/plugins/mysql-macports.plugin.zsh b/plugins/mysql-macports.plugin.zsh
new file mode 100644
index 000000000..63b881c9f
--- /dev/null
+++ b/plugins/mysql-macports.plugin.zsh
@@ -0,0 +1,6 @@
+# commands to control local mysql-server installation
+# paths are for osx installtion via macports
+
+alias mysqlstart='sudo /opt/local/bin/mysqld_safe5'
+alias mysqlstop='/opt/local/bin/mysqladmin5 -u root -p shutdown'
+alias mysqlstatus='mysqladmin5 -u root -p ping' \ No newline at end of file
diff --git a/plugins/osx.plugin.zsh b/plugins/osx.plugin.zsh
new file mode 100644
index 000000000..fce88c796
--- /dev/null
+++ b/plugins/osx.plugin.zsh
@@ -0,0 +1,11 @@
+function tab() {
+ osascript 2>/dev/null <<EOF
+ tell application "System Events"
+ tell process "Terminal" to keystroke "t" using command down
+ end
+ tell application "Terminal"
+ activate
+ do script with command "cd \"$PWD\"; $*" in window 1
+ end tell
+EOF
+} \ No newline at end of file
diff --git a/lib/rake_completion.zsh b/plugins/rails.plugin.zsh
index c425a625e..45bebb722 100644
--- a/lib/rake_completion.zsh
+++ b/plugins/rails.plugin.zsh
@@ -1,23 +1,13 @@
-_rake_does_task_list_need_generating () {
- if [ ! -f .rake_tasks~ ]; then return 0;
- else
- accurate=$(stat -f%m .rake_tasks~)
- changed=$(stat -f%m Rakefile)
- return $(expr $accurate '>=' $changed)
- fi
-}
-
-_rake () {
- if [ -f Rakefile ]; then
- if _rake_does_task_list_need_generating; then
- echo "\nGenerating .rake_tasks~..." > /dev/stderr
- rake --silent --tasks | cut -d " " -f 2 > .rake_tasks~
- fi
- compadd `cat .rake_tasks~`
- fi
-}
-compctl -K _rake rake
+alias ss='thin --stats "/thin/stats" start'
+alias sg='ruby script/generate'
+alias sd='ruby script/destroy'
+alias sp='ruby script/plugin'
+alias ssp='ruby script/spec'
+alias rdbm='rake db:migrate'
+alias sc='ruby script/console'
+alias sd='ruby script/server --debugger'
+alias devlog='tail -f log/development.log'
function _cap_does_task_list_need_generating () {
if [ ! -f .cap_tasks~ ]; then return 0;
@@ -40,3 +30,7 @@ function _cap () {
}
compctl -K _cap cap
+
+function remote_console() {
+ /usr/bin/env ssh $1 "( cd $2 && ruby script/console production )"
+}
diff --git a/plugins/ruby.plugin.zsh b/plugins/ruby.plugin.zsh
new file mode 100644
index 000000000..82bf5d49d
--- /dev/null
+++ b/plugins/ruby.plugin.zsh
@@ -0,0 +1,4 @@
+alias sgem='sudo gem'
+
+# Find ruby file
+alias rfind='find . -name *.rb | xargs grep -n' \ No newline at end of file
diff --git a/plugins/textmate.plugin.zsh b/plugins/textmate.plugin.zsh
new file mode 100644
index 000000000..7b73e2751
--- /dev/null
+++ b/plugins/textmate.plugin.zsh
@@ -0,0 +1,14 @@
+
+# TextMate
+alias et='mate . &'
+alias ett='mate app config lib db public spec test Rakefile Capfile Todo &'
+alias etp='mate app config lib db public spec test vendor/plugins vendor/gems Rakefile Capfile Todo &'
+alias etts='mate app config lib db public script spec test vendor/plugins vendor/gems Rakefile Capfile Todo &'
+
+# Editor Ruby file in TextMate
+alias mr='mate CHANGELOG app config db lib public script spec test'
+
+function tm() {
+ cd $1
+ mate $1
+}
diff --git a/plugins/vi-mode.plugin.zsh b/plugins/vi-mode.plugin.zsh
new file mode 100644
index 000000000..c47ab7211
--- /dev/null
+++ b/plugins/vi-mode.plugin.zsh
@@ -0,0 +1,22 @@
+function zle-line-init zle-keymap-select {
+ zle reset-prompt
+}
+
+zle -N zle-line-init
+zle -N zle-keymap-select
+
+bindkey -v
+
+# if mode indicator wasn't setup by theme, define default
+if [[ "$MODE_INDICATOR" == "" ]]; then
+ MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}"
+fi
+
+function vi_mode_prompt_info() {
+ echo "${${KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}"
+}
+
+# define right prompt, if it wasn't defined by a theme
+if [[ "$RPS1" == "" && "$RPROMPT" == "" ]]; then
+ RPS1='$(vi_mode_prompt_info)'
+fi
diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template
index d905be04b..8022b3506 100644
--- a/templates/zshrc.zsh-template
+++ b/templates/zshrc.zsh-template
@@ -14,6 +14,10 @@ export ZSH_THEME="robbyrussell"
# Uncomment following line if you want to disable colors in ls
# export DISABLE_LS_COLORS="true"
+# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
+# Example format: plugins=(rails git textmate ruby lighthouse)
+plugins=(git)
+
source $ZSH/oh-my-zsh.sh
# Customize to your needs...
diff --git a/themes/Soliah.zsh-theme b/themes/Soliah.zsh-theme
new file mode 100644
index 000000000..7ad876d41
--- /dev/null
+++ b/themes/Soliah.zsh-theme
@@ -0,0 +1,6 @@
+PROMPT='%{$fg[blue]%}%B%20~%b%{$reset_color%}%{$(git_prompt_info)%} $ '
+
+ZSH_THEME_GIT_PROMPT_PREFIX="(%{$fg[green]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%})"
+ZSH_THEME_GIT_PROMPT_DIRTY="*%{$reset_color%}"
+
diff --git a/themes/afowler.zsh-theme b/themes/afowler.zsh-theme
new file mode 100644
index 000000000..b5a9bb173
--- /dev/null
+++ b/themes/afowler.zsh-theme
@@ -0,0 +1,10 @@
+if [ "$(whoami)" = "root" ]; then CARETCOLOR="red"; else CARETCOLOR="blue"; fi
+
+local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
+
+PROMPT='%m %{${fg_bold[blue]}%}:: %{$reset_color%}%{${fg[green]}%}%3~ $(git_prompt_info)%{${fg_bold[$CARETCOLOR]}%}»%{${reset_color}%} '
+
+RPS1="${return_code}"
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}‹"
+ZSH_THEME_GIT_PROMPT_SUFFIX="› %{$reset_color%}"
diff --git a/themes/arrow.zsh-theme b/themes/arrow.zsh-theme
new file mode 100644
index 000000000..a23efd1d7
--- /dev/null
+++ b/themes/arrow.zsh-theme
@@ -0,0 +1,14 @@
+if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="yellow"; fi
+
+PROMPT='%{$fg[$NCOLOR]%}%c ➤ %{$reset_color%}'
+RPROMPT='%{$fg[$NCOLOR]%}%p $(git_prompt_info)%{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="git:"
+ZSH_THEME_GIT_PROMPT_SUFFIX=""
+ZSH_THEME_GIT_PROMPT_DIRTY="*"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+
+# See http://geoff.greer.fm/lscolors/
+export LSCOLORS="exfxcxdxbxbxbxbxbxbxbx"
+export LS_COLORS="di=34;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=31;40:cd=31;40:su=31;40:sg=31;40:tw=31;40:ow=31;40:"
+
diff --git a/themes/aussiegeek.zsh-theme b/themes/aussiegeek.zsh-theme
new file mode 100644
index 000000000..c2c7f65b9
--- /dev/null
+++ b/themes/aussiegeek.zsh-theme
@@ -0,0 +1,8 @@
+
+PROMPT='$fg_bold[blue][ $fg[red]%t $fg_bold[blue]] $fg_bold[blue] [ $fg[red]%n@%m:%~$(git_prompt_info)$fg[yellow]$(rvm_prompt_info)$fg_bold[blue] ]$reset_color
+ $ '
+# git theming
+ZSH_THEME_GIT_PROMPT_PREFIX="$fg_bold[green]("
+ZSH_THEME_GIT_PROMPT_SUFFIX=")"
+ZSH_THEME_GIT_PROMPT_CLEAN="✔"
+ZSH_THEME_GIT_PROMPT_DIRTY="✗"
diff --git a/themes/candy.zsh-theme b/themes/candy.zsh-theme
new file mode 100644
index 000000000..bc125c5ce
--- /dev/null
+++ b/themes/candy.zsh-theme
@@ -0,0 +1,7 @@
+PROMPT=$'%{$fg_bold[green]%}%n@%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$reset_color%}%{$fg[white]%}[%~]%{$reset_color%} $(git_prompt_info)\
+%{$fg[blue]%}->%{$fg_bold[blue]%} %#%{$reset_color%} '
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}["
+ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
diff --git a/themes/dallas.zsh-theme b/themes/dallas.zsh-theme
new file mode 100644
index 000000000..eef32e998
--- /dev/null
+++ b/themes/dallas.zsh-theme
@@ -0,0 +1,26 @@
+# Personalized!
+
+# Grab the current date (%D) and time (%T) wrapped in {}: {%D %T}
+DALLAS_CURRENT_TIME_="%{$fg[white]%}{%{$fg[yellow]%}%D %T%{$fg[white]%}}%{$reset_color%}"
+# Grab the current version of ruby in use (via RVM): [ruby-1.8.7]
+DALLAS_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[magenta]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}"
+# Grab the current machine name: muscato
+DALLAS_CURRENT_MACH_="%{$fg[green]%}%m%{$fg[white]%}:%{$reset_color%}"
+# Grab the current filepath, use shortcuts: ~/Desktop
+# Append the current git branch, if in a git repository: ~aw@master
+DALLAS_CURRENT_LOCA_="%{$fg[cyan]%}%~\$(git_prompt_info)%{$reset_color%}"
+# Grab the current username: dallas
+DALLAS_CURRENT_USER_="%{$fg[red]%}%n%{$reset_color%}"
+# Use a % for normal users and a # for privelaged (root) users.
+DALLAS_PROMPT_CHAR_="%{$fg[white]%}%(!.#.%%)%{$reset_color%}"
+# For the git prompt, use a white @ and blue text for the branch name
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}@%{$fg[blue]%}"
+# Close it all off by resetting the color and styles.
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+# Do nothing if the branch is clean (no changes).
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+# Add 3 cyan ✗s if this branch is diiirrrty! Dirty branch!
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[cyan]%}✗✗✗"
+
+# Put it all together!
+PROMPT="$DALLAS_CURRENT_TIME_$DALLAS_CURRENT_RUBY_$DALLAS_CURRENT_MACH_$DALLAS_CURRENT_LOCA_ $DALLAS_CURRENT_USER_$DALLAS_PROMPT_CHAR_ "
diff --git a/themes/daveverwer.zsh-theme b/themes/daveverwer.zsh-theme
new file mode 100644
index 000000000..89aef926e
--- /dev/null
+++ b/themes/daveverwer.zsh-theme
@@ -0,0 +1,7 @@
+# Copied and modified from the oh-my-zsh theme from geoffgarside
+# Red server name, green cwd, blue git status
+
+PROMPT='%{$fg[red]%}%m%{$reset_color%}:%{$fg[green]%}%c%{$reset_color%}$(git_prompt_info) %(!.#.$) '
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[blue]%}("
+ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%}"
diff --git a/themes/dst.zsh-theme b/themes/dst.zsh-theme
new file mode 100644
index 000000000..fa0d9cb06
--- /dev/null
+++ b/themes/dst.zsh-theme
@@ -0,0 +1,16 @@
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+
+function prompt_char {
+ if [ "$(whoami)" = "root" ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi
+}
+
+PROMPT='%(?, ,%{$fg[red]%}FAIL%{$reset_color%}
+)
+%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}%m%{$reset_color%}: %{$fg_bold[blue]%}%~%{$reset_color%}$(git_prompt_info)
+%_ $(prompt_char) '
+
+RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}'
diff --git a/themes/dstufft.zsh-theme b/themes/dstufft.zsh-theme
new file mode 100644
index 000000000..5a23fcea5
--- /dev/null
+++ b/themes/dstufft.zsh-theme
@@ -0,0 +1,19 @@
+function prompt_char {
+ git branch >/dev/null 2>/dev/null && echo '±' && return
+ hg root >/dev/null 2>/dev/null && echo 'Hg' && return
+ echo '○'
+}
+
+function virtualenv_info {
+ [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
+}
+
+PROMPT='
+%{$fg[magenta]%}%n%{$reset_color%} at %{$fg[yellow]%}%m%{$reset_color%} in %{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(git_prompt_info)
+$(virtualenv_info)$(prompt_char) '
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!"
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
diff --git a/themes/duellj.zsh-theme b/themes/duellj.zsh-theme
new file mode 100644
index 000000000..7350b4335
--- /dev/null
+++ b/themes/duellj.zsh-theme
@@ -0,0 +1,8 @@
+
+# user, host, full path, and time/date
+# on two lines for easier vgrepping
+# entry in a nice long thread on the Arch Linux forums: http://bbs.archlinux.org/viewtopic.php?pid=521888#p521888
+PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;34m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}%!%{\e[0;34m%}%B]%b%{\e[0m%}
+%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B]%{\e[0m%}%b '
+RPROMPT='[%*]'
+PS2=$' \e[0;34m%}%B>%{\e[0m%}%b '
diff --git a/themes/eastwood.zsh-theme b/themes/eastwood.zsh-theme
new file mode 100644
index 000000000..83664515a
--- /dev/null
+++ b/themes/eastwood.zsh-theme
@@ -0,0 +1,19 @@
+#RVM settings
+if [[ -s ~/.rvm/scripts/rvm ]] ; then
+ RPS1="%{$fg[yellow]%}rvm:%{$reset_color%}%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt)%{$reset_color%} $EPS1"
+fi
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}["
+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 "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX"
+ fi
+}
+
+PROMPT='$(git_custom_status)%{$fg[cyan]%}[%~% ]%{$reset_color%}%B$%b '
diff --git a/themes/edvardm.zsh-theme b/themes/edvardm.zsh-theme
new file mode 100644
index 000000000..f9ca1a9e2
--- /dev/null
+++ b/themes/edvardm.zsh-theme
@@ -0,0 +1,6 @@
+PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg_bold[white]%}%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]%})"
diff --git a/themes/fletcherm.zsh-theme b/themes/fletcherm.zsh-theme
new file mode 100644
index 000000000..e96188544
--- /dev/null
+++ b/themes/fletcherm.zsh-theme
@@ -0,0 +1,12 @@
+# Copied from old version of tonotdo's theme. LSCOLORS modified.
+PROMPT='%{$fg_no_bold[cyan]%}%n%{$fg_no_bold[magenta]%}•%{$fg_no_bold[green]%}%3~$(git_prompt_info)%{$reset_color%}» '
+RPROMPT='[%*]'
+
+# git theming
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}(%{$fg_no_bold[red]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX=""
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[blue]%})"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[yellow]%}⚡%{$fg_bold[blue]%})"
+
+export LSCOLORS="exfxcxdxbxegedabagacad"
+export LS_COLORS='no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:'
diff --git a/themes/jbergantine.zsh-theme b/themes/jbergantine.zsh-theme
new file mode 100644
index 000000000..d84247cff
--- /dev/null
+++ b/themes/jbergantine.zsh-theme
@@ -0,0 +1,6 @@
+PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[white]%}$(git_prompt_info)%{$fg_bold[white]%} % %{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[white]%}) %{$fg[yellow]%}✗%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[white]%})"
diff --git a/themes/josh.zsh-theme b/themes/josh.zsh-theme
new file mode 100644
index 000000000..6bed1a70e
--- /dev/null
+++ b/themes/josh.zsh-theme
@@ -0,0 +1,43 @@
+grey='\e[0;90m'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$grey%}("
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$grey%}) %{$fg[yellow]%}✗%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$grey%})"
+
+function josh_prompt {
+ (( spare_width = ${COLUMNS} ))
+ prompt=" "
+
+ branch=$(current_branch)
+ ruby_version=$(rvm_prompt_info)
+ path_size=${#PWD}
+ branch_size=${#branch}
+ ruby_size=${#ruby_version}
+ user_machine_size=${#${(%):-%n@%m-}}
+
+ if [[ ${#branch} -eq 0 ]]
+ then (( ruby_size = ruby_size + 1 ))
+ else
+ (( branch_size = branch_size + 4 ))
+ if [[ -n $(git status -s 2> /dev/null) ]]; then
+ (( branch_size = branch_size + 2 ))
+ fi
+ fi
+
+ (( spare_width = ${spare_width} - (${user_machine_size} + ${path_size} + ${branch_size} + ${ruby_size}) ))
+
+ while [ ${#prompt} -lt $spare_width ]; do
+ prompt=" $prompt"
+ done
+
+ prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info)%{$reset_color%} $(git_prompt_info)"
+
+ echo $prompt
+}
+
+setopt prompt_subst
+
+PROMPT='
+%n@%m $(josh_prompt)
+%(?,%{%F{green}%},%{%F{red}%})⚡%{$reset_color%} '
diff --git a/themes/jreese.zsh-theme b/themes/jreese.zsh-theme
new file mode 100644
index 000000000..534664f11
--- /dev/null
+++ b/themes/jreese.zsh-theme
@@ -0,0 +1,16 @@
+# ZSH Theme - Preview: http://dl.dropbox.com/u/1552408/Screenshots/2010-04-08-oh-my-zsh.png
+
+if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="green"; fi
+local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
+
+PROMPT='%{$fg[$NCOLOR]%}%n%{$fg[green]%}@%m%{$reset_color%} %~ \
+$(git_prompt_info)\
+%{$fg[red]%}%(!.#.»)%{$reset_color%} '
+PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
+RPS1='${return_code}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}±%{$fg[yellow]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+ZSH_THEME_GIT_PROMPT_DIRTY="⚡"
+
diff --git a/themes/linuxonly b/themes/linuxonly
new file mode 100644
index 000000000..a11b80d7f
--- /dev/null
+++ b/themes/linuxonly
@@ -0,0 +1,80 @@
+# vim: set ts=2 textwidth=0
+
+autoload -U add-zsh-hook
+autoload -Uz vcs_info
+local c0=$(printf "\033[0m")
+local c1=$(printf "\033[38;5;215m")
+local c2=$(printf "\033[38;5;209m")
+local c3=$(printf "\033[38;5;203m")
+local c4=$(printf "\033[33;4m")
+local c5=$(printf "\033[38;5;137m")
+local c6=$(printf "\033[38;5;240m")
+local c7=$(printf "\033[38;5;149m")
+local c8=$(printf "\033[38;5;126m")
+local c9=$(printf "\033[38;5;162m")
+
+local foopath=$(perl /home/scp1/bin/foopath)
+
+if [ "$TERM" = "linux" ]; then
+ c1=$(printf "\033[34;1m")
+ c2=$(printf "\033[35m")
+ c3=$(printf "\033[31m")
+ c4=$(printf "\033[31;1m")
+ c5=$(printf "\033[32m")
+ c6=$(printf "\033[32;1m")
+ c7=$(printf "\033[33m")
+ c8=$(printf "\033[33;1m")
+ c9=$(printf "\033[34m")
+fi
+
+#local newtv=$(perl $HOME/devel/newtv.pl)
+local newtv=''
+
+zstyle ':vcs_info:*' actionformats \
+ '%{$c8%}(%f%s)%{$c7%}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
+zstyle ':vcs_info:*' formats \
+ "%{$c8%}%s%{$c7%}:%{$c7%}(%{$c9%}%b%{$c7%})%f "
+zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
+zstyle ':vcs_info:*' enable git
+
+add-zsh-hook precmd prompt_jnrowe_precmd
+
+prompt_jnrowe_precmd () {
+ vcs_info
+
+ if [ "${vcs_info_msg_0_}" = "" ]; then
+ #dir_status="|%F{3}%n%F{7}@%F{3}%m%F{7}:%F{9}%l%f"
+ #dir_status="$c1%n%F{7}@%F{9}%m%F{7}:%F{12}%/"
+ dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$c4%}%/ %{$c0%}(%{$c5%}%?%{$c0%})"
+ #dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$foopath%} %{$c0%}(%{$c5%}%?%{$c0%})"
+
+ PROMPT='%{$fg_bold[green]%}%p%{$reset_color%}${vcs_info_msg_0_}${dir_status} ${ret_status}%{$reset_color%}
+> '
+ elif [[ $(git diff --cached --name-status 2>/dev/null ) != "" ]]; then
+ dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$c4%}%/ %{$c0%}(%{$c5%}%?%{$c0%})"
+ PROMPT='${vcs_info_msg_0_}
+%{$fg_bold[green]%}%p%{$reset_color%}${dir_status} ${vcs_info_msg_0_}%{$reset_color%}
+> '
+
+ elif [[ $(git diff --name-status 2>/dev/null ) != "" ]]; then
+ dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$c4%}%/ %{$c0%}(%{$c5%}%?%{$c0%})"
+
+ PROMPT='${vcs_info_msg_0_}
+%{$fg_bold[green]%}%p%{$reset_color%}${dir_status}%{$reset_color%}
+%{$c9%}·>%{$c0%} '
+ else
+ dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$c4%}%/ %{$c0%}(%{$c5%}%?%{$c0%})"
+ PROMPT='${vcs_info_msg_0_}
+%{$fg_bold[green]%}%p%{$reset_color%}${dir_status} ${vcs_info_msg_0_}%{$reset_color%}
+> '
+
+ fi
+}
+
+
+#PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$reset_color%} ${vcs_info_msg_0_}${dir_status}%{$reset_color%}
+#> '
+
+# vim: set ft=zsh ts=4 sw=4 et:
+
+
diff --git a/themes/macovsky-ruby.zsh-theme b/themes/macovsky-ruby.zsh-theme
new file mode 100644
index 000000000..4eb410233
--- /dev/null
+++ b/themes/macovsky-ruby.zsh-theme
@@ -0,0 +1,8 @@
+# ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png
+local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
+
+PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '
+RPS1="${return_code}"
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}‹"
+ZSH_THEME_GIT_PROMPT_SUFFIX="› %{$reset_color%}"
diff --git a/themes/macovsky.zsh-theme b/themes/macovsky.zsh-theme
index db7f9148c..4eb410233 100644
--- a/themes/macovsky.zsh-theme
+++ b/themes/macovsky.zsh-theme
@@ -1,8 +1,8 @@
# ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
-PROMPT='%{$fg[green]%}%~%{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '
+PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '
RPS1="${return_code}"
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}‹"
-ZSH_THEME_GIT_PROMPT_SUFFIX="› %{$reset_color%}" \ No newline at end of file
+ZSH_THEME_GIT_PROMPT_SUFFIX="› %{$reset_color%}"
diff --git a/themes/mgutz.zsh-theme b/themes/mgutz.zsh-theme
new file mode 100644
index 000000000..dcf327041
--- /dev/null
+++ b/themes/mgutz.zsh-theme
@@ -0,0 +1,6 @@
+PROMPT='%{$fg_bold[magenta]%}%1~$(git_prompt_info) %{$fg_bold[magenta]%}%# %{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[yellow]%}["
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="*]"
+ZSH_THEME_GIT_PROMPT_CLEAN="]"
diff --git a/themes/mikeh.zsh-theme b/themes/mikeh.zsh-theme
new file mode 100644
index 000000000..943f04d38
--- /dev/null
+++ b/themes/mikeh.zsh-theme
@@ -0,0 +1,23 @@
+setopt prompt_subst
+autoload colors
+colors
+
+autoload -U add-zsh-hook
+autoload -Uz vcs_info
+
+# 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
+
+add-zsh-hook precmd mikeh_precmd
+
+mikeh_precmd() {
+ vcs_info
+}
+
+# user, host, full path, and time/date
+# on two lines for easier vgrepping
+# entry in a nice long thread on the Arch Linux forums: http://bbs.archlinux.org/viewtopic.php?pid=521888#p521888
+PROMPT=$'%{\e[0;34m%}%B..[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%a %b %d, %I:%M"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%}
+%{\e[0;34m%}%B..%B[%{\e[1;35m%}$%{\e[0;34m%}%B] <($vcs_info_msg_0_)>%{\e[0m%}%b '
+PS2=$' \e[0;34m%}%B>%{\e[0m%}%b ' \ No newline at end of file
diff --git a/themes/mrtazz.zsh-theme b/themes/mrtazz.zsh-theme
new file mode 100644
index 000000000..214ba5a47
--- /dev/null
+++ b/themes/mrtazz.zsh-theme
@@ -0,0 +1,7 @@
+PROMPT='%{$fg_bold[red]%}%m%{$reset_color%}:%{$fg[cyan]%}%c%{$reset_color%}:%# '
+RPROMPT='%{$fg_bold[green]%}$(git_prompt_info)%{$reset_color%}% '
+
+ZSH_THEME_GIT_PROMPT_PREFIX="<%{$fg[red]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%} %{$fg[yellow]%}✗%{$fg[green]%}>%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[green]%}>"
diff --git a/themes/pmcgee.zsh-theme b/themes/pmcgee.zsh-theme
new file mode 100644
index 000000000..4eb54df5b
--- /dev/null
+++ b/themes/pmcgee.zsh-theme
@@ -0,0 +1,16 @@
+if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="green"; fi
+
+PROMPT='
+%{$fg[$NCOLOR]%}%B%n@%m%b%{$reset_color%} %{$fg[white]%}%B${PWD/#$HOME/~}%b%{$reset_color%}
+$(git_prompt_info)%(!.#.$) '
+RPROMPT='[%*]'
+
+# git theming
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_no_bold[yellow]%}%B"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}*"
+
+# LS colors, made with http://geoff.greer.fm/lscolors/
+export LSCOLORS="Gxfxcxdxbxegedabagacad"
+export LS_COLORS='no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:'
diff --git a/themes/rgm.zsh-theme b/themes/rgm.zsh-theme
new file mode 100644
index 000000000..9452a8b0d
--- /dev/null
+++ b/themes/rgm.zsh-theme
@@ -0,0 +1,8 @@
+PROMPT='
+%n@%m %{$fg[cyan]%}%~
+%? $(git_prompt_info)%{$fg_bold[blue]%}%% %{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[red]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}"
diff --git a/themes/skaro.zsh-theme b/themes/skaro.zsh-theme
new file mode 100644
index 000000000..84b7b11b0
--- /dev/null
+++ b/themes/skaro.zsh-theme
@@ -0,0 +1,7 @@
+PROMPT='%{$fg_bold[green]%}%h %{$fg[cyan]%}%2~ %{$fg_bold[blue]%}$(git_prompt_info) %{$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]%})"
+
diff --git a/themes/sporty_256.zsh-theme b/themes/sporty_256.zsh-theme
new file mode 100644
index 000000000..db0fc4277
--- /dev/null
+++ b/themes/sporty_256.zsh-theme
@@ -0,0 +1,13 @@
+# zsh theme requires 256 color enabled terminal
+# i.e TERM=xterm-256color
+# Preview - http://www.flickr.com/photos/adelcampo/4556482563/sizes/o/
+# based on robbyrussell's shell but louder!
+
+PROMPT='%{$fg_bold[blue]%}$(git_prompt_info) %F{208}%c%f
+%{$fg_bold[white]%}%# %{$reset_color%}'
+RPROMPT='%B%F{208}%n%f%{$fg_bold[white]%}@%F{039}%m%f%{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%F{154}±|%f%F{124}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}%B✘%b%F{154}|%f%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}✔%F{154}|"
diff --git a/themes/takashiyoshida.zsh-theme b/themes/takashiyoshida.zsh-theme
new file mode 100644
index 000000000..419a8cf3f
--- /dev/null
+++ b/themes/takashiyoshida.zsh-theme
@@ -0,0 +1,27 @@
+#
+# PROMPT
+#
+PROMPT_BRACKET_BEGIN='%{$fg_bold[white]%}['
+PROMPT_HOST='%{$fg_bold[cyan]%}%m'
+PROMPT_SEPARATOR='%{$reset_color%}:'
+PROMPT_DIR='%{$fg_bold[yellow]%}%c'
+PROMPT_BRACKET_END='%{$fg_bold[white]%}]'
+
+PROMPT_USER='%{$fg_bold[white]%}%n'
+PROMPT_SIGN='%{$reset_color%}%#'
+
+GIT_PROMPT_INFO='$(git_prompt_info)'
+
+# My current prompt looks like:
+# [host:current_dir] (git_prompt_info)
+# [username]%
+PROMPT="${PROMPT_BRACKET_BEGIN}${PROMPT_HOST}${PROMPT_SEPARATOR}${PROMPT_DIR}${PROMPT_BRACKET_END}${GIT_PROMPT_INFO}
+${PROMPT_BRACKET_BEGIN}${PROMPT_USER}${PROMPT_BRACKET_END}${PROMPT_SIGN} "
+
+#
+# Git repository
+#
+ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!"
+ZSH_THEME_GIT_PROMPT_CLEAN=''
diff --git a/themes/thomasjbradley.zsh-theme b/themes/thomasjbradley.zsh-theme
new file mode 100644
index 000000000..857301d19
--- /dev/null
+++ b/themes/thomasjbradley.zsh-theme
@@ -0,0 +1,29 @@
+function prompt_char {
+ git branch >/dev/null 2>/dev/null && echo '±' && return
+ hg root >/dev/null 2>/dev/null && echo '☿' && return
+ echo '○'
+}
+
+function virtualenv_info {
+ [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
+}
+
+function hg_prompt_info {
+ hg prompt --angle-brackets "\
+< on %{$fg[magenta]%}<branch>%{$reset_color%}>\
+< at %{$fg[yellow]%}<tags|%{$reset_color%}, %{$fg[yellow]%}>%{$reset_color%}>\
+%{$fg[green]%}<status|modified|unknown><update>%{$reset_color%}<
+patches: <patches|join( → )|pre_applied(%{$fg[yellow]%})|post_applied(%{$reset_color%})|pre_unapplied(%{$fg_bold[black]%})|post_unapplied(%{$reset_color%})>>" 2>/dev/null
+}
+
+PROMPT='
+%{$fg[magenta]%}%n%{$reset_color%} at %{$fg[yellow]%}%m%{$reset_color%} in %{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(hg_prompt_info)$(git_prompt_info)
+$(virtualenv_info)$(prompt_char) '
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!"
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+
+. ~/bin/dotfiles/zsh/aliases
diff --git a/themes/wezm+.zsh-theme b/themes/wezm+.zsh-theme
new file mode 100644
index 000000000..fee3eb08e
--- /dev/null
+++ b/themes/wezm+.zsh-theme
@@ -0,0 +1,7 @@
+PROMPT='%{${fg_bold[yellow]}%}%n%{$reset_color%}%{${fg[yellow]}%}@%m%{$reset_color%} $(git_prompt_info)%(?,,%{${fg_bold[white]}%}[%?]%{$reset_color%} )%{$fg[yellow]%}%#%{$reset_color%} '
+RPROMPT='%{$fg[green]%}%~%{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[blue]%}("
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%})%{$fg[red]%}✗%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
diff --git a/tools/install.sh b/tools/install.sh
index 5a7c00950..6e3872bb9 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -22,8 +22,15 @@ echo "Copying your current PATH and adding it to the end of ~/.zshrc for you."
echo "export PATH=$PATH" >> ~/.zshrc
echo "Time to change your default shell to zsh!"
-chsh -s /bin/zsh
+chsh -s "/usr/bin/env zsh"
-echo "Hooray! Oh My Zsh has been installed."
-/bin/zsh
+echo ' __ __ '
+echo ' ____ / /_ ____ ___ __ __ ____ _____/ /_ '
+echo ' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '
+echo '/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '
+echo '\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '
+echo ' /____/'
+
+echo "\n\n ....is now installed."
+/usr/bin/env zsh
source ~/.zshrc
diff --git a/tools/upgrade.sh b/tools/upgrade.sh
index f749404e9..6bdd02e38 100644
--- a/tools/upgrade.sh
+++ b/tools/upgrade.sh
@@ -1,5 +1,12 @@
current_path=`pwd`
echo "Upgrading Oh My Zsh"
( cd $ZSH && git pull origin master )
+echo ' __ __ '
+echo ' ____ / /_ ____ ___ __ __ ____ _____/ /_ '
+echo ' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '
+echo '/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '
+echo '\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '
+echo ' /____/'
echo "Hooray! Oh My Zsh has been updated and/or is at the current version. \nAny new updates will be reflected when you start your next terminal session."
+echo "To keep up on the latest, be sure to follow Oh My Zsh on twitter: http://twitter.com/ohmyzsh"
cd $current_path \ No newline at end of file