summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--README.textile9
-rw-r--r--lib/completion.zsh2
-rw-r--r--lib/directories.zsh4
-rw-r--r--lib/key-bindings.zsh1
-rw-r--r--lib/misc.zsh2
-rw-r--r--lib/termsupport.zsh4
-rw-r--r--oh-my-zsh.sh2
-rw-r--r--plugins/bundler/bundler.plugin.zsh2
-rw-r--r--plugins/debian/debian.plugin.zsh39
-rw-r--r--plugins/dircycle/dircycle.plugin.zsh10
-rw-r--r--plugins/dirpersist/dirpersist.plugin.zsh2
-rw-r--r--plugins/encode64/encode64.plugin.zsh2
-rw-r--r--plugins/fasd/fasd.plugin.zsh6
-rw-r--r--plugins/git-flow/git-flow.plugin.zsh4
-rw-r--r--plugins/git/git.plugin.zsh8
-rwxr-xr-xplugins/jruby/jruby.plugin.zsh4
-rw-r--r--plugins/mvn/mvn.plugin.zsh6
-rw-r--r--plugins/rails3/rails3.plugin.zsh1
-rw-r--r--plugins/rbenv/rbenv.plugin.zsh17
-rw-r--r--plugins/rbfu/rbfu.plugin.zsh42
-rw-r--r--plugins/screen/screen.plugin.zsh54
-rw-r--r--plugins/suse/suse.plugin.zsh7
-rw-r--r--plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh46
-rw-r--r--plugins/yum/yum.plugin.zsh6
-rw-r--r--themes/fino-time.zsh-theme39
-rw-r--r--themes/nebirhos.zsh-theme2
-rw-r--r--themes/steeef.zsh-theme2
-rw-r--r--themes/terminalparty.zsh-theme2
-rw-r--r--tools/check_for_upgrade.sh2
-rwxr-xr-xtools/install.sh5
31 files changed, 296 insertions, 39 deletions
diff --git a/.gitignore b/.gitignore
index 2e8db7341..51a5ee6c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,5 +4,6 @@ projects.zsh
custom/*
!custom/example
!custom/example.zsh
-cache
*.swp
+!custom/example.zshcache
+cache/
diff --git a/README.textile b/README.textile
index bf6776665..a38e2d7cf 100644
--- a/README.textile
+++ b/README.textile
@@ -1,5 +1,6 @@
A handful of functions, auto-complete helpers, and stuff that makes you shout...
+
bq. "OH MY ZSHELL!"
h2. Setup
@@ -68,9 +69,13 @@ h2. Help out!
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!
-h3. Send us your theme!
+h3. (Don't) Send us your theme! (for now)
+
+-I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.-
+
+We have enough themes for the time being. Please fork the project and add on in there, you can let people know how to grab it from there.
+
-I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.
h2. Contributors
diff --git a/lib/completion.zsh b/lib/completion.zsh
index b964595ed..f31e101d5 100644
--- a/lib/completion.zsh
+++ b/lib/completion.zsh
@@ -46,7 +46,7 @@ zstyle ':completion:*:hosts' hosts $hosts
# Use caching so that commands like apt and dpkg complete are useable
zstyle ':completion::complete:*' use-cache 1
-zstyle ':completion::complete:*' cache-path ~/.oh-my-zsh/cache/
+zstyle ':completion::complete:*' cache-path $ZSH/cache/
# Don't complete uninteresting users
zstyle ':completion:*:*:*:users' ignored-patterns \
diff --git a/lib/directories.zsh b/lib/directories.zsh
index bb114f615..a787db9eb 100644
--- a/lib/directories.zsh
+++ b/lib/directories.zsh
@@ -36,9 +36,9 @@ cd () {
alias md='mkdir -p'
alias rd=rmdir
-alias d='dirs -v'
+alias d='dirs -v | head -10'
# mkdir & cd to it
function mcd() {
mkdir -p "$1" && cd "$1";
-} \ No newline at end of file
+}
diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh
index 5c1b90bfa..5f499f3e8 100644
--- a/lib/key-bindings.zsh
+++ b/lib/key-bindings.zsh
@@ -3,7 +3,6 @@
bindkey -e
bindkey '\ew' kill-region
bindkey -s '\el' "ls\n"
-bindkey -s '\e.' "..\n"
bindkey '^r' history-incremental-search-backward
bindkey "^[[5~" up-line-or-history
bindkey "^[[6~" down-line-or-history
diff --git a/lib/misc.zsh b/lib/misc.zsh
index 88732e664..0f7e7e925 100644
--- a/lib/misc.zsh
+++ b/lib/misc.zsh
@@ -9,5 +9,5 @@ bindkey "^[m" copy-prev-shell-word
setopt long_list_jobs
## pager
-export PAGER=less
+export PAGER="less -R"
export LC_CTYPE=$LANG
diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh
index 221989502..e26fef6d3 100644
--- a/lib/termsupport.zsh
+++ b/lib/termsupport.zsh
@@ -3,7 +3,9 @@
#Fully support screen, iterm, and probably most modern xterm and rxvt
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
function title {
- [ "$DISABLE_AUTO_TITLE" != "true" ] || return
+ if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then
+ return
+ fi
if [[ "$TERM" == screen* ]]; then
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
index c2b6049cb..ddef1ad6c 100644
--- a/oh-my-zsh.sh
+++ b/oh-my-zsh.sh
@@ -51,7 +51,7 @@ for plugin ($plugins); do
done
# Load all of your custom configurations from custom/
-for config_file ($ZSH_CUSTOM/*.zsh(.N)) source $config_file
+for config_file ($ZSH_CUSTOM/*.zsh(N)) source $config_file
# Load the theme
if [ "$ZSH_THEME" = "random" ]
diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh
index e1f571237..1ca48089e 100644
--- a/plugins/bundler/bundler.plugin.zsh
+++ b/plugins/bundler/bundler.plugin.zsh
@@ -6,7 +6,7 @@ alias bu="bundle update"
# The following is based on https://github.com/gma/bundler-exec
-bundled_commands=(annotate cap capify cucumber ey foreman guard heroku middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails)
+bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails)
## Functions
diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh
index 16a5d54ca..39d3ef36a 100644
--- a/plugins/debian/debian.plugin.zsh
+++ b/plugins/debian/debian.plugin.zsh
@@ -40,20 +40,23 @@ alias ap='apt-cache policy'
# superuser operations ######################################################
if [[ $use_sudo -eq 1 ]]; then
# commands using sudo #######
- alias aac="sudo $apt_pref autoclean"
- alias abd="sudo $apt_pref build-dep"
- alias ac="sudo $apt_pref clean"
- alias ad="sudo $apt_pref update"
- alias adg="sudo $apt_pref update && sudo $apt_pref upgrade"
- alias adu="sudo $apt_pref update && sudo $apt_pref dist-upgrade"
+ alias aac='sudo $apt_pref autoclean'
+ alias abd='sudo $apt_pref build-dep'
+ alias ac='sudo $apt_pref clean'
+ alias ad='sudo $apt_pref update'
+ alias adg='sudo $apt_pref update && sudo $apt_pref upgrade'
+ alias adu='sudo $apt_pref update && sudo $apt_pref dist-upgrade'
alias afu='sudo apt-file update'
- alias ag="sudo $apt_pref upgrade"
- alias ai="sudo $apt_pref install"
- alias ap="sudo $apt_pref purge"
- alias ar="sudo $apt_pref remove"
+ alias ag='sudo $apt_pref upgrade'
+ alias ai='sudo $apt_pref install'
+ # Install all packages given on the command line while using only the first word of each line:
+ # acs ... | ail
+ alias ail="sed -e 's/ */ /g' -e 's/ *//' | cut -s -d ' ' -f 1 | "' xargs sudo $apt_pref install'
+ alias ap='sudo $apt_pref purge'
+ alias ar='sudo $apt_pref remove'
# apt-get only
- alias ads="sudo $apt_pref dselect-upgrade"
+ alias ads='sudo $apt_pref dselect-upgrade'
# Install all .deb files in the current directory.
# Warning: you will need to put the glob in single quotes if you use:
@@ -67,18 +70,18 @@ if [[ $use_sudo -eq 1 ]]; then
# commands using su #########
else
- alias aac='su -ls "'"$apt_pref"' autoclean" root'
+ alias aac='su -ls \'$apt_pref autoclean\' root'
abd() {
cmd="su -lc '$apt_pref build-dep $@' root"
print "$cmd"
eval "$cmd"
}
- alias ac='su -ls "'"$apt_pref"' clean" root'
- alias ad='su -lc "'"$apt_pref"' update" root'
- alias adg='su -lc "'"$apt_pref"' update && aptitude safe-upgrade" root'
- alias adu='su -lc "'"$apt_pref"' update && aptitude dist-upgrade" root'
+ alias ac='su -ls \'$apt_pref clean\' root'
+ alias ad='su -lc \'$apt_pref update\' root'
+ alias adg='su -lc \'$apt_pref update && aptitude safe-upgrade\' root'
+ alias adu='su -lc \'$apt_pref update && aptitude dist-upgrade\' root'
alias afu='su -lc "apt-file update"'
- alias ag='su -lc "'"$apt_pref"' safe-upgrade" root'
+ alias ag='su -lc \'$apt_pref safe-upgrade\' root'
ai() {
cmd="su -lc 'aptitude -P install $@' root"
print "$cmd"
@@ -118,7 +121,7 @@ alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
apt-copy() {
print '#!/bin/sh'"\n" > apt-copy.sh
- cmd="$apt_pref install "
+ cmd='$apt_pref install'
for p in ${(f)"$(aptitude search -F "%p" --disable-columns \~i)"}; {
cmd="${cmd} ${p}"
diff --git a/plugins/dircycle/dircycle.plugin.zsh b/plugins/dircycle/dircycle.plugin.zsh
new file mode 100644
index 000000000..46a0ab268
--- /dev/null
+++ b/plugins/dircycle/dircycle.plugin.zsh
@@ -0,0 +1,10 @@
+##
+# dircycle plugin: enables cycling through the directory
+# stack using Ctrl+Shift+Left/Right
+
+eval "insert-cycledleft () { zle push-line; LBUFFER='pushd -q +1'; zle accept-line }"
+zle -N insert-cycledleft
+bindkey "\e[1;6D" insert-cycledleft
+eval "insert-cycledright () { zle push-line; LBUFFER='pushd -q -0'; zle accept-line }"
+zle -N insert-cycledright
+bindkey "\e[1;6C" insert-cycledright
diff --git a/plugins/dirpersist/dirpersist.plugin.zsh b/plugins/dirpersist/dirpersist.plugin.zsh
index 6a2b289a2..0f6d9f435 100644
--- a/plugins/dirpersist/dirpersist.plugin.zsh
+++ b/plugins/dirpersist/dirpersist.plugin.zsh
@@ -12,7 +12,7 @@ dirpersistinstall () {
if grep 'dirpersiststore' ~/.zlogout > /dev/null; then
else
if read -q \?"Would you like to set up your .zlogout file for use with dirspersist? (y/n) "; then
- echo "# Store dirs stack\n# See ~/.oh-my-zsh/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout
+ echo "# Store dirs stack\n# See $ZSH/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout
else
echo "If you don't want this message to appear, remove dirspersist from \$plugins"
fi
diff --git a/plugins/encode64/encode64.plugin.zsh b/plugins/encode64/encode64.plugin.zsh
new file mode 100644
index 000000000..cfb7c6a18
--- /dev/null
+++ b/plugins/encode64/encode64.plugin.zsh
@@ -0,0 +1,2 @@
+encode64(){ echo -n $1 | base64 }
+decode64(){ echo -n $1 | base64 -D } \ No newline at end of file
diff --git a/plugins/fasd/fasd.plugin.zsh b/plugins/fasd/fasd.plugin.zsh
new file mode 100644
index 000000000..d42584f1a
--- /dev/null
+++ b/plugins/fasd/fasd.plugin.zsh
@@ -0,0 +1,6 @@
+if [ $commands[fasd] ]; then # check if fasd is installed
+ eval "$(fasd --init auto)"
+ alias v='f -e vim'
+ alias o='a -e open'
+fi
+
diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh
index 270bcbe38..71b343884 100644
--- a/plugins/git-flow/git-flow.plugin.zsh
+++ b/plugins/git-flow/git-flow.plugin.zsh
@@ -110,6 +110,8 @@ __git-flow-release ()
-u'[Use the given GPG-key for the digital signature (implies -s)]'\
-m'[Use the given tag message]'\
-p'[Push to $ORIGIN after performing finish]'\
+ -k'[Keep branch after performing finish]'\
+ -n"[Don't tag this release]"\
':version:__git_flow_version_list'
;;
@@ -162,6 +164,8 @@ __git-flow-hotfix ()
-u'[Use the given GPG-key for the digital signature (implies -s)]'\
-m'[Use the given tag message]'\
-p'[Push to $ORIGIN after performing finish]'\
+ -k'[Keep branch after performing finish]'\
+ -n"[Don't tag this release]"\
':hotfix:__git_flow_hotfix_list'
;;
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index e1d682508..d3d3f702a 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -54,10 +54,16 @@ function current_branch() {
echo ${ref#refs/heads/}
}
+function current_repository() {
+
+ ref=$(git symbolic-ref HEAD 2> /dev/null) || return
+ echo $(git remote -v | cut -d':' -f 2)
+}
+
# these aliases take advantage of the previous function
alias ggpull='git pull origin $(current_branch)'
compdef ggpull=git
alias ggpush='git push origin $(current_branch)'
compdef ggpush=git
alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
-compdef ggpnp=git \ No newline at end of file
+compdef ggpnp=git
diff --git a/plugins/jruby/jruby.plugin.zsh b/plugins/jruby/jruby.plugin.zsh
new file mode 100755
index 000000000..bb7975b10
--- /dev/null
+++ b/plugins/jruby/jruby.plugin.zsh
@@ -0,0 +1,4 @@
+# Aliases
+alias jrspec='jruby --debug -S rspec --debug'
+alias jprofile='jruby --profile.api -S rspec'
+alias jexec='jruby -S'
diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh
new file mode 100644
index 000000000..e8af2f49d
--- /dev/null
+++ b/plugins/mvn/mvn.plugin.zsh
@@ -0,0 +1,6 @@
+function listMavenCompletions {
+ reply=(
+ cli:execute cli:execute-phase archetype:generate generate-sources compile clean install test test-compile deploy package cobertura:cobertura jetty:run gwt:run gwt:debug -DskipTests -Dmaven.test.skip=true -DarchetypeCatalog=http://tapestry.formos.com/maven-snapshot-repository -Dtest= `if [ -d ./src ] ; then find ./src -type f | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`);
+}
+
+compctl -K listMavenCompletions mvn \ No newline at end of file
diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh
index d4c7df654..237d0594b 100644
--- a/plugins/rails3/rails3.plugin.zsh
+++ b/plugins/rails3/rails3.plugin.zsh
@@ -13,6 +13,7 @@ alias rd='_rails_command destroy'
alias rdb='_rails_command dbconsole'
alias rdbm='rake db:migrate db:test:clone'
alias rg='_rails_command generate'
+alias rgm='_rails_command generate migration'
alias rp='_rails_command plugin'
alias ru='_rails_command runner'
alias rs='_rails_command server'
diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh
index ae37404cd..d855c2445 100644
--- a/plugins/rbenv/rbenv.plugin.zsh
+++ b/plugins/rbenv/rbenv.plugin.zsh
@@ -1,10 +1,23 @@
+_homebrew-installed() {
+ type brew &> /dev/null
+}
+
+_rbenv-from-homebrew-installed() {
+ brew --prefix rbenv &> /dev/null
+}
+
FOUND_RBENV=0
-for rbenvdir in "$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" ; do
+rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv")
+if _homebrew-installed && _rbenv-from-homebrew-installed ; then
+ rbenvdirs=($(brew --prefix rbenv) "${rbenvdirs[@]}")
+fi
+
+for rbenvdir in "${rbenvdirs[@]}" ; do
if [ -d $rbenvdir/bin -a $FOUND_RBENV -eq 0 ] ; then
FOUND_RBENV=1
export RBENV_ROOT=$rbenvdir
export PATH=${rbenvdir}/bin:$PATH
- eval "$(rbenv init -)"
+ eval "$(rbenv init - zsh)"
alias rubies="rbenv versions"
alias gemsets="rbenv gemset list"
diff --git a/plugins/rbfu/rbfu.plugin.zsh b/plugins/rbfu/rbfu.plugin.zsh
new file mode 100644
index 000000000..008485205
--- /dev/null
+++ b/plugins/rbfu/rbfu.plugin.zsh
@@ -0,0 +1,42 @@
+# Enables rbfu with --auto option, if available.
+#
+# Also provides a command to list all installed/available
+# rubies. To ensure compatibility with themes, creates the
+# rvm_prompt_info function to return the $RBFU_RUBY_VERSION
+# version.
+
+command -v rbfu &>/dev/null
+
+if [[ $? -eq 0 ]]; then
+ eval "$(rbfu --init --auto)"
+
+ # Internal: Print ruby version details, if it's currently
+ # active etc.
+ function _rbfu_rubies_print() {
+ local rb rb_out
+ rb=$(basename $1)
+ rb_out="$rb"
+ [[ -h $1 ]] && rb_out="$rb_out${fg[green]}@${reset_color}"
+ [[ "x$rb" == "x$2" ]] && rb_out="${fg[red]}$rb_out ${fg[red]}*${reset_color}"
+ echo $rb_out
+ }
+
+ # Public: Provide a list with all available rubies, this basically depends
+ # on `ls -1` and .rfbu/rubies. Highlights the currently active ruby version
+ # and aliases.
+ function rbfu-rubies() {
+ local rbfu_dir active_rb
+ rbfu_dir=$RBFU_RUBIES
+ active_rb=$RBFU_RUBY_VERSION
+ [[ -z "$rbfu_dir" ]] && rbfu_dir="${HOME}/.rbfu/rubies"
+ [[ -z "$active_rb" ]] && active_rb="system"
+ _rbfu_rubies_print "${rbfu_dir}/system" $active_rb
+ for rb in $(ls -1 $rbfu_dir); do
+ _rbfu_rubies_print "${rbfu_dir}/${rb}" $active_rb
+ done
+ }
+
+ # Public: Create rvm_prompt_info command for themes compatibility, unless
+ # it has already been defined.
+ [ ! -x rvm_prompt_info ] && function rvm_prompt_info() { echo "${RBFU_RUBY_VERSION:=system}" }
+fi
diff --git a/plugins/screen/screen.plugin.zsh b/plugins/screen/screen.plugin.zsh
new file mode 100644
index 000000000..98178e807
--- /dev/null
+++ b/plugins/screen/screen.plugin.zsh
@@ -0,0 +1,54 @@
+# if using GNU screen, let the zsh tell screen what the title and hardstatus
+# of the tab window should be.
+if [[ $TERM == "screen" ]]; then
+ if [[ $_GET_PATH == '' ]]; then
+ _GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^\/home\//~/;s/^~$USER/~/"'
+ fi
+ if [[ $_GET_HOST == '' ]]; then
+ _GET_HOST='echo $HOST | sed "s/\..*//"'
+ fi
+
+ # use the current user as the prefix of the current tab title
+ TAB_TITLE_PREFIX='"`'$_GET_HOST'`:`'$_GET_PATH' | sed "s:..*/::"`$PROMPT_CHAR"'
+ # when at the shell prompt, show a truncated version of the current path (with
+ # standard ~ replacement) as the rest of the title.
+ TAB_TITLE_PROMPT='$SHELL:t'
+ # when running a command, show the title of the command as the rest of the
+ # title (truncate to drop the path to the command)
+ TAB_TITLE_EXEC='$cmd[1]:t'
+
+ # use the current path (with standard ~ replacement) in square brackets as the
+ # prefix of the tab window hardstatus.
+ TAB_HARDSTATUS_PREFIX='"[`'$_GET_PATH'`] "'
+ # when at the shell prompt, use the shell name (truncated to remove the path to
+ # the shell) as the rest of the title
+ TAB_HARDSTATUS_PROMPT='$SHELL:t'
+ # when running a command, show the command name and arguments as the rest of
+ # the title
+ TAB_HARDSTATUS_EXEC='$cmd'
+
+ # tell GNU screen what the tab window title ($1) and the hardstatus($2) should be
+ function screen_set()
+ {
+ # set the tab window title (%t) for screen
+ print -nR $'\033k'$1$'\033'\\\
+
+ # set hardstatus of tab window (%h) for screen
+ print -nR $'\033]0;'$2$'\a'
+ }
+ # called by zsh before executing a command
+ function preexec()
+ {
+ local -a cmd; cmd=(${(z)1}) # the command string
+ eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_EXEC"
+ eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_EXEC"
+ screen_set $tab_title $tab_hardstatus
+ }
+ # called by zsh before showing the prompt
+ function precmd()
+ {
+ eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_PROMPT"
+ eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_PROMPT"
+ screen_set $tab_title $tab_hardstatus
+ }
+fi \ No newline at end of file
diff --git a/plugins/suse/suse.plugin.zsh b/plugins/suse/suse.plugin.zsh
new file mode 100644
index 000000000..d46286948
--- /dev/null
+++ b/plugins/suse/suse.plugin.zsh
@@ -0,0 +1,7 @@
+alias zi='sudo zypper install'
+alias zrf='sudo zypper refresh'
+alias zs='zypper search'
+alias zup='sudo zypper dist-upgrade'
+alias zrm='sudo zypper remove'
+alias zp='sudo zypper patch'
+alias zps='sudo zypper ps'
diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
new file mode 100644
index 000000000..5d0860400
--- /dev/null
+++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
@@ -0,0 +1,46 @@
+WRAPPER_FOUND=0
+for wrapsource in "/usr/bin/virtualenvwrapper.sh" "/usr/local/bin/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do
+ if [[ -e $wrapsource ]] ; then
+ WRAPPER_FOUND=1
+ source $wrapsource
+
+ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
+ # Automatically activate Git projects' virtual environments based on the
+ # directory name of the project. Virtual environment name can be overridden
+ # by placing a .venv file in the project root with a virtualenv name in it
+ function workon_cwd {
+ # Check that this is a Git repo
+ PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null`
+ if (( $? == 0 )); then
+ # Check for virtualenv name override
+ ENV_NAME=`basename "$PROJECT_ROOT"`
+ if [[ -f "$PROJECT_ROOT/.venv" ]]; then
+ ENV_NAME=`cat "$PROJECT_ROOT/.venv"`
+ fi
+ # Activate the environment only if it is not already active
+ if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then
+ if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then
+ workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME"
+ fi
+ fi
+ elif [ $CD_VIRTUAL_ENV ]; then
+ # We've just left the repo, deactivate the environment
+ # Note: this only happens if the virtualenv was activated automatically
+ deactivate && unset CD_VIRTUAL_ENV
+ fi
+ unset PROJECT_ROOT
+ }
+
+ # New cd function that does the virtualenv magic
+ function cd {
+ builtin cd "$@" && workon_cwd
+ }
+ fi
+
+ break
+ fi
+done
+
+if [ $WRAPPER_FOUND -eq 0 ] ; then
+ print "zsh virtualenvwrapper plugin: Couldn't activate virtualenvwrapper. Please run \`pip install virtualenvwrapper\`."
+fi
diff --git a/plugins/yum/yum.plugin.zsh b/plugins/yum/yum.plugin.zsh
index d6ba7ed62..69abfc4ce 100644
--- a/plugins/yum/yum.plugin.zsh
+++ b/plugins/yum/yum.plugin.zsh
@@ -3,10 +3,14 @@
alias ys="yum search" # search package
alias yp="yum info" # show package info
alias yl="yum list" # list packages
+alias ygl="yum grouplist" # list package groups
alias yli="yum list installed" # print all installed packages
+alias ymc="yum makecache" # rebuilds the yum package list
alias yu="sudo yum update" # upgrate packages
alias yi="sudo yum install" # install package
+alias ygi="sudo yum groupinstall" # install package group
alias yr="sudo yum remove" # remove package
+alias ygr="sudo yum groupremove" # remove pagage group
alias yrl="sudo yum remove --remove-leaves" # remove package and leaves
-alias yc="sudo yum clean all" # clean cache
+alias yc="sudo yum clean all" # clean cache \ No newline at end of file
diff --git a/themes/fino-time.zsh-theme b/themes/fino-time.zsh-theme
new file mode 100644
index 000000000..22c7a0981
--- /dev/null
+++ b/themes/fino-time.zsh-theme
@@ -0,0 +1,39 @@
+# Fino-time theme by Aexander Berezovsky (http://berezovsky.me) based on Fino by Max Masnick (http://max.masnick.me)
+
+# Use with a dark background and 256-color terminal!
+# Meant for people with RVM and git. Tested only on OS X 10.7.
+
+# You can set your computer name in the ~/.box-name file if you want.
+
+# Borrowing shamelessly from these oh-my-zsh themes:
+# bira
+# robbyrussell
+#
+# Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/
+
+function virtualenv_info {
+ [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
+}
+
+function prompt_char {
+ git branch >/dev/null 2>/dev/null && echo '±' && return
+ echo '○'
+}
+
+function box_name {
+ [ -f ~/.box-name ] && cat ~/.box-name || hostname -s
+}
+
+
+local rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}'
+local current_dir='${PWD/#$HOME/~}'
+local git_info='$(git_prompt_info)'
+
+
+PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%} ${rvm_ruby} %D - %*
+╰─$(virtualenv_info)$(prompt_char) "
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$FG[202]%}✘✘✘"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$FG[040]%}✔"
diff --git a/themes/nebirhos.zsh-theme b/themes/nebirhos.zsh-theme
index c5864d9b8..a5a226b69 100644
--- a/themes/nebirhos.zsh-theme
+++ b/themes/nebirhos.zsh-theme
@@ -6,7 +6,7 @@ if [ -e ~/.rvm/bin/rvm-prompt ]; then
RUBY_PROMPT_="%{$fg_bold[blue]%}rvm:(%{$fg[green]%}\$(~/.rvm/bin/rvm-prompt s i v g)%{$fg_bold[blue]%})%{$reset_color%} "
else
if which rbenv &> /dev/null; then
- RUBY_PROMPT_="%{$fg_bold[blue]%}rvm:(%{$fg[green]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg_bold[blue]%})%{$reset_color%} "
+ RUBY_PROMPT_="%{$fg_bold[blue]%}rbenv:(%{$fg[green]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg_bold[blue]%})%{$reset_color%} "
fi
fi
diff --git a/themes/steeef.zsh-theme b/themes/steeef.zsh-theme
index a2583b028..312229e9f 100644
--- a/themes/steeef.zsh-theme
+++ b/themes/steeef.zsh-theme
@@ -81,7 +81,7 @@ add-zsh-hook chpwd steeef_chpwd
function steeef_precmd {
if [[ -n "$PR_GIT_UPDATE" ]] ; then
# check for untracked files or updated submodules, since vcs_info doesn't
- if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
+ if git ls-files --other --exclude-standard --directory 2> /dev/null | grep -q "."; then
PR_GIT_UPDATE=1
FMT_BRANCH="(%{$turquoise%}%b%u%c%{$hotpink%}●${PR_RST})"
else
diff --git a/themes/terminalparty.zsh-theme b/themes/terminalparty.zsh-theme
index 73653aca8..216ce37eb 100644
--- a/themes/terminalparty.zsh-theme
+++ b/themes/terminalparty.zsh-theme
@@ -2,7 +2,7 @@ PROMPT='%{$fg[green]%} %% '
# RPS1='%{$fg[blue]%}%~%{$reset_color%} '
RPS1='%{$fg[white]%}%2~$(git_prompt_info) %{$fg_bold[blue]%}%m%{$reset_color%}'
-ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[yellow]%}"
+ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[yellow]%}("
ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%} ⚡%{$fg[yellow]%}"
diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh
index 524aa509d..bbd705a1e 100644
--- a/tools/check_for_upgrade.sh
+++ b/tools/check_for_upgrade.sh
@@ -23,7 +23,7 @@ then
fi
epoch_diff=$(($(_current_epoch) - $LAST_EPOCH))
- if [ $epoch_diff -gt 6 ]
+ if [ $epoch_diff -gt 13 ]
then
if [ "$DISABLE_UPDATE_PROMPT" = "true" ]
then
diff --git a/tools/install.sh b/tools/install.sh
index aedb706da..b080be3a1 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -5,7 +5,10 @@ then
fi
echo "\033[0;34mCloning Oh My Zsh...\033[0m"
-/usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
+hash git >/dev/null && /usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh || {
+ echo "git not installed"
+ exit
+}
echo "\033[0;34mLooking for an existing zsh config...\033[0m"
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]