ca01730f81
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.
93 lines
2.6 KiB
Plaintext
93 lines
2.6 KiB
Plaintext
#
|
|
# A theme based on steeef theme
|
|
# * RVM info shown on the right
|
|
# * 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 {
|
|
ruby_version=$(~/.rvm/bin/rvm-prompt)
|
|
if [ -n "$ruby_version" ]; then
|
|
echo "[$ruby_version]"
|
|
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 "$@"
|