summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/functions.zsh2
-rw-r--r--oh-my-zsh.sh4
-rw-r--r--plugins/ant/ant.plugin.zsh19
-rw-r--r--plugins/gpg-agent/gpg-agent.plugin.zsh26
-rw-r--r--plugins/phing/phing.plugin.zsh1
-rw-r--r--plugins/rvm/_rvm147
-rw-r--r--plugins/rvm/rvm.plugin.zsh3
-rw-r--r--themes/fishy.zsh-theme17
-rw-r--r--themes/fwalch.zsh-theme6
-rw-r--r--themes/obraun.zsh-theme11
-rw-r--r--themes/re5et.zsh-theme15
-rw-r--r--themes/simple.zsh-theme6
-rw-r--r--themes/steeef.zsh-theme100
13 files changed, 350 insertions, 7 deletions
diff --git a/lib/functions.zsh b/lib/functions.zsh
index 6f5d015f7..b29d3e482 100644
--- a/lib/functions.zsh
+++ b/lib/functions.zsh
@@ -29,7 +29,7 @@ function extract() {
*.tar.xz) tar xvJf $1;;
*.tar.lzma) tar --lzma -xvf $1;;
*.bz2) bunzip $1;;
- *.rar) unrar $1;;
+ *.rar) unrar x $1;;
*.gz) gunzip $1;;
*.tar) tar xvf $1;;
*.tbz2) tar xvjf $1;;
diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
index 3ea88e924..c8f1a33b8 100644
--- a/oh-my-zsh.sh
+++ b/oh-my-zsh.sh
@@ -1,7 +1,7 @@
# Initializes Oh My Zsh
# add a function path
-fpath=($ZSH/functions $fpath)
+fpath=($ZSH/functions $ZSH/completions $fpath)
# Load all of the config files in ~/oh-my-zsh that end in .zsh
# TIP: Add files you don't want in git to .gitignore
@@ -31,7 +31,7 @@ if [ "$ZSH_THEME" = "random" ]
then
themes=($ZSH/themes/*zsh-theme)
N=${#themes[@]}
- ((N=RANDOM%N))
+ ((N=(RANDOM%N)+1))
RANDOM_THEME=${themes[$N]}
source "$RANDOM_THEME"
echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh
new file mode 100644
index 000000000..0544ac92c
--- /dev/null
+++ b/plugins/ant/ant.plugin.zsh
@@ -0,0 +1,19 @@
+_ant_does_target_list_need_generating () {
+ if [ ! -f .ant_targets ]; then return 0;
+ else
+ accurate=$(stat -f%m .ant_targets)
+ changed=$(stat -f%m build.xml)
+ return $(expr $accurate '>=' $changed)
+ fi
+}
+
+_ant () {
+ if [ -f build.xml ]; then
+ if _ant_does_target_list_need_generating; then
+ sed -n '/<target/s/<target.*name="\([^"]*\).*$/\1/p' build.xml > .ant_targets
+ fi
+ compadd `cat .ant_targets`
+ fi
+}
+
+compdef _ant ant
diff --git a/plugins/gpg-agent/gpg-agent.plugin.zsh b/plugins/gpg-agent/gpg-agent.plugin.zsh
new file mode 100644
index 000000000..8cc71fd57
--- /dev/null
+++ b/plugins/gpg-agent/gpg-agent.plugin.zsh
@@ -0,0 +1,26 @@
+# Based on ssh-agent code
+
+local GPG_ENV=$HOME/.gnupg/gpg-agent.env
+
+function start_agent {
+ /usr/bin/env gpg-agent --daemon --enable-ssh-support --write-env-file ${GPG_ENV} > /dev/null
+ chmod 600 ${GPG_ENV}
+ . ${GPG_ENV} > /dev/null
+}
+
+# Source GPG agent settings, if applicable
+if [ -f "${GPG_ENV}" ]; then
+ . ${GPG_ENV} > /dev/null
+ ps -ef | grep ${SSH_AGENT_PID} | grep gpg-agent > /dev/null || {
+ start_agent;
+ }
+else
+ start_agent;
+fi
+
+export GPG_AGENT_INFO
+export SSH_AUTH_SOCK
+export SSH_AGENT_PID
+
+GPG_TTY=$(tty)
+export GPG_TTY
diff --git a/plugins/phing/phing.plugin.zsh b/plugins/phing/phing.plugin.zsh
index 80e334629..8f4adca08 100644
--- a/plugins/phing/phing.plugin.zsh
+++ b/plugins/phing/phing.plugin.zsh
@@ -10,7 +10,6 @@ _phing_does_target_list_need_generating () {
_phing () {
if [ -f build.xml ]; then
if _phing_does_target_list_need_generating; then
- echo "\nGenerating .phing_targets..." > /dev/stderr
phing -l |grep -v ":" |grep -v "^$"|grep -v "\-" > .phing_targets
fi
compadd `cat .phing_targets`
diff --git a/plugins/rvm/_rvm b/plugins/rvm/_rvm
new file mode 100644
index 000000000..bba5304a0
--- /dev/null
+++ b/plugins/rvm/_rvm
@@ -0,0 +1,147 @@
+#compdef rvm
+
+local curcontext="$curcontext" state line cmds ret=1
+
+_arguments -C \
+ '(- 1 *)'{-v,--version}'[display version information]' \
+ '(-l|--level)'{-l,--level}'+[patch level to use with rvm use / install]:number' \
+ '(--prefix)--prefix[path for all rvm files (~/.rvm/), with trailing slash!]:path:_files' \
+ '(--bin)--bin[path for binaries to be placed (~/.rvm/bin/)]:path:_files' \
+ '(--source)--source[src directory to use (~/.rvm/src/)]:path:_files' \
+ '(--archives)--archives[directory for downladed files (~/.rvm/archives/)]:path:_files' \
+ '-S[Specify a script file to attempt to load and run (rubydo)]:file:_files' \
+ '-e[Execute code from the command line]:code' \
+ '(-G)-G[root gem path to use]:path:_files' \
+ '(--gems)--gems[Used to set the gems_flag, use with remove to remove gems]' \
+ '(--archive)--archive[Used to set the archive_flag, use with remove to remove archive]' \
+ '(--patch)--patch[With MRI Rubies you may specify one or more full paths to patches]' \
+ '(-C|--configure)'{-C,--configure}'=[custom configure options]' \
+ '(--nice)--nice[process niceness (for slow computers, default 0)]:number' \
+ '(--ree)--ree-options[Options passed directly to ree ./installer on the command line]:options' \
+ '(--head)--head[with update, updates rvm to git head version]' \
+ '(--rubygems)--rubygems[with update, updates rubygems for selected ruby]' \
+ '(--default)--default[with ruby select, sets a default ruby for new shells]' \
+ '(--debug)--debug[Toggle debug mode on for very verbose output]' \
+ '(--trace)--trace[Toggle trace mode on to see EVERYTHING rvm is doing]' \
+ '(--force)--force[Force install, removes old install & source before install]' \
+ '(--summary)--summary[Used with rubydo to print out a summary of the commands run]' \
+ '(--latest)--latest[with gemset --dump skips version strings for latest gem]' \
+ '(--gems)--gems[with uninstall/remove removes gems with the interpreter]' \
+ '(--docs)--docs[with install, attempt to generate ri after installation]' \
+ '(--reconfigure)--reconfigure[Force ./configure on install even if Makefile already exists]' \
+ '1: :->cmds' \
+ '*: :->args' && ret=0
+
+case $state in
+ cmds)
+ cmds=(
+ "version:show the rvm version installed in rvm_path"
+ "use:setup current shell to use a specific ruby version"
+ "reload:reload rvm source itself (useful after changing rvm source)"
+ "implode:(seppuku) removes the rvm installation completely. This means everything in $rvm_path (~/.rvm)."
+ "update:upgrades rvm to the latest version."
+ "reset:remove current and stored default & system settings."
+ "info :show the *current* environment information for current ruby"
+ "current:print the *current* ruby version and the name of any gemset being used."
+ "debug:show info plus additional information for common issues"
+ "install:install one or many ruby versions"
+ "uninstall:uninstall one or many ruby versions, leaves their sources"
+ "remove:uninstall one or many ruby versions and remove their sources"
+ "migrate:Lets you migrate all gemsets from one ruby to another."
+ "upgrade:Lets you upgrade from one version of a ruby to another, including migrating your gemsets semi-automatically."
+ "wrapper:generates a set of wrapper executables for a given ruby with the specified ruby and gemset combination. Used under the hood for passenger support and the like."
+ "cleanup:Lets you remove stale source folders / archives and other miscellaneous data associated with rvm."
+ "repair:Lets you repair parts of your environment e.g. wrappers, env files and and similar files (e.g. general maintenance)."
+ "snapshot:Lets your backup / restore an rvm installation in a lightweight manner."
+ "disk-usage:Tells you how much disk space rvm install is using."
+ "tools:Provides general information about the ruby environment, primarily useful when scripting rvm."
+ "docs:Tools to make installing ri and rdoc documentation easier."
+ "rvmrc:Tools related to managing rvmrc trust and loading."
+ "exec:runs an arbitrary command as a set operation."
+ "ruby:runs a named ruby file against specified and/or all rubies"
+ "gem:runs a gem command using selected ruby's 'gem'"
+ "rake:runs a rake task against specified and/or all rubies"
+ "tests:runs 'rake test' across selected ruby versions"
+ "specs:runs 'rake spec' across selected ruby versions"
+ "monitor:Monitor cwd for testing, run rake {spec,test} on changes."
+ "gemset:gemsets: http://rvm.beginrescueend.com/gemsets/"
+ "rubygems:Switches the installed version of rubygems for the current ruby."
+ "gemdir:display the path to the current gem directory (GEM_HOME)."
+ "srcdir:display the path to rvm source directory (may be yanked)"
+ "fetch:Performs an archive / src fetch only of the selected ruby."
+ "list:show currently installed rubies, interactive output."
+ "package:Install a dependency package {readline,iconv,zlib,openssl}"
+ "notes:Display notes, with operating system specifics."
+ "export:Temporarily set an environment variable in the current shell."
+ "unexport:Undo changes made to the environment by 'rvm export'."
+ )
+ _describe -t commands 'rvm command' cmds && ret=0
+ ;;
+ args)
+ case $line[1] in
+ (use|uninstall|remove|list)
+ _values -S , 'rubies' $(rvm list strings | sed -e 's/ruby-\([^) ]*\)-\([^) ]*\)/ruby-\1-\2 \1-\2 \1/g') default system && ret=0
+ ;;
+ (install|fetch)
+ _values -S , 'rubies' $(rvm list known_strings) && ret=0
+ ;;
+ gemset)
+ if (( CURRENT == 3 )); then
+ _values 'gemset_commands' \
+ 'import' \
+ 'export' \
+ 'create' \
+ 'copy' \
+ 'rename' \
+ 'empty' \
+ 'delete' \
+ 'name' \
+ 'dir' \
+ 'list' \
+ 'list_all' \
+ 'gemdir' \
+ 'install' \
+ 'pristine' \
+ 'clear' \
+ 'use' \
+ 'update' \
+ 'unpack' \
+ 'globalcache'
+ else
+ _values -S , 'gemsets' $(rvm gemset list | grep -v gemset 2>/dev/null)
+ fi
+ ret=0
+ ;;
+ package)
+ if (( CURRENT == 3 )); then
+ _values 'package_commands' \
+ 'install' \
+ 'uninstall'
+ else
+ _values 'packages' \
+ 'readline' \
+ 'iconv' \
+ 'curl' \
+ 'openssl' \
+ 'zlib' \
+ 'autoconf' \
+ 'ncurses' \
+ 'pkgconfig' \
+ 'gettext' \
+ 'glib' \
+ 'mono' \
+ 'llvm' \
+ 'libxml2' \
+ 'libxslt' \
+ 'libyaml'
+ fi
+ ret=0
+ ;;
+ *)
+ (( ret )) && _message 'no more arguments'
+ ;;
+ esac
+ ;;
+esac
+
+return ret
diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh
new file mode 100644
index 000000000..ef934d547
--- /dev/null
+++ b/plugins/rvm/rvm.plugin.zsh
@@ -0,0 +1,3 @@
+fpath=($ZSH/plugins/rvm $fpath)
+autoload -U compinit
+compinit -i
diff --git a/themes/fishy.zsh-theme b/themes/fishy.zsh-theme
index f22eda868..f9e506cae 100644
--- a/themes/fishy.zsh-theme
+++ b/themes/fishy.zsh-theme
@@ -3,7 +3,18 @@
local user_color='green'; [ $UID -eq 0 ] && user_color='red'
PROMPT='%n@%m %{$fg[$user_color]%}%~%{$reset_color%}%(!.#.>) '
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
-RPS1='%(?..%{$fg[red]%}%? ↵%{$reset_color%})$(git_prompt_info)'
-ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[cyan]%}"
-ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+local return_status="%{$fg_bold[red]%}%(?..%?)%{$reset_color%}"
+RPROMPT='${return_status}$(git_prompt_info)$(git_prompt_status)%{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" "
+ZSH_THEME_GIT_PROMPT_SUFFIX=""
+ZSH_THEME_GIT_PROMPT_DIRTY=""
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+
+ZSH_THEME_GIT_PROMPT_ADDED="%{$fg_bold[green]%}+"
+ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg_bold[blue]%}!"
+ZSH_THEME_GIT_PROMPT_DELETED="%{$fg_bold[red]%}-"
+ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg_bold[magenta]%}>"
+ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[yellow]%}#"
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[cyan]%}?"
diff --git a/themes/fwalch.zsh-theme b/themes/fwalch.zsh-theme
new file mode 100644
index 000000000..24edf55c0
--- /dev/null
+++ b/themes/fwalch.zsh-theme
@@ -0,0 +1,6 @@
+PROMPT='%{$fg_bold[green]%}%p %{$fg[cyan]%}%c%{$fg_bold[blue]%}$(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[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
diff --git a/themes/obraun.zsh-theme b/themes/obraun.zsh-theme
new file mode 100644
index 000000000..08d137665
--- /dev/null
+++ b/themes/obraun.zsh-theme
@@ -0,0 +1,11 @@
+if [ "$(whoami)" = "root" ]; then CARETCOLOR="red"; else CARETCOLOR="blue"; fi
+
+local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
+
+PROMPT='%{$fg[green]%}[%*]%{$reset_color%} %{$fg_no_bold[cyan]%}%n %{${fg_bold[blue]}%}::%{$reset_color%} %{$fg[yellow]%}%m%{$reset_color%} %{$fg_no_bold[magenta]%} ➜ %{$reset_color%} %{${fg[green]}%}%3~ $(git_prompt_info)%{${fg_bold[$CARETCOLOR]}%}»%{${reset_color}%} '
+
+RPS1="${return_code}"
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[red]%}‹"
+ZSH_THEME_GIT_PROMPT_SUFFIX="› %{$reset_color%}"
+
diff --git a/themes/re5et.zsh-theme b/themes/re5et.zsh-theme
new file mode 100644
index 000000000..5bded76a3
--- /dev/null
+++ b/themes/re5et.zsh-theme
@@ -0,0 +1,15 @@
+if [ "$(whoami)" = "root" ]; then CARETCOLOR="red"; else CARETCOLOR="magenta"; fi
+
+local return_code="%(?..%{$fg_bold[red]%}:( %?%{$reset_color%})"
+
+PROMPT='
+%{$fg_bold[cyan]%}%n%{$reset_color%}%{$fg[yellow]%}@%{$reset_color%}%{$fg_bold[blue]%}%m%{$reset_color%}:%{${fg_bold[green]}%}%~%{$reset_color%}$(git_prompt_info)
+%{${fg[$CARETCOLOR]}%}%# %{${reset_color}%}'
+
+RPS1='${return_code} %D - %*'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[magenta]%}^%{$reset_color%}%{$fg_bold[yellow]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%} ±"
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ?"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[red]%} ♥"
diff --git a/themes/simple.zsh-theme b/themes/simple.zsh-theme
new file mode 100644
index 000000000..a88d9d72a
--- /dev/null
+++ b/themes/simple.zsh-theme
@@ -0,0 +1,6 @@
+PROMPT='%{$fg[green]%}%~%{$fg_bold[blue]%}$(git_prompt_info)%{$reset_color%} '
+
+ZSH_THEME_GIT_PROMPT_PREFIX="("
+ZSH_THEME_GIT_PROMPT_SUFFIX=")"
+ZSH_THEME_GIT_PROMPT_DIRTY=" ✗"
+ZSH_THEME_GIT_PROMPT_CLEAN=" ✔"
diff --git a/themes/steeef.zsh-theme b/themes/steeef.zsh-theme
new file mode 100644
index 000000000..a2583b028
--- /dev/null
+++ b/themes/steeef.zsh-theme
@@ -0,0 +1,100 @@
+# prompt style and colors based on Steve Losh's Prose theme:
+# http://github.com/sjl/oh-my-zsh/blob/master/themes/prose.zsh-theme
+#
+# vcs_info modifications from Bart Trojanowski's zsh prompt:
+# http://www.jukie.net/bart/blog/pimping-out-zsh-prompt
+#
+# git untracked files modification from Brian Carper:
+# http://briancarper.net/blog/570/git-info-in-your-zsh-prompt
+
+function virtualenv_info {
+ [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
+}
+PR_GIT_UPDATE=1
+
+setopt prompt_subst
+autoload colors
+colors
+
+autoload -U add-zsh-hook
+autoload -Uz vcs_info
+
+#use extended color pallete if available
+if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then
+ turquoise="%F{81}"
+ orange="%F{166}"
+ purple="%F{135}"
+ hotpink="%F{161}"
+ limegreen="%F{118}"
+else
+ turquoise="$fg[cyan]"
+ orange="$fg[yellow]"
+ purple="$fg[magenta]"
+ hotpink="$fg[red]"
+ limegreen="$fg[green]"
+fi
+
+# enable VCS systems you use
+zstyle ':vcs_info:*' enable git svn
+
+# check-for-changes can be really slow.
+# you should disable it, if you work with large repositories
+zstyle ':vcs_info:*:prompt:*' check-for-changes true
+
+# set formats
+# %b - branchname
+# %u - unstagedstr (see below)
+# %c - stagedstr (see below)
+# %a - action (e.g. rebase-i)
+# %R - repository path
+# %S - path in the repository
+PR_RST="%{${reset_color}%}"
+FMT_BRANCH="(%{$turquoise%}%b%u%c${PR_RST})"
+FMT_ACTION="(%{$limegreen%}%a${PR_RST})"
+FMT_UNSTAGED="%{$orange%}●"
+FMT_STAGED="%{$limegreen%}●"
+
+zstyle ':vcs_info:*:prompt:*' unstagedstr "${FMT_UNSTAGED}"
+zstyle ':vcs_info:*:prompt:*' stagedstr "${FMT_STAGED}"
+zstyle ':vcs_info:*:prompt:*' actionformats "${FMT_BRANCH}${FMT_ACTION}"
+zstyle ':vcs_info:*:prompt:*' formats "${FMT_BRANCH}"
+zstyle ':vcs_info:*:prompt:*' nvcsformats ""
+
+
+function steeef_preexec {
+ case "$(history $HISTCMD)" in
+ *git*)
+ PR_GIT_UPDATE=1
+ ;;
+ *svn*)
+ PR_GIT_UPDATE=1
+ ;;
+ esac
+}
+add-zsh-hook preexec steeef_preexec
+
+function steeef_chpwd {
+ PR_GIT_UPDATE=1
+}
+add-zsh-hook chpwd steeef_chpwd
+
+function steeef_precmd {
+ if [[ -n "$PR_GIT_UPDATE" ]] ; then
+ # check for untracked files or updated submodules, since vcs_info doesn't
+ if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
+ PR_GIT_UPDATE=1
+ FMT_BRANCH="(%{$turquoise%}%b%u%c%{$hotpink%}●${PR_RST})"
+ else
+ FMT_BRANCH="(%{$turquoise%}%b%u%c${PR_RST})"
+ fi
+ zstyle ':vcs_info:*:prompt:*' formats "${FMT_BRANCH}"
+
+ vcs_info 'prompt'
+ PR_GIT_UPDATE=
+ fi
+}
+add-zsh-hook precmd steeef_precmd
+
+PROMPT=$'
+%{$purple%}%n%{$reset_color%} at %{$orange%}%m%{$reset_color%} in %{$limegreen%}%~%{$reset_color%} $vcs_info_msg_0_
+$(virtualenv_info)$ '