Support for @sorin-ionescu rewrite of oh-my-zsh
Sorin's OMZ rewrite is a bit nicer, as it's written in more
native style ZSH, doesn't do auto updates, and incorporates
many bugfixes, and is more actively maintained than Robby's branch.
For now, YADR supports both, so if you want to try out the sorin
branch, go to sorin-ionescu/oh-my-zsh, install it, and rerun
the YADR installer so that the skwp theme is installed for you.
If you want to have them side by side for comparison, rename the
old robby one to ~/.oh-my-zsh.robby or similar, so you can toggle
back and forth through renames, or symlinks.
2012-04-24 01:32:10 +08:00
|
|
|
#
|
|
|
|
# A theme based on steeef theme
|
2012-10-24 01:11:27 +08:00
|
|
|
# * RVM/Rbenv info shown on the right
|
Support for @sorin-ionescu rewrite of oh-my-zsh
Sorin's OMZ rewrite is a bit nicer, as it's written in more
native style ZSH, doesn't do auto updates, and incorporates
many bugfixes, and is more actively maintained than Robby's branch.
For now, YADR supports both, so if you want to try out the sorin
branch, go to sorin-ionescu/oh-my-zsh, install it, and rerun
the YADR installer so that the skwp theme is installed for you.
If you want to have them side by side for comparison, rename the
old robby one to ~/.oh-my-zsh.robby or similar, so you can toggle
back and forth through renames, or symlinks.
2012-04-24 01:32:10 +08:00
|
|
|
# * Git branch info on the left
|
|
|
|
# * Single line prompt
|
|
|
|
#
|
|
|
|
# Authors:
|
|
|
|
# Steve Losh <steve@stevelosh.com>
|
|
|
|
# Bart Trojanowski <bart@jukie.net>
|
|
|
|
# Brian Carper <brian@carper.ca>
|
|
|
|
# steeef <steeef@gmail.com>
|
|
|
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
|
|
# Yan Pritzker <yan@pritzker.ws>
|
|
|
|
|
|
|
|
function rvm_info_for_prompt {
|
2012-08-09 14:27:55 +08:00
|
|
|
if [[ -d ~/.rvm/ ]]; then
|
|
|
|
ruby_version=$(~/.rvm/bin/rvm-prompt)
|
2012-10-24 01:58:50 +08:00
|
|
|
if [ -n "$ruby_version" ]; then
|
|
|
|
echo "[$ruby_version]"
|
|
|
|
fi
|
2012-10-24 01:11:27 +08:00
|
|
|
elif [[ -d ~/.rbenv/ ]]; then
|
2012-10-24 01:58:50 +08:00
|
|
|
ruby_version=(${(s: :)$(rbenv version)})
|
|
|
|
if [ -n "$ruby_version" ]; then
|
|
|
|
echo "[${ruby_version[1]}]"
|
|
|
|
fi
|
Support for @sorin-ionescu rewrite of oh-my-zsh
Sorin's OMZ rewrite is a bit nicer, as it's written in more
native style ZSH, doesn't do auto updates, and incorporates
many bugfixes, and is more actively maintained than Robby's branch.
For now, YADR supports both, so if you want to try out the sorin
branch, go to sorin-ionescu/oh-my-zsh, install it, and rerun
the YADR installer so that the skwp theme is installed for you.
If you want to have them side by side for comparison, rename the
old robby one to ~/.oh-my-zsh.robby or similar, so you can toggle
back and forth through renames, or symlinks.
2012-04-24 01:32:10 +08:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
function prompt_skwp_precmd {
|
|
|
|
# Check for untracked files or updated submodules since vcs_info doesn't.
|
|
|
|
if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
|
|
|
|
fmt_branch="(${__PROMPT_SKWP_COLORS[1]}%b%f%u%c${__PROMPT_SKWP_COLORS[4]}●%f)"
|
|
|
|
else
|
|
|
|
fmt_branch="(${__PROMPT_SKWP_COLORS[1]}%b%f%u%c)"
|
|
|
|
fi
|
|
|
|
zstyle ':vcs_info:*:prompt:*' formats "${fmt_branch}"
|
|
|
|
|
|
|
|
vcs_info 'prompt'
|
|
|
|
}
|
|
|
|
|
|
|
|
function prompt_skwp_setup {
|
|
|
|
setopt LOCAL_OPTIONS
|
|
|
|
unsetopt XTRACE KSH_ARRAYS
|
|
|
|
prompt_opts=(cr percent subst)
|
|
|
|
|
|
|
|
autoload -Uz add-zsh-hook
|
|
|
|
autoload -Uz vcs_info
|
|
|
|
|
|
|
|
add-zsh-hook precmd prompt_skwp_precmd
|
|
|
|
|
|
|
|
# Use extended color pallete if available.
|
|
|
|
if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then
|
|
|
|
__PROMPT_SKWP_COLORS=(
|
|
|
|
"%F{81}" # turquoise
|
|
|
|
"%F{166}" # orange
|
|
|
|
"%F{135}" # purple
|
|
|
|
"%F{161}" # hotpink
|
|
|
|
"%F{118}" # limegreen
|
|
|
|
)
|
|
|
|
else
|
|
|
|
__PROMPT_SKWP_COLORS=(
|
|
|
|
"%F{cyan}"
|
|
|
|
"%F{yellow}"
|
|
|
|
"%F{magenta}"
|
|
|
|
"%F{red}"
|
|
|
|
"%F{green}"
|
|
|
|
)
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Enable VCS systems you use.
|
|
|
|
zstyle ':vcs_info:*' enable bzr git hg svn
|
|
|
|
|
|
|
|
# check-for-changes can be really slow.
|
|
|
|
# You should disable it if you work with large repositories.
|
|
|
|
zstyle ':vcs_info:*:prompt:*' check-for-changes true
|
|
|
|
|
|
|
|
# Formats:
|
|
|
|
# %b - branchname
|
|
|
|
# %u - unstagedstr (see below)
|
|
|
|
# %c - stagedstr (see below)
|
|
|
|
# %a - action (e.g. rebase-i)
|
|
|
|
# %R - repository path
|
|
|
|
# %S - path in the repository
|
|
|
|
local fmt_branch="(${__PROMPT_SKWP_COLORS[1]}%b%f%u%c)"
|
|
|
|
local fmt_action="(${__PROMPT_SKWP_COLORS[5]}%a%f)"
|
|
|
|
local fmt_unstaged="${__PROMPT_SKWP_COLORS[2]}●%f"
|
|
|
|
local fmt_staged="${__PROMPT_SKWP_COLORS[5]}●%f"
|
|
|
|
|
|
|
|
zstyle ':vcs_info:*:prompt:*' unstagedstr "${fmt_unstaged}"
|
|
|
|
zstyle ':vcs_info:*:prompt:*' stagedstr "${fmt_staged}"
|
|
|
|
zstyle ':vcs_info:*:prompt:*' actionformats "${fmt_branch}${fmt_action}"
|
|
|
|
zstyle ':vcs_info:*:prompt:*' formats "${fmt_branch}"
|
|
|
|
zstyle ':vcs_info:*:prompt:*' nvcsformats ""
|
|
|
|
|
|
|
|
PROMPT="${__PROMPT_SKWP_COLORS[3]}%n%f@${__PROMPT_SKWP_COLORS[2]}%m%f ${__PROMPT_SKWP_COLORS[5]}%~%f "'${vcs_info_msg_0_}'"$ "
|
|
|
|
RPROMPT="%F{blue}"'$(rvm_info_for_prompt)'""
|
|
|
|
}
|
|
|
|
|
|
|
|
prompt_skwp_setup "$@"
|