f71647fa85267d558d0d69034902f53aeeed67ad
- Author
- Roman Kamyk <roman.kamyk@gmail.com>
- Committer
- Roman Kamyk <roman.kamyk@gmail.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/.gitignore b/.gitignore
2index 8d19d100c593afe9d4524f55b84c4b6c45eafbbd..4b555067e1fc5501b0ffccd0c21de1604845f3ae 100644
3--- a/.gitignore
4+++ b/.gitignore
5@@ -2,4 +2,5 @@ locals.zsh
6 log/.zsh_history
7 projects.zsh
8 custom/*
9-!custom/example.zsh
10+!custom/example.zsh
11+cache
12diff --git a/README.textile b/README.textile
13index 0659aded875b3ff85cb695560d8fe9bbc3e1d4c1..d01c3310a425d4a31017c2d22006575e6176c408 100644
14--- a/README.textile
15+++ b/README.textile
16@@ -8,7 +8,7 @@ h2. Setup
17
18 h3. The automatic installer... (do you trust me?)
19
20-@wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh@
21+@wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh@
22
23 h3. The manual way
24
25@@ -54,16 +54,18 @@ h3. Uninstalling
26
27 If you want to uninstall it, just run @uninstall_oh_my_zsh@ from the command line and it'll remove itself and revert you to bash (or your previous zsh config).
28
29-h2. Thanks
30-
31-* Rick Olson (technoweenie) might remember some of the configuration, which I took from a pastie a few years ago.
32-* Marcel (noradio) provided Rick the original zsh configuration.
33-* Nicholas (ulysses) for the "rake autocompletion code":http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh.
34-
35 h2. Help out!
36
37 I'm far from being a zsh-expert and suspect there are many ways to improve. If you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
38
39 h3. Send us your theme!
40
41-I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.
42+I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.
43+
44+h2. Contributors
45+
46+This project wouldn't exist without all of our awesome users and contributors.
47+
48+* "View our growing list of contributors":https://github.com/robbyrussell/oh-my-zsh/contributors
49+
50+Thank you so much!
51diff --git a/lib/completion.zsh b/lib/completion.zsh
52index 9c2dfecca3cc82ee5f3b1231f11b7a9f75e2e3a4..fdd0a8536cd4825235d0f4fddd217f0f398ea86b 100644
53--- a/lib/completion.zsh
54+++ b/lib/completion.zsh
55@@ -8,9 +8,6 @@ setopt always_to_end
56
57 WORDCHARS=''
58
59-autoload -U compinit
60-compinit -i
61-
62 zmodload -i zsh/complist
63
64 ## case-insensitive (all),partial-word and then substring completion
65diff --git a/lib/git.zsh b/lib/git.zsh
66index 8512de8a40ba542e24d86be6e5c83c7245623875..e96f075beeb7efcfc23c6b7520bf7bc46e1e9430 100644
67--- a/lib/git.zsh
68+++ b/lib/git.zsh
69@@ -4,7 +4,8 @@ function git_prompt_info() {
70 echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
71 }
72
73-parse_git_dirty () {
74+# Checks if working tree is dirty
75+parse_git_dirty() {
76 if [[ -n $(git status -s 2> /dev/null) ]]; then
77 echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
78 else
79@@ -12,7 +13,24 @@ parse_git_dirty () {
80 fi
81 }
82
83-# get the status of the working tree
84+# Checks if there are commits ahead from remote
85+function git_prompt_ahead() {
86+ if $(echo "$(git log origin/master..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
87+ echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
88+ fi
89+}
90+
91+# Formats prompt string for current git commit short SHA
92+function git_prompt_short_sha() {
93+ SHA=$(git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
94+}
95+
96+# Formats prompt string for current git commit long SHA
97+function git_prompt_long_sha() {
98+ SHA=$(git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
99+}
100+
101+# Get the status of the working tree
102 git_prompt_status() {
103 INDEX=$(git status --porcelain 2> /dev/null)
104 STATUS=""
105@@ -41,4 +59,4 @@ git_prompt_status() {
106 STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
107 fi
108 echo $STATUS
109-}
110+}
111diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh
112index 7196a88ffe3de7e8b1f4e8327ed58f050f8898b8..c7ad907d782d61c51f6e62bd03dbf960712285df 100644
113--- a/lib/key-bindings.zsh
114+++ b/lib/key-bindings.zsh
115@@ -1,6 +1,4 @@
116 # TODO: Explain what some of this does..
117-autoload -U compinit
118-compinit -i
119
120 bindkey -e
121 bindkey '\ew' kill-region
122diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh
123index e1e536690be580eb0c99a1df47ad5b3df9494073..22e7f372fffdb1da78ffd3852130340a5d9aa448 100644
124--- a/lib/termsupport.zsh
125+++ b/lib/termsupport.zsh
126@@ -3,11 +3,12 @@
127 #Fully support screen, iterm, and probably most modern xterm and rxvt
128 #Limited support for Apple Terminal (Terminal can't set window or tab separately)
129 function title {
130- if [[ "$TERM" == "screen" ]]; then
131- print -Pn "\ek$1\e\\" #set screen hardstatus, usually truncated at 20 chars
132- elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
133- print -Pn "\e]2;$2\a" #set window name
134- print -Pn "\e]1;$1\a" #set icon (=tab) name (will override window name on broken terminal)
135+ [ "$DISABLE_AUTO_TITLE" != "true" ] || return
136+ if [[ "$TERM" == screen* ]]; then
137+ print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
138+ elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
139+ print -Pn "\e]2;$2:q\a" #set window name
140+ print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal)
141 fi
142 }
143
144@@ -21,6 +22,8 @@ function precmd {
145
146 #Appears at the beginning of (and during) of command execution
147 function preexec {
148+ emulate -L zsh
149+ setopt extended_glob
150 local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
151 title "$CMD" "%100>...>$2%<<"
152 }
153diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
154index 291772dfe0b8bc5345717ef2b185eb7b52fa3194..3ea88e9248f70f58fed084b2c274548acb902b7d 100644
155--- a/oh-my-zsh.sh
156+++ b/oh-my-zsh.sh
157@@ -7,15 +7,38 @@ fpath=($ZSH/functions $fpath)
158 # TIP: Add files you don't want in git to .gitignore
159 for config_file ($ZSH/lib/*.zsh) source $config_file
160
161-# Load all of your custom configurations from custom/
162-for config_file ($ZSH/custom/*.zsh) source $config_file
163+# Add all defined plugins to fpath
164+plugin=${plugin:=()}
165+for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath)
166+
167+# Load and run compinit
168+autoload -U compinit
169+compinit -i
170
171 # Load all of the plugins that were defined in ~/.zshrc
172-plugin=${plugin:=()}
173-for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh
174+for plugin ($plugins); do
175+ if [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
176+ source $ZSH/plugins/$plugin/$plugin.plugin.zsh
177+ fi
178+done
179+
180+# Load all of your custom configurations from custom/
181+for config_file ($ZSH/custom/*.zsh) source $config_file
182
183 # Load the theme
184-source "$ZSH/themes/$ZSH_THEME.zsh-theme"
185+# Check for updates on initial load...
186+if [ "$ZSH_THEME" = "random" ]
187+then
188+ themes=($ZSH/themes/*zsh-theme)
189+ N=${#themes[@]}
190+ ((N=RANDOM%N))
191+ RANDOM_THEME=${themes[$N]}
192+ source "$RANDOM_THEME"
193+ echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
194+else
195+ source "$ZSH/themes/$ZSH_THEME.zsh-theme"
196+fi
197+
198
199 # Check for updates on initial load...
200 if [ "$DISABLE_AUTO_UPDATE" = "true" ]
201diff --git a/plugins/brew/_brew b/plugins/brew/_brew
202index 4e590ac6302d0196a9b269798ea9f4ded913a05c..cee1e25f0bdbaae3808392f6bc678e22f653ec80 100644
203--- a/plugins/brew/_brew
204+++ b/plugins/brew/_brew
205@@ -31,6 +31,7 @@ _1st_arguments=(
206 'search:search for a formula (/regex/ or string)'
207 'unlink:unlink a formula'
208 'update:freshen up links'
209+ 'upgrade:upgrade outdated formulae'
210 'uses:show formulas which depend on a formula'
211 )
212
213diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh
214deleted file mode 100644
215index 353a18942ac594122f5bfc634fcef3f834d1c665..0000000000000000000000000000000000000000
216--- a/plugins/brew/brew.plugin.zsh
217+++ /dev/null
218@@ -1,4 +0,0 @@
219-# add brew completion function to path
220-fpath=($ZSH/plugins/brew $fpath)
221-autoload -U compinit
222-compinit -i
223diff --git a/plugins/cpanm/_cpanm b/plugins/cpanm/_cpanm
224new file mode 100644
225index 0000000000000000000000000000000000000000..58451d35ae7b4ab1a32c880e76b47c3d00e7aacd
226--- /dev/null
227+++ b/plugins/cpanm/_cpanm
228@@ -0,0 +1,67 @@
229+#compdef cpanm
230+
231+##
232+# cpanminus Z Shell completion script
233+##
234+#
235+# Current supported cpanm version: 1.4000 (Tue Mar 8 01:00:49 PST 2011)
236+#
237+# The latest code is always located at:
238+# https://github.com/rshhh/cpanminus/blob/master/etc/_cpanm
239+#
240+
241+local arguments curcontext="$curcontext"
242+typeset -A opt_args
243+
244+
245+arguments=(
246+
247+# Commands
248+# '(--install -i)'{--install,-i}'[Installs the modules]'
249+ '(- :)--self-upgrade[Upgrades itself]'
250+ '(- :)--info[Displays distribution info on CPAN]'
251+ '(--installdeps)--installdeps[Only install dependencies]'
252+ '(--look)--look[Download/unpack the distribution and then open the directory with your shell]'
253+ '(- :)'{--help,-h}'[Displays help information]'
254+ '(- :)'{--version,-V}'[Displays software version]'
255+
256+# Options
257+ {--force,-f}'[Force install]'
258+ {--notest,-n}'[Do not run unit tests]'
259+ {--sudo,-S}'[sudo to run install commands]'
260+ '(-v --verbose --quiet -q)'{--verbose,-v}'[Turns on chatty output]'
261+ '(-q --quiet --verbose -v)'{--quiet,-q}'[Turns off all output]'
262+ {--local-lib,-l}'[Specify the install base to install modules]'
263+ {--local-lib-contained,-L}'[Specify the install base to install all non-core modules]'
264+ '--mirror[Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/)]:URLs:_urls'
265+ '--mirror-only[Use the mirror\''s index file instead of the CPAN Meta DB]'
266+ '--prompt[Prompt when configure/build/test fails]'
267+ '--reinstall[Reinstall the distribution even if you already have the latest version installed]'
268+ '--interactive[Turn on interactive configure]'
269+
270+ '--scandeps[Scan the depencencies of given modules and output the tree in a text format]'
271+ '--format[Specify what format to display the scanned dependency tree]:scandeps format:(tree json yaml dists)'
272+
273+ '--save-dists[Specify the optional directory path to copy downloaded tarballs]'
274+# '--uninst-shadows[Uninstalls the shadow files of the distribution that you\''re installing]'
275+
276+ '--auto-cleanup[Number of days that cpanm\''s work directories expire in. Defaults to 7]'
277+ '(--no-man-pages)--man-pages[Generates man pages for executables (man1) and libraries (man3)]'
278+ '(--man-pages)--no-man-pages[Do not generate man pages]'
279+
280+
281+ # Note: Normally with "--lwp", "--wget" and "--curl" options set to true (which is the default) cpanm tries LWP,
282+ # Wget, cURL and HTTP::Tiny (in that order) and uses the first one available.
283+ # (So that the exclusions are not enabled here for the completion)
284+ '(--lwp)--lwp[Use LWP module to download stuff]'
285+ '(--wget)--wget[Use GNU Wget (if available) to download stuff]'
286+ '(--curl)--curl[Use cURL (if available) to download stuff]'
287+
288+# Other completions
289+ '*:Local directory or archive:_files -/ -g "*.(tar.gz|tgz|tar.bz2|zip)(-.)"'
290+ # '*::args: _normal' # this looks for default files (any files)
291+)
292+_arguments -s $arguments \
293+ && return 0
294+
295+return 1
296diff --git a/plugins/deb/deb.plugin.zsh b/plugins/deb/deb.plugin.zsh
297new file mode 100644
298index 0000000000000000000000000000000000000000..1b35a064628625497cd67c2163c00d02a4c35cff
299--- /dev/null
300+++ b/plugins/deb/deb.plugin.zsh
301@@ -0,0 +1,13 @@
302+# Aliases
303+alias as="aptitude -F \"* %p -> %d \n(%v/%V)\" \
304+ --no-gui --disable-columns search" # search package
305+alias ad="sudo apt-get update" # update packages lists
306+alias au="sudo apt-get update && \
307+ sudo apt-get dselect-upgrade" # upgrade packages
308+alias ai="sudo apt-get install" # install package
309+alias ar="sudo apt-get remove --purge && \
310+ sudo apt-get autoremove --purge" # remove package
311+alias ap="apt-cache policy" # apt policy
312+alias av="apt-cache show" # show package info
313+alias acs="apt-cache search" # search package
314+alias ac="sudo apt-get clean && sudo apt-get autoclean" # clean apt cache
315diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh
316new file mode 100644
317index 0000000000000000000000000000000000000000..f8865a41210d3318525e867734cffd7cbe5bb7b2
318--- /dev/null
319+++ b/plugins/debian/debian.plugin.zsh
320@@ -0,0 +1,60 @@
321+# https://github.com/dbbolton/
322+#
323+# Debian-related zsh aliases and functions for zsh
324+
325+
326+# Aliases ###################################################################
327+
328+# Some self-explanatory aliases
329+alias afs='apt-file search --regexp'
330+alias aps='aptitude search'
331+alias apsrc='apt-get source'
332+alias apv='apt-cache policy'
333+
334+alias apdg='su -c "aptitude update && aptitude safe-upgrade"'
335+alias apud='su -c "aptitude update"'
336+alias apug='su -c "aptitude safe-upgrade"'
337+
338+# print all installed packages
339+alias allpkgs='aptitude search -F "%p" --disable-columns ~i'
340+
341+# Install all .deb files in the current directory.
342+# Warning: you will need to put the glob in single quotes if you use:
343+# glob_subst
344+alias di='su -c "dpkg -i ./*.deb"'
345+
346+# Create a basic .deb package
347+alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
348+
349+# Remove ALL kernel images and headers EXCEPT the one in use
350+alias kclean='su -c '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root'
351+
352+
353+
354+# Functions #################################################################
355+
356+# create a simple script that can be used to 'duplicate' a system
357+apt-copy() {
358+ print '#!/bin/sh'"\n" > apt-copy.sh
359+
360+ list=$(perl -m'AptPkg::Cache' -e '$c=AptPkg::Cache->new; for (keys %$c){ push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';} print "$_ " for sort @a;')
361+
362+ print 'aptitude install '"$list\n" >> apt-copy.sh
363+
364+ chmod +x apt-copy.sh
365+}
366+
367+
368+# Kernel-package building shortcut
369+dbb-build () {
370+ MAKEFLAGS='' # temporarily unset MAKEFLAGS ( '-j3' will fail )
371+ appendage='-custom' # this shows up in $ (uname -r )
372+ revision=$(date +"%Y%m%d") # this shows up in the .deb file name
373+
374+ make-kpkg clean
375+
376+ time fakeroot make-kpkg --append-to-version "$appendage" --revision \
377+ "$revision" kernel_image kernel_headers
378+}
379+
380+
381diff --git a/plugins/gem/gem.plugin.zsh b/plugins/gem/gem.plugin.zsh
382deleted file mode 100644
383index d4e5c6584a8289c6d4097cd2090fb71a48ef69c6..0000000000000000000000000000000000000000
384--- a/plugins/gem/gem.plugin.zsh
385+++ /dev/null
386@@ -1,4 +0,0 @@
387-# add gem completion function to path
388-fpath=($ZSH/plugins/gem $fpath)
389-autoload -U compinit
390-compinit -i
391diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh
392new file mode 100644
393index 0000000000000000000000000000000000000000..270bcbe389b79224d4725e45be39abb4c3823829
394--- /dev/null
395+++ b/plugins/git-flow/git-flow.plugin.zsh
396@@ -0,0 +1,332 @@
397+#!zsh
398+#
399+# Installation
400+# ------------
401+#
402+# To achieve git-flow completion nirvana:
403+#
404+# 0. Update your zsh's git-completion module to the newest verion.
405+# From here. http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=blob_plain;f=Completion/Unix/Command/_git;hb=HEAD
406+#
407+# 1. Install this file. Either:
408+#
409+# a. Place it in your .zshrc:
410+#
411+# b. Or, copy it somewhere (e.g. ~/.git-flow-completion.zsh) and put the following line in
412+# your .zshrc:
413+#
414+# source ~/.git-flow-completion.zsh
415+#
416+# c. Or, use this file as a oh-my-zsh plugin.
417+#
418+
419+_git-flow ()
420+{
421+ local curcontext="$curcontext" state line
422+ typeset -A opt_args
423+
424+ _arguments -C \
425+ ':command:->command' \
426+ '*::options:->options'
427+
428+ case $state in
429+ (command)
430+
431+ local -a subcommands
432+ subcommands=(
433+ 'init:Initialize a new git repo with support for the branching model.'
434+ 'feature:Manage your feature branches.'
435+ 'release:Manage your release branches.'
436+ 'hotfix:Manage your hotfix branches.'
437+ 'support:Manage your support branches.'
438+ 'version:Shows version information.'
439+ )
440+ _describe -t commands 'git flow' subcommands
441+ ;;
442+
443+ (options)
444+ case $line[1] in
445+
446+ (init)
447+ _arguments \
448+ -f'[Force setting of gitflow branches, even if already configured]'
449+ ;;
450+
451+ (version)
452+ ;;
453+
454+ (hotfix)
455+ __git-flow-hotfix
456+ ;;
457+
458+ (release)
459+ __git-flow-release
460+ ;;
461+
462+ (feature)
463+ __git-flow-feature
464+ ;;
465+ esac
466+ ;;
467+ esac
468+}
469+
470+__git-flow-release ()
471+{
472+ local curcontext="$curcontext" state line
473+ typeset -A opt_args
474+
475+ _arguments -C \
476+ ':command:->command' \
477+ '*::options:->options'
478+
479+ case $state in
480+ (command)
481+
482+ local -a subcommands
483+ subcommands=(
484+ 'start:Start a new release branch.'
485+ 'finish:Finish a release branch.'
486+ 'list:List all your release branches. (Alias to `git flow release`)'
487+ )
488+ _describe -t commands 'git flow release' subcommands
489+ _arguments \
490+ -v'[Verbose (more) output]'
491+ ;;
492+
493+ (options)
494+ case $line[1] in
495+
496diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
497index 71a62819bbd5decbd8de84a83f14ee98fbc56925..bc340e86b3b654518649e6c7fc62d822bd96786a 100644
498--- a/plugins/git/git.plugin.zsh
499+++ b/plugins/git/git.plugin.zsh
500@@ -1,22 +1,36 @@
501 # Aliases
502 alias g='git'
503+compdef g=git
504 alias gst='git status'
505+compdef _git gst=git-status
506 alias gl='git pull'
507+compdef _git gl=git-pull
508 alias gup='git fetch && git rebase'
509+compdef _git gup=git-fetch
510 alias gp='git push'
511-alias gd='git diff | mate'
512-alias gdv='git diff -w "$@" | vim -R -'
513+compdef _git gp=git-push
514+gdv() { git-diff -w "$@" | view - }
515+compdef _git gdv=git-diff
516 alias gc='git commit -v'
517+compdef _git gc=git-commit
518 alias gca='git commit -v -a'
519+compdef _git gca=git-commit
520 alias gco='git checkout'
521+compdef _git gco=git-checkout
522 alias gb='git branch'
523+compdef _git gb=git-branch
524 alias gba='git branch -a'
525+compdef _git gba=git-branch
526 alias gcount='git shortlog -sn'
527+compdef gcount=git
528 alias gcp='git cherry-pick'
529+compdef _git gcp=git-cherry-pick
530 alias glg='git log --stat --max-count=5'
531+compdef _git glg=git-log
532
533 # Git and svn mix
534 alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
535+compdef git-svn-dcommit-push=git
536
537 #
538 # Will return the current branch name
539@@ -29,5 +43,8 @@ function current_branch() {
540
541 # these aliases take advantage of the previous function
542 alias ggpull='git pull origin $(current_branch)'
543+compdef ggpull=git
544 alias ggpush='git push origin $(current_branch)'
545+compdef ggpush=git
546 alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
547+compdef ggpnp=git
548diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh
549index c23504b85b464b411c14abcbe9301e9348ebf5f6..df7053ba7c897eff67982911cc754a62eb3970e3 100644
550--- a/plugins/github/github.plugin.zsh
551+++ b/plugins/github/github.plugin.zsh
552@@ -1,4 +1,7 @@
553-# add github completion function to path
554-fpath=($ZSH/plugins/github $fpath)
555-autoload -U compinit
556-compinit -i
557+# hub alias from defunkt
558+# https://github.com/defunkt/hub
559+if [ "$commands[(I)hub]" ]; then
560+ # eval `hub alias -s zsh`
561+ function git(){hub "$@"}
562+fi
563+
564diff --git a/plugins/lein/lein.plugin.zsh b/plugins/lein/lein.plugin.zsh
565new file mode 100644
566index 0000000000000000000000000000000000000000..19af3556a662b89a55a6b00e022a8018953cddd3
567--- /dev/null
568+++ b/plugins/lein/lein.plugin.zsh
569@@ -0,0 +1,27 @@
570+function _lein_commands() {
571+ local ret=1 state
572+ _arguments ':subcommand:->subcommand' && ret=0
573+
574+ case $state in
575+ subcommand)
576+ subcommands=(
577+ "clean:remove compiled files and dependencies from project"
578+ "compile:ahead-of-time compile the project"
579+ "deps:download and install all dependencies"
580+ "help:display a list of tasks or help for a given task"
581+ "install:install the project and its dependencies in your local repository"
582+ "jar:create a jar file containing the compiled .class files"
583+ "new:create a new project skeleton"
584+ "pom:write a pom.xml file to disk for maven interop"
585+ "test:run the project's tests"
586+ "uberjar:Create a jar including the contents of each of deps"
587+ "upgrade:upgrade leiningen to the latest stable release"
588+ "version:print leiningen's version"
589+ )
590+ _describe -t subcommands 'leiningen subcommands' subcommands && ret=0
591+ esac
592+
593+ return ret
594+}
595+
596+compdef _lein_commands lein
597diff --git a/plugins/lol/lol.plugin.zsh b/plugins/lol/lol.plugin.zsh
598new file mode 100644
599index 0000000000000000000000000000000000000000..a7153bb570d559fc4cdabb7f88c9aba2db2d94a4
600--- /dev/null
601+++ b/plugins/lol/lol.plugin.zsh
602@@ -0,0 +1,26 @@
603+# LOL!!1
604+# Source: http://aur.archlinux.org/packages/lolbash/lolbash/lolbash.sh
605+
606+alias wtf='dmesg'
607+alias onoz='cat /var/log/errors.log'
608+alias rtfm='man'
609+
610+alias visible='echo'
611+alias invisible='cat'
612+alias moar='more'
613+
614+alias icanhas='mkdir'
615+alias donotwant='rm'
616+alias dowant='cp'
617+alias gtfo='mv'
618+
619+alias hai='cd'
620+alias plz='pwd'
621+
622+alias inur='locate'
623+
624+alias nomz='ps -aux'
625+alias nomnom='killall'
626+
627+alias cya='reboot'
628+alias kthxbai='halt'
629diff --git a/plugins/macports/_port b/plugins/macports/_port
630new file mode 100644
631index 0000000000000000000000000000000000000000..06d7fb426cc8c5374720845a3c91d6591a17e0fd
632--- /dev/null
633+++ b/plugins/macports/_port
634@@ -0,0 +1,89 @@
635+#compdef port
636+
637+local subcmds
638+
639+# we cache the list of ports
640+# we shall use some cache policy to avoid problems with new ports
641+if (( ! $+portlist )); then
642+ portlist=($(port echo all; echo "all current active inactive installed uninstalled outdated"))
643+fi
644+
645+subcmds=(
646+'activate'
647+'archive'
648+'build'
649+'cat'
650+'clean'
651+'configure'
652+'contents'
653+'deactivate'
654+'dependents'
655+'deps'
656+'destroot'
657+'dir'
658+'distcheck'
659+'distclean'
660+'dmg'
661+'echo'
662+'edit'
663+'extract'
664+'fetch'
665+'file'
666+'help'
667+'info'
668+'install'
669+'installed'
670+'list'
671+'livecheck'
672+'location'
673+'mpkg'
674+'outdated'
675+'patch'
676+'pkg'
677+'provides'
678+'rpmpackage'
679+'search'
680+'selfupdate'
681+'sync'
682+'test'
683+'unarchive'
684+'uninstall'
685+'upgrade'
686+'variants'
687+'version'
688+)
689+
690+_arguments -C \
691+'-v[verbose mode (generate verbose messages)]' \
692+'-d[debug mode (generate debugging messages)]' \
693+'-q[quiet mode (suppress messages)]' \
694+'-D[specify portdir]' \
695+'-k[keep mode (do not autoclean after install)]' \
696+'-n[dont follow dependencies in upgrade (only for upgrading)]' \
697+'-a[upgrade all installed ports (only for upgrading)]' \
698+'-u[uninstall non-active ports when upgrading and uninstalling]' \
699+'-f[force mode (ignore state file)]' \
700+'-s[source-only mode]' \
701+'-b[binary-only mode]' \
702+'-o[honor state files older than Portfile]' \
703+'*::command:->command' \
704+&& return 0
705+
706+case $state in
707+ command)
708+ if ((CURRENT == 1)); then
709+ state=subcommands
710+ else
711+ state=portname
712+ fi
713+ ;;
714+esac
715+
716+case $state in
717+ subcommands)
718+ _describe -t commands 'port commands' subcmds
719+ ;;
720+ portname)
721+ _describe -t commands 'available ports' portlist
722+ ;;
723+esac
724diff --git a/plugins/macports/macports.plugin.zsh b/plugins/macports/macports.plugin.zsh
725index 9564829b036373ce405dd17c61936a9b5ab4184d..277352e321afd49b954cb91223cf59f9eaf399a3 100644
726--- a/plugins/macports/macports.plugin.zsh
727+++ b/plugins/macports/macports.plugin.zsh
728@@ -5,3 +5,4 @@ alias psu="sudo port selfupdate"
729 alias puni="sudo port uninstall inactive"
730 alias puo="sudo port upgrade outdated"
731 alias pup="psu && puo"
732+
733diff --git a/plugins/mysql-macports/mysql-macports.plugin.zsh b/plugins/mysql-macports/mysql-macports.plugin.zsh
734new file mode 100644
735index 0000000000000000000000000000000000000000..c39563fe49c0cbc81dd7eb9ca8feeb5bc54a3da0
736--- /dev/null
737+++ b/plugins/mysql-macports/mysql-macports.plugin.zsh
738@@ -0,0 +1,8 @@
739+# commands to control local mysql-server installation
740+# paths are for osx installation via macports
741+
742+alias mysqlstart='sudo /opt/local/share/mysql5/mysql/mysql.server start'
743+alias mysqlstop='sudo /opt/local/share/mysql5/mysql/mysql.server stop'
744+alias mysqlrestart='sudo /opt/local/share/mysql5/mysql/mysql.server restart'
745+
746+alias mysqlstatus='mysqladmin5 -u root -p ping'
747diff --git a/plugins/mysql/mysql-macports.plugin.zsh b/plugins/mysql/mysql-macports.plugin.zsh
748deleted file mode 100644
749index 63b881c9f5b74f8f11770b20fe40749add1f23ae..0000000000000000000000000000000000000000
750--- a/plugins/mysql/mysql-macports.plugin.zsh
751+++ /dev/null
752@@ -1,6 +0,0 @@
753-# commands to control local mysql-server installation
754-# paths are for osx installtion via macports
755-
756-alias mysqlstart='sudo /opt/local/bin/mysqld_safe5'
757-alias mysqlstop='/opt/local/bin/mysqladmin5 -u root -p shutdown'
758-alias mysqlstatus='mysqladmin5 -u root -p ping'
759diff --git a/plugins/npm/_npm b/plugins/npm/_npm
760new file mode 100644
761index 0000000000000000000000000000000000000000..24b536188e08a12e9422fef49c16409b478d329c
762--- /dev/null
763+++ b/plugins/npm/_npm
764@@ -0,0 +1,19 @@
765+#compdef npm
766+
767+# Node Package Manager 0.3.15 completion, letting npm do all the completion work
768+
769+_npm() {
770+ compadd -- $(_npm_complete $words)
771+}
772+
773+# We want to show all errors of any substance, but never the "npm (not )ok" one.
774+# (Also doesn't consider "ERR! no match found" worth breaking the terminal for.)
775+_npm_complete() {
776+ local ask_npm
777+ ask_npm=(npm completion --color false --loglevel error -- $@)
778+ { _call_program npm $ask_npm 2>&1 >&3 \
779+ | egrep -v '^(npm (not |)ok|ERR! no match found)$' >&2; \
780+ } 3>&1
781+}
782+
783+_npm "$@"
784diff --git a/plugins/perl/perl.plugin.zsh b/plugins/perl/perl.plugin.zsh
785new file mode 100644
786index 0000000000000000000000000000000000000000..f94c4195dcecb2d0c15e5baa6a651731212405ad
787--- /dev/null
788+++ b/plugins/perl/perl.plugin.zsh
789@@ -0,0 +1,62 @@
790+# https://github.com/dbbolton
791+#
792+# Below are some useful Perl-related aliases/functions that I use with zsh.
793+
794+
795+# Aliases ###################################################################
796+
797+# perlbrew ########
798+alias pbi='perlbrew install'
799+alias pbl='perlbrew list'
800+alias pbo='perlbrew off'
801+alias pbs='perlbrew switch'
802+alias pbu='perlbrew use'
803+
804+# Perl ############
805+
806+# perldoc`
807+alias pd='perldoc'
808+
809+# use perl like awk/sed
810+alias ple='perl -wlne'
811+
812+# show the latest stable release of Perl
813+alias latest-perl='curl -s http://www.perl.org/get.html | perl -wlne '\''if (/perl\-([\d\.]+)\.tar\.gz/) { print $1; exit;}'\'
814+
815+
816+
817+# Functions #################################################################
818+
819+# newpl - creates a basic Perl script file and opens it with $EDITOR
820+newpl () {
821+ # set $EDITOR to 'vim' if it is undefined
822+ [[ -z $EDITOR ]] && EDITOR=vim
823+
824+ # if the file exists, just open it
825+ [[ -e $1 ]] && print "$1 exists; not modifying.\n" && $EDITOR $1
826+
827+ # if it doesn't, make it, and open it
828+ [[ ! -e $1 ]] && print '#!/usr/bin/perl'"\n"'use strict;'"\n"'use warnings;'\
829+ "\n\n" > $1 && $EDITOR $1
830+}
831+
832+
833+# pgs - Perl Global Substitution
834+# find pattern = 1st arg
835+# replace pattern = 2nd arg
836+# filename = 3rd arg
837+pgs() { # [find] [replace] [filename]
838+ perl -i.orig -pe 's/'"$1"'/'"$2"'/g' "$3"
839+}
840+
841+
842+# Perl grep, because 'grep -P' is terrible. Lets you work with pipes or files.
843+prep() { # [pattern] [filename unless STDOUT]
844+ perl -nle 'print if /'"$1"'/;' $2
845+}
846+
847+# say - append a newline to 'print'
848+say() {
849+ print "$1\n"
850+}
851+
852diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh
853deleted file mode 100644
854index bf9f2396885713e6eb409342090be6c9790e3171..0000000000000000000000000000000000000000
855--- a/plugins/pip/pip.plugin.zsh
856+++ /dev/null
857@@ -1,4 +0,0 @@
858-# add brew completion function to path
859-fpath=($ZSH/plugins/pip $fpath)
860-autoload -U compinit
861-compinit -i
862diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh
863index 6bf2ba0882a8dcbff97412725beb4f45c00b4c6f..f669ef047c74e687edd446649f9d74e0c6eed87d 100644
864--- a/plugins/rails3/rails3.plugin.zsh
865+++ b/plugins/rails3/rails3.plugin.zsh
866@@ -1,10 +1,30 @@
867-alias rs='ruby script/rails server'
868-alias rg='ruby script/rails generate'
869-alias rd='ruby script/rails destroy'
870-alias rp='ruby script/rails plugin'
871+# Rails 3 aliases, backwards-compatible with Rails 2.
872+
873+function _bundle_command {
874+ if command -v bundle && [ -e "Gemfile" ]; then
875+ bundle exec $@
876+ else
877+ $@
878+ fi
879+}
880+
881+function _rails_command () {
882+ if [ -e "script/server" ]; then
883+ ruby script/$@
884+ else
885+ ruby script/rails $@
886+ fi
887+}
888+
889+alias rc='_rails_command console'
890+alias rd='_rails_command destroy'
891+alias rdb='_rails_command dbconsole'
892 alias rdbm='rake db:migrate db:test:clone'
893-alias rdbmr='rake db:migrate && rake db:migrate:redo'
894-alias rc='ruby script/rails console'
895-alias rd='ruby script/rails server --debugger'
896+alias rg='_rails_command generate'
897+alias rp='_rails_command plugin'
898+alias rs='_rails_command server'
899+alias rsd='_rails_command server --debugger'
900 alias devlog='tail -f log/development.log'
901
902+alias rspec='_bundle_command rspec'
903+alias cuke='_bundle_command cucumber'
904diff --git a/plugins/redis-cli/_redis-cli b/plugins/redis-cli/_redis-cli
905new file mode 100644
906index 0000000000000000000000000000000000000000..3789add182d2dd0283cf54ccece4f59a04513ac1
907--- /dev/null
908+++ b/plugins/redis-cli/_redis-cli
909@@ -0,0 +1,142 @@
910+#compdef redis-cli rec
911+#autoload
912+
913+#redis cli completion, based off homebrew completion (ref. 2011-04-14)
914+
915+local -a _1st_arguments
916+_1st_arguments=(
917+ 'append:append a value to a key'
918+ 'auth:authenticate to the server'
919+ 'bgrewriteeaof:asynchronously rewrite the append-only file'
920+ 'bgsave:asynchornously save the dataset to disk'
921+ 'blpop:remove and get the first element in a list, or block until one is available'
922+ 'brpop:remove and get the last element in a list, or block until one is available'
923+ 'brpoplpush:pop a value from a list, push it to another list and return it; or block until one is available'
924+ # 'config get:get the value of a configuration parameter'
925+ # 'config set:set a configuration parameter to the given value'
926+ # 'config resetstat: reset the stats returned by INFO'
927+ 'dbsize:return the number of keys in the selected database'
928+ # 'debug object:get debugging information about a key'
929+ # 'debug setgfault:make the server crash'
930+ 'decr:decrement the integer value of a key by one'
931+ 'decrby:decrement the integet value of a key by the given number'
932+ 'del:delete a key'
933+ 'discard:discard all commands issued after MULTI'
934+ 'echo:echo the given string'
935+ 'exec:execute all commands issued after a MULTI'
936+ 'exists:determine if a key exists'
937+ 'expire:set the time to live for a key, in seconds'
938+ 'expireat:set the expiration for a key as a UNIX timestamp'
939+ 'flushall:remove all keys from all databases'
940+ 'flushdb:remove all keys from the current database'
941+ 'get:get the value of a key'
942+ 'getbit:returns the bit value at offset in the string value stored at key'
943+ 'getrange:get a substring of the string stored at a key'
944+ 'getset:set the string value of a key and return its old value'
945+ 'hdel:delete a hash field'
946+ 'hexists:determine if a hash field exists'
947+ 'hget:get the value of a hash field'
948+ 'hgetall:get all the fields and values in a hash'
949+ 'hincrby:increment the integer value of a hash field by the given number'
950+ 'hkeys:get all the fields in a hash'
951+ 'hlen:get the number of fields in a hash'
952+ 'hmget:get the values of all the given hash fields'
953+ 'hmset:set multiple hash fields to multiple values'
954+ 'hset:set the string value of a hash field'
955+ 'hsetnx:set the value of a hash field, only if the field does not exist'
956+ 'hvals:get all the values in a hash'
957+ 'incr:increment the integer value of a key by one'
958+ 'incrby:increment the integer value of a key by the given number'
959+ 'info:get information and statistics about the server'
960+ 'keys:find all keys matching the given pattern'
961+ 'lastsave:get the UNIX timestamp of the last successful save to disk'
962+ 'lindex:get an element from a list by its index'
963+ 'linset:insert an element before or after another element in a list'
964+ 'llen:get the length of a list'
965+ 'lpop:remove and get the first element in a list'
966+ 'lpush:prepend a value to a list'
967+ 'lpushx:prepend a value to a list, only if the list exists'
968+ 'lrange:get a range of elements from a list'
969+ 'lrem:remove elements from a list'
970+ 'lset:set the value of an element in a list by its index'
971+ 'ltrim:trim a list to the specified range'
972+ 'mget:get the values of all the given keys'
973+ 'monitor:listen for all requests received by the server in real time'
974+ 'move:move a key to another database'
975+ 'mset:set multiple keys to muliple values'
976+ 'msetnx:set multiple keys tom ultiple values, only if none of the keys exist'
977+ 'multi:mark the start of a transaction block'
978+ 'object:inspect the internals of Redis objects'
979+ 'persist:remove the expiration from a key'
980+ 'ping:ping the server'
981+ 'psubscribe:listen for messages published to channels matching the given patterns'
982+ 'publish:post a message to a channel'
983+ 'punsubscribe:stop listening for messages posted to channels matching the given patterns'
984+ 'quit:close the connection'
985+ 'randomkey:return a random key from the keyspace'
986+ 'rename:rename a key'
987+ 'renamenx:rename a key, only if the new key does not exist'
988+ 'rpop:remove and get the last element in a list'
989+ 'rpoplpush:remove the last element in a list, append it to another list and return it'
990+ 'rpush:append a value to a list'
991+ 'rpushx:append a value to a list, only if the list exists'
992+ 'sadd:add a member to a set'
993+ 'save:synchronously save the dataset to disk'
994+ 'scard:get the number of members in a set'
995+ 'sdiff:subtract multiple sets'
996+ 'sdiffstore:subtract multiple sets and store the resulting set in a key'
997+ 'select:change the selected database for the current connection'
998+ 'set:set the string value of a key'
999+ 'setbit:sets or clears the bit at offset in the string value stored at key'
1000+ 'setex:set the value and expiration of a key'
1001+ 'setnx:set the value of a key, only if the key does not exist'
1002+ 'setrange:overwrite part of a string at key starting at the specified offset'
1003+ 'shutdown:synchronously save the dataset to disk and then shut down the server'
1004+ 'sinter:intersect multiple sets'
1005+ 'sinterstore:intersect multiple sets and store the resulting set in a key'
1006+ 'sismember:determine if a given value is a member of a set'
1007+ 'slaveof:make the server a slave of another instance, or promote it as master'
1008+ 'smembers:get all the members in a set'
1009diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh
1010index ce0d645c1c00ae3494aeeb5ff1f0ebd334b00955..0efc4546f98767de768bef86e9e34169935c4c13 100644
1011--- a/plugins/ssh-agent/ssh-agent.plugin.zsh
1012+++ b/plugins/ssh-agent/ssh-agent.plugin.zsh
1013@@ -1,7 +1,7 @@
1014 # Based on code from Joseph M. Reagle
1015 # http://www.cygwin.com/ml/cygwin/2001-06/msg00537.html
1016
1017-local SSH_ENV=$HOME/.ssh/environment
1018+local SSH_ENV=$HOME/.ssh/environment-$HOST
1019
1020 function start_agent {
1021 /usr/bin/env ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
1022diff --git a/plugins/vagrant/vagrant.plugin.zsh b/plugins/vagrant/vagrant.plugin.zsh
1023deleted file mode 100644
1024index 5e9bcf10a4ed23a24bdd4040f6501f3b43562caf..0000000000000000000000000000000000000000
1025--- a/plugins/vagrant/vagrant.plugin.zsh
1026+++ /dev/null
1027@@ -1,3 +0,0 @@
1028-fpath=($ZSH/plugins/vagrant $fpath)
1029-autoload -U compinit
1030-compinit -i
1031diff --git a/plugins/yum/yum.plugin.zsh b/plugins/yum/yum.plugin.zsh
1032new file mode 100644
1033index 0000000000000000000000000000000000000000..d6ba7ed62c91fb9aac9c71e4a0fcbb35aa10cf37
1034--- /dev/null
1035+++ b/plugins/yum/yum.plugin.zsh
1036@@ -0,0 +1,12 @@
1037+## Aliases
1038+
1039+alias ys="yum search" # search package
1040+alias yp="yum info" # show package info
1041+alias yl="yum list" # list packages
1042+alias yli="yum list installed" # print all installed packages
1043+
1044+alias yu="sudo yum update" # upgrate packages
1045+alias yi="sudo yum install" # install package
1046+alias yr="sudo yum remove" # remove package
1047+alias yrl="sudo yum remove --remove-leaves" # remove package and leaves
1048+alias yc="sudo yum clean all" # clean cache
1049diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template
1050index 8022b35068697ee2b02ec46536bbfce68c976445..576d45eaaadd7bc09533c73c3547f222b33b4fab 100644
1051--- a/templates/zshrc.zsh-template
1052+++ b/templates/zshrc.zsh-template
1053@@ -1,8 +1,10 @@
1054 # Path to your oh-my-zsh configuration.
1055 export ZSH=$HOME/.oh-my-zsh
1056
1057-# Set to the name theme to load.
1058+# Set name of the theme to load.
1059 # Look in ~/.oh-my-zsh/themes/
1060+# Optionally, if you set this to "random", it'll load a random theme each
1061+# time that oh-my-zsh is loaded.
1062 export ZSH_THEME="robbyrussell"
1063
1064 # Set to this to use case-sensitive completion
1065@@ -14,6 +16,9 @@ export ZSH_THEME="robbyrussell"
1066 # Uncomment following line if you want to disable colors in ls
1067 # export DISABLE_LS_COLORS="true"
1068
1069+# Uncomment following line if you want to disable autosetting terminal title.
1070+# export DISABLE_AUTO_TITLE="true"
1071+
1072 # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
1073 # Example format: plugins=(rails git textmate ruby lighthouse)
1074 plugins=(git)
1075diff --git a/themes/Soliah.zsh-theme b/themes/Soliah.zsh-theme
1076index 1c0ab3cc971e9633b7c42f32e118f0977d30375b..237e70fda314cc6ac047ebfbde7c38b2c641f8c3 100644
1077--- a/themes/Soliah.zsh-theme
1078+++ b/themes/Soliah.zsh-theme
1079@@ -1,4 +1,4 @@
1080-PROMPT='%{$fg[blue]%}%n%{$reset_color%} on %{$fg[red]%}%M%{$reset_color%} in %{$fg[blue]%}%~%b%{$reset_color%}$(git_time_since_commit)$(git_prompt_info)
1081+PROMPT='%{$fg[blue]%}%n%{$reset_color%} on %{$fg[red]%}%M%{$reset_color%} in %{$fg[blue]%}%~%b%{$reset_color%}$(git_time_since_commit)$(check_git_prompt_info)
1082 $ '
1083
1084 ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}"
1085@@ -16,6 +16,29 @@ ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[yellow]%}"
1086 ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%{$fg[red]%}"
1087 ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[cyan]%}"
1088
1089+
1090+# Git sometimes goes into a detached head state. git_prompt_info doesn't
1091+# return anything in this case. So wrap it in another function and check
1092+# for an empty string.
1093+function check_git_prompt_info() {
1094+ if git rev-parse --git-dir > /dev/null 2>&1; then
1095+ if [[ -z $(git_prompt_info) ]]; then
1096+ echo "%{$fg[magenta]%}detached-head%{$reset_color%})"
1097+ else
1098+ echo "$(git_prompt_info)"
1099+ fi
1100+ fi
1101+}
1102+
1103+# Determine if we are using a gemset.
1104+function rvm_gemset() {
1105+ GEMSET=`rvm gemset list | grep '=>' | cut -b4-`
1106+ if [[ -n $GEMSET ]]; then
1107+ echo "%{$fg[yellow]%}$GEMSET%{$reset_color%}|"
1108+ fi
1109+
1110+}
1111+
1112 # Determine the time since last commit. If branch is clean,
1113 # use a neutral color, otherwise colors will vary according to time.
1114 function git_time_since_commit() {
1115@@ -49,15 +72,15 @@ function git_time_since_commit() {
1116 fi
1117
1118 if [ "$HOURS" -gt 24 ]; then
1119- echo "($COLOR${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}|"
1120+ echo "($(rvm_gemset)$COLOR${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}|"
1121 elif [ "$MINUTES" -gt 60 ]; then
1122- echo "($COLOR${HOURS}h${SUB_MINUTES}m%{$reset_color%}|"
1123+ echo "($(rvm_gemset)$COLOR${HOURS}h${SUB_MINUTES}m%{$reset_color%}|"
1124 else
1125- echo "($COLOR${MINUTES}m%{$reset_color%}|"
1126+ echo "($(rvm_gemset)$COLOR${MINUTES}m%{$reset_color%}|"
1127 fi
1128 else
1129 COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL"
1130- echo "($COLOR~|"
1131+ echo "($(rvm_gemset)$COLOR~|"
1132 fi
1133 fi
1134 }
1135diff --git a/themes/bira.zsh-theme b/themes/bira.zsh-theme
1136index f0ee6a5bded2ca01dc9dbf2bb6ca8f1890eb2b34..5642eaeb86001bd4d4257f89f63b76cd0ab43842 100644
1137--- a/themes/bira.zsh-theme
1138+++ b/themes/bira.zsh-theme
1139@@ -3,7 +3,7 @@ local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
1140
1141 local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}'
1142 local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}'
1143-local rvm_ruby='%{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v g)›%{$reset_color%}'
1144+local rvm_ruby='%{$fg[red]%}‹$(rvm-prompt i v g)›%{$reset_color%}'
1145 local git_branch='$(git_prompt_info)%{$reset_color%}'
1146
1147 PROMPT="╭─${user_host} ${current_dir} ${rvm_ruby} ${git_branch}
1148diff --git a/themes/dogenpunk.zsh-theme b/themes/dogenpunk.zsh-theme
1149new file mode 100644
1150index 0000000000000000000000000000000000000000..f4d65ab742781e1242fb5ca5ffaaf23fe6643c86
1151--- /dev/null
1152+++ b/themes/dogenpunk.zsh-theme
1153@@ -0,0 +1,85 @@
1154+# -----------------------------------------------------------------------------
1155+# FILE: dogenpunk.zsh-theme
1156+# DESCRIPTION: oh-my-zsh theme file.
1157+# AUTHOR: Matthew Nelson (dogenpunk@gmail.com)
1158+# VERSION: 0.1
1159+# SCREENSHOT: coming soon
1160+# -----------------------------------------------------------------------------
1161+
1162+MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}"
1163+local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}"
1164+
1165+PROMPT='%{$fg[blue]%}%m%{$reset_color%}%{$fg_bold[white]%} ओम् %{$reset_color%}%{$fg[cyan]%}%~:%{$reset_color%}$(git_time_since_commit)$(git_prompt_info)
1166+%{$fg[red]%}%!%{$reset_color%} $(prompt_char) '
1167+
1168+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[green]%}git%{$reset_color%}@%{$bg[white]%}%{$fg[black]%}"
1169+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%})"
1170+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!%{$reset_color%}"
1171+ZSH_THEME_GIT_PROMPT_CLEAN=""
1172+
1173+RPROMPT='${return_status}$(git_prompt_status)%{$reset_color%}'
1174+
1175+ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚"
1176+ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹"
1177+ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖"
1178+ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜"
1179+ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═"
1180+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭"
1181+
1182+function prompt_char() {
1183+ git branch >/dev/null 2>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" && return
1184+ hg root >/dev/null 2>/dev/null && echo "%{$fg_bold[red]%}☿%{$reset_color%}" && return
1185+ echo "%{$fg[cyan]%}◯ %{$reset_color%}"
1186+}
1187+
1188+# Colors vary depending on time lapsed.
1189+ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT="%{$fg[green]%}"
1190+ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[yellow]%}"
1191+ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%{$fg[red]%}"
1192+ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[cyan]%}"
1193+
1194+# Determine the time since last commit. If branch is clean,
1195+# use a neutral color, otherwise colors will vary according to time.
1196+function git_time_since_commit() {
1197+ if git rev-parse --git-dir > /dev/null 2>&1; then
1198+ # Only proceed if there is actually a commit.
1199+ if [[ $(git log 2>&1 > /dev/null | grep -c "^fatal: bad default revision") == 0 ]]; then
1200+ # Get the last commit.
1201+ last_commit=`git log --pretty=format:'%at' -1 2> /dev/null`
1202+ now=`date +%s`
1203+ seconds_since_last_commit=$((now-last_commit))
1204+
1205+ # Totals
1206+ MINUTES=$((seconds_since_last_commit / 60))
1207+ HOURS=$((seconds_since_last_commit/3600))
1208+
1209+ # Sub-hours and sub-minutes
1210+ DAYS=$((seconds_since_last_commit / 86400))
1211+ SUB_HOURS=$((HOURS % 24))
1212+ SUB_MINUTES=$((MINUTES % 60))
1213+
1214+ if [[ -n $(git status -s 2> /dev/null) ]]; then
1215+ if [ "$MINUTES" -gt 30 ]; then
1216+ COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG"
1217+ elif [ "$MINUTES" -gt 10 ]; then
1218+ COLOR="$ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM"
1219+ else
1220+ COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT"
1221+ fi
1222+ else
1223+ COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL"
1224+ fi
1225+
1226+ if [ "$HOURS" -gt 24 ]; then
1227+ echo "($COLOR${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}|"
1228+ elif [ "$MINUTES" -gt 60 ]; then
1229+ echo "($COLOR${HOURS}h${SUB_MINUTES}m%{$reset_color%}|"
1230+ else
1231+ echo "($COLOR${MINUTES}m%{$reset_color%}|"
1232+ fi
1233+ else
1234+ COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL"
1235+ echo "($COLOR~|"
1236+ fi
1237+ fi
1238+}
1239diff --git a/themes/frisk.zsh-theme b/themes/frisk.zsh-theme
1240new file mode 100644
1241index 0000000000000000000000000000000000000000..f181aec9017616a2f938d8e857756be06214e14c
1242--- /dev/null
1243+++ b/themes/frisk.zsh-theme
1244@@ -0,0 +1,10 @@
1245+PROMPT=$'
1246+%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%}
1247+%{$fg_bold[black]%}>%{$reset_color%} '
1248+
1249+PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}"
1250+
1251+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}["
1252+ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} "
1253+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}"
1254+ZSH_THEME_GIT_PROMPT_CLEAN=""
1255diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme
1256new file mode 100644
1257index 0000000000000000000000000000000000000000..259640ba40cdee547cc8826126dae6f9e4a9d748
1258--- /dev/null
1259+++ b/themes/gallois.zsh-theme
1260@@ -0,0 +1,19 @@
1261+ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}["
1262+ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}"
1263+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}"
1264+ZSH_THEME_GIT_PROMPT_CLEAN=""
1265+
1266+#Customized git status, oh-my-zsh currently does not allow render dirty status before branch
1267+git_custom_status() {
1268+ local cb=$(current_branch)
1269+ if [ -n "$cb" ]; then
1270+ echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX"
1271+ fi
1272+}
1273+
1274+#RVM and git settings
1275+if [[ -s ~/.rvm/scripts/rvm ]] ; then
1276+ RPS1='$(git_custom_status)%{$fg[red]%}[`~/.rvm/bin/rvm-prompt`]%{$reset_color%} $EPS1'
1277+fi
1278+
1279+PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b '
1280diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme
1281new file mode 100644
1282index 0000000000000000000000000000000000000000..add485279cfcc0df29817e1cabc8b8224e9948af
1283--- /dev/null
1284+++ b/themes/jonathan.zsh-theme
1285@@ -0,0 +1,137 @@
1286+function precmd {
1287+ local TERMWIDTH
1288+ (( TERMWIDTH = ${COLUMNS} - 1 ))
1289+
1290+
1291+ ###
1292+ # Truncate the path if it's too long.
1293+
1294+ PR_FILLBAR=""
1295+ PR_PWDLEN=""
1296+
1297+ local promptsize=${#${(%):---(%n@%m:%l)---()--}}
1298+ local rubyprompt=`rvm_prompt_info`
1299+ local rubypromptsize=${#${rubyprompt}}
1300+ local pwdsize=${#${(%):-%~}}
1301+
1302+ if [[ "$promptsize + $rubypromptsize + $pwdsize" -gt $TERMWIDTH ]]; then
1303+ ((PR_PWDLEN=$TERMWIDTH - $promptsize))
1304+ else
1305+ PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $rubypromptsize + $pwdsize)))..${PR_HBAR}.)}"
1306+ fi
1307+
1308+}
1309+
1310+
1311+setopt extended_glob
1312+preexec () {
1313+ if [[ "$TERM" == "screen" ]]; then
1314+ local CMD=${1[(wr)^(*=*|sudo|-*)]}
1315+ echo -n "\ek$CMD\e\\"
1316+ fi
1317+}
1318+
1319+
1320+setprompt () {
1321+ ###
1322+ # Need this so the prompt will work.
1323+
1324+ setopt prompt_subst
1325+
1326+
1327+ ###
1328+ # See if we can use colors.
1329+
1330+ autoload colors zsh/terminfo
1331+ if [[ "$terminfo[colors]" -ge 8 ]]; then
1332+ colors
1333+ fi
1334+ for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE GREY; do
1335+ eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
1336+ eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
1337+ (( count = $count + 1 ))
1338+ done
1339+ PR_NO_COLOUR="%{$terminfo[sgr0]%}"
1340+
1341+ ###
1342+ # Modify Git prompt
1343+ ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[green]%}"
1344+ ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
1345+ ZSH_THEME_GIT_PROMPT_DIRTY=""
1346+ ZSH_THEME_GIT_PROMPT_CLEAN=""
1347+
1348+ ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚"
1349+ ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹"
1350+ ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖"
1351+ ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜"
1352+ ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═"
1353+ ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭"
1354+
1355+ ###
1356+ # See if we can use extended characters to look nicer.
1357+
1358+ typeset -A altchar
1359+ set -A altchar ${(s..)terminfo[acsc]}
1360+ PR_SET_CHARSET="%{$terminfo[enacs]%}"
1361+ PR_SHIFT_IN="%{$terminfo[smacs]%}"
1362+ PR_SHIFT_OUT="%{$terminfo[rmacs]%}"
1363+ PR_HBAR=${altchar[q]:--}
1364+ PR_ULCORNER=${altchar[l]:--}
1365+ PR_LLCORNER=${altchar[m]:--}
1366+ PR_LRCORNER=${altchar[j]:--}
1367+ PR_URCORNER=${altchar[k]:--}
1368+
1369+
1370+ ###
1371+ # Decide if we need to set titlebar text.
1372+
1373+ case $TERM in
1374+ xterm*)
1375+ PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}'
1376+ ;;
1377+ screen)
1378+ PR_TITLEBAR=$'%{\e_screen \005 (\005t) | %(!.-=[ROOT]=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\e\\%}'
1379+ ;;
1380+ *)
1381+ PR_TITLEBAR=''
1382+ ;;
1383+ esac
1384+
1385diff --git a/themes/jtriley.zsh-theme b/themes/jtriley.zsh-theme
1386new file mode 100644
1387index 0000000000000000000000000000000000000000..ec62a2208270b13b3f5b6680434418f5e6793c5e
1388--- /dev/null
1389+++ b/themes/jtriley.zsh-theme
1390@@ -0,0 +1,8 @@
1391+#PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
1392+PROMPT="%{$fg_bold[cyan]%}%T%{$fg_bold[green]%} %{$fg_bold[white]%}%n%{$fg[magenta]%}@%{$fg_bold[white]%}%m %{$fg_bold[green]%}%d
1393+%{$fg_bold[yellow]%}%% $(git_prompt_info)%{$reset_color%}"
1394+
1395+#ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}"
1396+#ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
1397+#ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
1398+#ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
1399diff --git a/themes/juanghurtado.zsh-theme b/themes/juanghurtado.zsh-theme
1400new file mode 100644
1401index 0000000000000000000000000000000000000000..2f715cc9e6dd606a74f086ca4f4bfa71d3792602
1402--- /dev/null
1403+++ b/themes/juanghurtado.zsh-theme
1404@@ -0,0 +1,46 @@
1405+# ------------------------------------------------------------------------
1406+# Juan G. Hurtado oh-my-zsh theme
1407+# (Needs Git plugin for current_branch method)
1408+# ------------------------------------------------------------------------
1409+
1410+# Color shortcuts
1411+RED=$fg[red]
1412+YELLOW=$fg[yellow]
1413+GREEN=$fg[green]
1414+WHITE=$fg[white]
1415+BLUE=$fg[blue]
1416+RED_BOLD=$fg_bold[red]
1417+YELLOW_BOLD=$fg_bold[yellow]
1418+GREEN_BOLD=$fg_bold[green]
1419+WHITE_BOLD=$fg_bold[white]
1420+BLUE_BOLD=$fg_bold[blue]
1421+RESET_COLOR=$reset_color
1422+
1423+# Format for git_prompt_info()
1424+ZSH_THEME_GIT_PROMPT_PREFIX=""
1425+ZSH_THEME_GIT_PROMPT_SUFFIX=""
1426+
1427+# Format for parse_git_dirty()
1428+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$RED%}(*)"
1429+ZSH_THEME_GIT_PROMPT_CLEAN=""
1430+
1431+# Format for git_prompt_status()
1432+ZSH_THEME_GIT_PROMPT_UNMERGED=" %{$RED%}unmerged"
1433+ZSH_THEME_GIT_PROMPT_DELETED=" %{$RED%}deleted"
1434+ZSH_THEME_GIT_PROMPT_RENAMED=" %{$YELLOW%}renamed"
1435+ZSH_THEME_GIT_PROMPT_MODIFIED=" %{$YELLOW%}modified"
1436+ZSH_THEME_GIT_PROMPT_ADDED=" %{$GREEN%}added"
1437+ZSH_THEME_GIT_PROMPT_UNTRACKED=" %{$WHITE%}untracked"
1438+
1439+# Format for git_prompt_ahead()
1440+ZSH_THEME_GIT_PROMPT_AHEAD=" %{$RED%}(!)"
1441+
1442+# Format for git_prompt_long_sha() and git_prompt_short_sha()
1443+ZSH_THEME_GIT_PROMPT_SHA_BEFORE=" %{$WHITE%}[%{$YELLOW%}"
1444+ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$WHITE%}]"
1445+
1446+# Prompt format
1447+PROMPT='
1448+%{$GREEN_BOLD%}%n@%m%{$WHITE%}:%{$YELLOW%}%~%u$(parse_git_dirty)$(git_prompt_ahead)%{$RESET_COLOR%}
1449+%{$BLUE%}>%{$RESET_COLOR%} '
1450+RPROMPT='%{$GREEN_BOLD%}$(current_branch)$(git_prompt_short_sha)$(git_prompt_status)%{$RESET_COLOR%}'
1451diff --git a/themes/kolo.zsh-theme b/themes/kolo.zsh-theme
1452new file mode 100644
1453index 0000000000000000000000000000000000000000..6e04e1595aa4d0d0dfc96f1961bfb756252ed9f4
1454--- /dev/null
1455+++ b/themes/kolo.zsh-theme
1456@@ -0,0 +1,21 @@
1457+autoload -U colors && colors
1458+
1459+autoload -Uz vcs_info
1460+
1461+zstyle ':vcs_info:*' stagedstr '%F{green}●'
1462+zstyle ':vcs_info:*' unstagedstr '%F{yellow}●'
1463+zstyle ':vcs_info:*' check-for-changes true
1464+zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r'
1465+zstyle ':vcs_info:*' enable git svn
1466+precmd () {
1467+ if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] {
1468+ zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{green}]'
1469+ } else {
1470+ zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{red}●%F{green}]'
1471+ }
1472+
1473+ vcs_info
1474+}
1475+
1476+setopt prompt_subst
1477+PROMPT='%B%F{magenta}%c%B%F{green}${vcs_info_msg_0_}%B%F{magenta} %{$reset_color%}%% '
1478diff --git a/themes/kphoen.zsh-theme b/themes/kphoen.zsh-theme
1479new file mode 100644
1480index 0000000000000000000000000000000000000000..0e9b5e73ca5c8fe4308107b8be447cd7d949da09
1481--- /dev/null
1482+++ b/themes/kphoen.zsh-theme
1483@@ -0,0 +1,50 @@
1484+# ------------------------------------------------------------------------------
1485+# FILE: kphoen.zsh-theme
1486+# DESCRIPTION: oh-my-zsh theme file.
1487+# AUTHOR: Kévin Gomez (geek63@gmail.com)
1488+# VERSION: 1.0.0
1489+# SCREENSHOT:
1490+# ------------------------------------------------------------------------------
1491+
1492+
1493+if [[ "$TERM" != "dumb" ]] && [[ "$DISABLE_LS_COLORS" != "true" ]]; then
1494+ PROMPT='[%{$fg[red]%}%n%{$reset_color%}@%{$fg[magenta]%}%m%{$reset_color%}:%{$fg[blue]%}%~%{$reset_color%}$(git_prompt_info)]
1495+%# '
1496+
1497+ ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[green]%}"
1498+ ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
1499+ ZSH_THEME_GIT_PROMPT_DIRTY=""
1500+ ZSH_THEME_GIT_PROMPT_CLEAN=""
1501+
1502+ # display exitcode on the right when >0
1503+ return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
1504+
1505+ RPROMPT='${return_code}$(git_prompt_status)%{$reset_color%}'
1506+
1507+ ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚"
1508+ ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹"
1509+ ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖"
1510+ ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜"
1511+ ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═"
1512+ ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭"
1513+else
1514+ PROMPT='[%n@%m:%~$(git_prompt_info)]
1515+%# '
1516+
1517+ ZSH_THEME_GIT_PROMPT_PREFIX=" on"
1518+ ZSH_THEME_GIT_PROMPT_SUFFIX=""
1519+ ZSH_THEME_GIT_PROMPT_DIRTY=""
1520+ ZSH_THEME_GIT_PROMPT_CLEAN=""
1521+
1522+ # display exitcode on the right when >0
1523+ return_code="%(?..%? ↵)"
1524+
1525+ RPROMPT='${return_code}$(git_prompt_status)'
1526+
1527+ ZSH_THEME_GIT_PROMPT_ADDED=" ✚"
1528+ ZSH_THEME_GIT_PROMPT_MODIFIED=" ✹"
1529+ ZSH_THEME_GIT_PROMPT_DELETED=" ✖"
1530+ ZSH_THEME_GIT_PROMPT_RENAMED=" ➜"
1531+ ZSH_THEME_GIT_PROMPT_UNMERGED=" ═"
1532+ ZSH_THEME_GIT_PROMPT_UNTRACKED=" ✭"
1533+fi
1534diff --git a/themes/murilasso.zsh-theme b/themes/murilasso.zsh-theme
1535new file mode 100644
1536index 0000000000000000000000000000000000000000..310357b4586efe5b43594277c7ee88f48a2f7152
1537--- /dev/null
1538+++ b/themes/murilasso.zsh-theme
1539@@ -0,0 +1,14 @@
1540+local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
1541+local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}'
1542+local current_dir='%{$terminfo[bold]$fg[blue]%}%~%{$reset_color%}'
1543+local rvm_ruby='%{$fg[red]%}$(rvm_prompt_info)%{$reset_color%}'
1544+local git_branch='%{$fg[blue]%}$(git_prompt_info)%{$reset_color%}'
1545+
1546+PROMPT="${user_host}:${current_dir} ${rvm_ruby}
1547+${git_branch} %B$%b "
1548+RPS1="${return_code}"
1549+
1550+ZSH_THEME_GIT_PROMPT_PREFIX=""
1551+ZSH_THEME_GIT_PROMPT_SUFFIX=""
1552+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}✗%{$reset_color%}"
1553+ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}✔%{$reset_color%}"
1554diff --git a/themes/muse.zsh-theme b/themes/muse.zsh-theme
1555new file mode 100644
1556index 0000000000000000000000000000000000000000..4bd8fb825e9368228a70a75ad56c5e4da5f44458
1557--- /dev/null
1558+++ b/themes/muse.zsh-theme
1559@@ -0,0 +1,30 @@
1560+#!/usr/bin/env zsh
1561+#local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
1562+
1563+setopt promptsubst
1564+
1565+autoload -U add-zsh-hook
1566+
1567+PROMPT_SUCCESS_COLOR=$FG[117]
1568+PROMPT_FAILURE_COLOR=$FG[124]
1569+PROMPT_VCS_INFO_COLOR=$FG[242]
1570+PROMPT_PROMPT=$FG[077]
1571+GIT_DIRTY_COLOR=$FG[133]
1572+GIT_CLEAN_COLOR=$FG[118]
1573+GIT_PROMPT_INFO=$FG[012]
1574+
1575+PROMPT='%{$PROMPT_SUCCESS_COLOR%}%~%{$reset_color%} %{$GIT_PROMPT_INFO%}$(git_prompt_info)%{$GIT_DIRTY_COLOR%}$(git_prompt_status) %{$reset_color%}%{$PROMPT_PROMPT%}ᐅ%{$reset_color%} '
1576+
1577+#RPS1="${return_code}"
1578+
1579+ZSH_THEME_GIT_PROMPT_PREFIX="("
1580+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$GIT_PROMPT_INFO%})"
1581+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$GIT_DIRTY_COLOR%}✘"
1582+ZSH_THEME_GIT_PROMPT_CLEAN=" %{$GIT_CLEAN_COLOR%}✔"
1583+
1584+ZSH_THEME_GIT_PROMPT_ADDED="%{$FG[082]%}✚%{$reset_color%}"
1585+ZSH_THEME_GIT_PROMPT_MODIFIED="%{$FG[166]%}✹%{$reset_color%}"
1586+ZSH_THEME_GIT_PROMPT_DELETED="%{$FG[160]%}✖%{$reset_color%}"
1587+ZSH_THEME_GIT_PROMPT_RENAMED="%{$FG[220]%}➜%{$reset_color%}"
1588+ZSH_THEME_GIT_PROMPT_UNMERGED="%{$FG[082]%}═%{$reset_color%}"
1589+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$FG[190]%}✭%{$reset_color%}"
1590diff --git a/themes/tjkirch.zsh-theme b/themes/tjkirch.zsh-theme
1591new file mode 100644
1592index 0000000000000000000000000000000000000000..446cde724e7e66fa40c754b47af7ab6adc6ec1c4
1593--- /dev/null
1594+++ b/themes/tjkirch.zsh-theme
1595@@ -0,0 +1,15 @@
1596+ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}"
1597+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
1598+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}⚡"
1599+ZSH_THEME_GIT_PROMPT_CLEAN=""
1600+
1601+function prompt_char {
1602+ if [ $UID -eq 0 ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi
1603+}
1604+
1605+PROMPT='%(?, ,%{$fg[red]%}FAIL: $?%{$reset_color%}
1606+)
1607+%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}%m%{$reset_color%}: %{$fg_bold[blue]%}%~%{$reset_color%}$(git_prompt_info)
1608+%_$(prompt_char) '
1609+
1610+RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}'
1611diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh
1612index 4643739ca51b136737c4a1981e3354b8162cb66c..e1e4eb99f0a6c954ad09cf6faf1c4f0f9b342888 100644
1613--- a/tools/check_for_upgrade.sh
1614+++ b/tools/check_for_upgrade.sh
1615@@ -25,10 +25,11 @@ then
1616 if [ "$line" = Y ] || [ "$line" = y ]
1617 then
1618 /bin/sh $ZSH/tools/upgrade.sh
1619+ # update the zsh file
1620+ _update_zsh_update
1621 fi
1622 fi
1623+else
1624+ # create the zsh file
1625+ _update_zsh_update
1626 fi
1627-
1628-# update the zsh file
1629-_update_zsh_update
1630-
1631diff --git a/tools/install.sh b/tools/install.sh
1632index 6e3872bb9ef24466ff32e67013128a61eae13679..8ed1403af12109c0dd23051e41c4acf353501fcf 100755
1633--- a/tools/install.sh
1634+++ b/tools/install.sh
1635@@ -5,7 +5,7 @@ then
1636 fi
1637
1638 echo "Cloning Oh My Zsh..."
1639-/usr/bin/env git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
1640+/usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
1641
1642 echo "Looking for an existing zsh config..."
1643 if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]
1644@@ -22,7 +22,7 @@ echo "Copying your current PATH and adding it to the end of ~/.zshrc for you."
1645 echo "export PATH=$PATH" >> ~/.zshrc
1646
1647 echo "Time to change your default shell to zsh!"
1648-chsh -s "/usr/bin/env zsh"
1649+chsh -s `which zsh`
1650
1651 echo ' __ __ '
1652 echo ' ____ / /_ ____ ___ __ __ ____ _____/ /_ '