Converted OMZ themes to native ZSH themes.

This commit is contained in:
Sorin Ionescu 2011-07-17 20:15:51 -04:00
parent 94656ce760
commit d5ba17feac
11 changed files with 240 additions and 248 deletions

View file

@ -1,16 +0,0 @@
# Load and run colors.
autoload -U colors
colors -i
# Set the default prompt theme.
PS1="%n@%m:%~%# "
# Set the default Git prompt theme.
ZSH_THEME_GIT_PROMPT_PREFIX="git:(" # Prefix before the branch name.
ZSH_THEME_GIT_PROMPT_SUFFIX=")" # Suffix after the branch name.
ZSH_THEME_GIT_PROMPT_DIRTY="*" # Indicator to display if the branch is dirty.
ZSH_THEME_GIT_PROMPT_CLEAN="" # Indicator to display if the branch is clean.
# Enable parameter, arithmentic expansion and command substitution in prompt.
setopt prompt_subst

View file

@ -5,11 +5,8 @@ if [[ "$TERM" == 'dumb' ]]; then
DISABLE_COLOR='true'
fi
# Add all defined plugins to fpath.
plugin=${plugin:=()}
for plugin in $plugins; do
fpath=("$OMZ/plugins/$plugin" $fpath)
done
# Add functions to fpath.
fpath+=(${OMZ}/plugins/${^plugins} $OMZ/themes/*(/))
# Load and run compinit.
autoload -Uz compinit && compinit -i
@ -26,18 +23,8 @@ for plugin in $plugins; do
fi
done
# Load the theme.
if [[ "$ZSH_THEME" == "random" ]]; then
themes=($OMZ/themes/**/*.theme.zsh)
theme_index=${#themes[@]}
(( theme_index=((RANDOM % theme_index) + 1) ))
random_theme="${themes[$theme_index]}"
source "$random_theme"
else
if [[ -f "$OMZ/themes/$ZSH_THEME/$ZSH_THEME.theme.zsh" ]]; then
source "$OMZ/themes/$ZSH_THEME/$ZSH_THEME.theme.zsh"
fi
fi
# Load and run the prompt theming system.
autoload -Uz promptinit && promptinit -i
# Compile zcompdump, if modified, to increase startup speed.
if [[ "$HOME/.zcompdump" -nt "$HOME/.zcompdump.zwc" ]] || [[ ! -e "$HOME/.zcompdump.zwc" ]]; then

View file

@ -1,24 +1,25 @@
# Path to oh-my-zsh.
export OMZ="$HOME/.oh-my-zsh"
# Set the name of the theme to load (see $OMZ/themes/).
# Setting it to 'random' loads a random theme.
export ZSH_THEME="robbyrussell"
OMZ="$HOME/.oh-my-zsh"
# Set to 'true' to enable case-sensitivity.
export CASE_SENSITIVE='false'
CASE_SENSITIVE='false'
# Set to 'true' to disable color (auto set on dumb terminals).
export DISABLE_COLOR='false'
DISABLE_COLOR='false'
# Set to 'true' to disable auto setting the tab and window titles.
export DISABLE_AUTO_TITLE='false'
DISABLE_AUTO_TITLE='false'
# Set the plugins to load (see $OMZ/plugins/).
# Example: plugins=(rails git textmate ruby lighthouse)
# Example: plugins=(git lighthouse rails ruby textmate)
plugins=(git)
# This will make you scream: OH MY ZSH!
source "$OMZ/oh-my-zsh.zsh"
# Load the prompt theme (type prompt -l to list all themes).
# Setting it to 'random' loads a random theme.
[[ "$TERM" != 'dumb' ]] && prompt sorin || prompt off
# Customize to your needs...

View file

@ -1,15 +0,0 @@
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[white]%}["
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN=""
#Customized git status, oh-my-zsh currently does not allow render dirty status before branch
git_custom_status() {
local cb=$(current_branch)
if [ -n "$cb" ]; then
echo "- $ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
fi
}
PROMPT='%2~ $(git_custom_status) »%b '

View file

@ -0,0 +1,35 @@
function +vi-git-status() {
# Untracked files.
if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
hook_com[unstaged]='%F{red}●%f'
fi
}
function prompt_minimal_precmd () {
setopt noxtrace noksharrays localoptions
vcs_info
}
function prompt_minimal_setup() {
setopt noxtrace noksharrays localoptions
prompt_opts=(cr subst percent)
autoload -Uz add-zsh-hook
autoload -Uz vcs_info
add-zsh-hook precmd prompt_minimal_precmd
zstyle ':vcs_info:*' enable bzr git hg svn
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' stagedstr '%F{green}●%f'
zstyle ':vcs_info:*' unstagedstr '%F{yellow}●%f'
zstyle ':vcs_info:*' formats ' - [%b%c%u]'
zstyle ':vcs_info:*' actionformats " - [%b%c%u|%F{cyan}%a%f]"
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b|%F{cyan}%r%f'
zstyle ':vcs_info:git*+set-message:*' hooks git-status
PROMPT='%2~${vcs_info_msg_0_} » '
}
prompt_minimal_setup "$@"

View file

@ -1,43 +0,0 @@
#!/usr/bin/env zsh
# ------------------------------------------------------------------------------
# Prompt for the Zsh shell:
# * One line.
# * VCS info on the right prompt.
# * Only shows the path on the left prompt by default.
# * Crops the path to a defined length and only shows the path relative to
# the current VCS repository root.
# * Wears a different color wether the last command succeeded/failed.
# * Shows user@hostname if connected through SSH.
# * Shows if logged in as root or not.
# ------------------------------------------------------------------------------
# Customizable parameters.
PROMPT_PATH_MAX_LENGTH=30
PROMPT_DEFAULT_END=
PROMPT_ROOT_END=
PROMPT_SUCCESS_COLOR=$FG[071]
PROMPT_FAILURE_COLOR=$FG[124]
PROMPT_VCS_INFO_COLOR=$FG[242]
# Set required options.
setopt promptsubst
# Load required modules.
autoload -U add-zsh-hook
autoload -Uz vcs_info
# Add hook for calling vcs_info before each command.
add-zsh-hook precmd vcs_info
# Set vcs_info parameters.
zstyle ':vcs_info:*' enable hg bzr git
zstyle ':vcs_info:*:*' check-for-changes true # Can be slow on big repos.
zstyle ':vcs_info:*:*' unstagedstr '!'
zstyle ':vcs_info:*:*' stagedstr '+'
zstyle ':vcs_info:*:*' actionformats "%S" "%r/%s/%b %u%c (%a)"
zstyle ':vcs_info:*:*' formats "%S" "%r/%s/%b %u%c"
zstyle ':vcs_info:*:*' nvcsformats "%~" ""
# Define prompts.
PROMPT="%(0?.%{$PROMPT_SUCCESS_COLOR%}.%{$PROMPT_FAILURE_COLOR%})${SSH_TTY:+[%n@%m]}%{$FX[bold]%}%$PROMPT_PATH_MAX_LENGTH<..<"'${vcs_info_msg_0_%%.}'"%<<%(!.$PROMPT_ROOT_END.$PROMPT_DEFAULT_END)%{$FX[no-bold]%}%{$FX[reset]%} "
RPROMPT="%{$PROMPT_VCS_INFO_COLOR%}"'$vcs_info_msg_1_'"%{$FX[reset]%}"

View file

@ -0,0 +1,47 @@
# ------------------------------------------------------------------------------
# Prompt for ZSH:
# * One line.
# * VCS info on the right prompt.
# * Only shows the path on the left prompt by default.
# * Crops the path to a defined length and only shows the path relative to
# the current VCS repository root.
# * Wears a different color wether the last command succeeded/failed.
# * Shows user@hostname if connected through SSH.
# * Shows if logged in as root or not.
# ------------------------------------------------------------------------------
function prompt_nicoulaj_setup() {
setopt noxtrace noksharrays localoptions
prompt_opts=(cr subst percent)
# Load required modules.
autoload -Uz add-zsh-hook
autoload -Uz vcs_info
# Add hook for calling vcs_info before each command.
add-zsh-hook precmd vcs_info
# Customizable parameters.
local max_path_chars=30
local user_char=''
local root_char=''
local success_color='%F{071}'
local failure_color='%F{124}'
local vcs_info_color='%F{242}'
# Set vcs_info parameters.
zstyle ':vcs_info:*' enable bzr git hg svn
zstyle ':vcs_info:*:*' check-for-changes true # Can be slow on big repos.
zstyle ':vcs_info:*:*' unstagedstr '!'
zstyle ':vcs_info:*:*' stagedstr '+'
zstyle ':vcs_info:*:*' actionformats "%S" "%r/%s/%b %u%c (%a)"
zstyle ':vcs_info:*:*' formats "%S" "%r/%s/%b %u%c"
zstyle ':vcs_info:*:*' nvcsformats "%~" ""
# Define prompts.
PROMPT="%(?.${success_color}.${failure_color})${SSH_TTY:+[%n@%m]}%B%${max_path_chars}<...<"'${vcs_info_msg_0_%%.}'"%<<%(!.${root_char}.${user_char})%b%f "
RPROMPT="${vcs_info_color}"'${vcs_info_msg_1_}'"%f"
}
prompt_nicoulaj_setup "$@"

View file

@ -0,0 +1,34 @@
# ------------------------------------------------------------------------------
# FILE: prompt_sorin_setup
# DESCRIPTION: oh-my-zsh theme file.
# AUTHOR: Sorin Ionescu <sorin.ionescu@gmail.com>
# VERSION: 1.0.4
# SCREENSHOT: http://i.imgur.com/aipDQ.png
# ------------------------------------------------------------------------------
function prompt_sorin_setup() {
setopt localoptions noxtrace noksharrays
prompt_opts=(cr subst percent)
MODE_INDICATOR="%B%F{red}%f%b%F{red}%f"
ZSH_THEME_GIT_PROMPT_SHA_BEFORE=""
ZSH_THEME_GIT_PROMPT_SHA_AFTER=""
ZSH_THEME_GIT_PROMPT_AHEAD=""
ZSH_THEME_GIT_PROMPT_DIRTY=""
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_PREFIX=" %F{blue}git%f:%F{red}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%f"
ZSH_THEME_GIT_PROMPT_ADDED="%F{green} ✚%f"
ZSH_THEME_GIT_PROMPT_MODIFIED="%F{blue} ✹%f"
ZSH_THEME_GIT_PROMPT_DELETED="%F{red} ✖%f"
ZSH_THEME_GIT_PROMPT_RENAMED="%F{magenta} ➜%f"
ZSH_THEME_GIT_PROMPT_UNMERGED="%F{yellow} ═%f"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%F{cyan} ✭%f"
PROMPT='%F{cyan}%~%f$(git-prompt-info) %(!.%B%F{red}#%f%b.%B%F{green}%f%b) '
RPROMPT='%(?::%F{red}⏎%f)$(git-prompt-status)'
}
prompt_sorin_setup "$@"

View file

@ -1,48 +0,0 @@
# ------------------------------------------------------------------------------
# FILE: sorin.zsh-theme
# DESCRIPTION: oh-my-zsh theme file.
# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com)
# VERSION: 1.0.3
# SCREENSHOT: http://i.imgur.com/aipDQ.png
# ------------------------------------------------------------------------------
if [[ "$DISABLE_COLOR" != "true" ]]; then
MODE_INDICATOR="%{$fg_bold[red]%}%{$reset_color%}%{$fg[red]%}%{$reset_color%}"
local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}"
PROMPT='%{$fg[cyan]%}%c$(git_prompt_info) %(!.%{$fg_bold[red]%}#.%{$fg_bold[green]%})%{$reset_color%} '
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[blue]%}git%{$reset_color%}:%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY=""
ZSH_THEME_GIT_PROMPT_CLEAN=""
RPROMPT='${return_status}$(git_prompt_status)%{$reset_color%}'
ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚"
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹"
ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖"
ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜"
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭"
else
MODE_INDICATOR=""
local return_status="%(?::⏎)"
PROMPT='%c$(git_prompt_info) %(!.#.) '
ZSH_THEME_GIT_PROMPT_PREFIX=" git:"
ZSH_THEME_GIT_PROMPT_SUFFIX=""
ZSH_THEME_GIT_PROMPT_DIRTY=""
ZSH_THEME_GIT_PROMPT_CLEAN=""
RPROMPT='${return_status}$(git_prompt_status)'
ZSH_THEME_GIT_PROMPT_ADDED=" ✚"
ZSH_THEME_GIT_PROMPT_MODIFIED=" ✹"
ZSH_THEME_GIT_PROMPT_DELETED=" ✖"
ZSH_THEME_GIT_PROMPT_RENAMED=" ➜"
ZSH_THEME_GIT_PROMPT_UNMERGED=" ═"
ZSH_THEME_GIT_PROMPT_UNTRACKED=" ✭"
fi

View file

@ -0,0 +1,110 @@
# 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() {
if [[ -n "$VIRTUAL_ENV" ]]; then
echo '('`basename $VIRTUAL_ENV`') '
fi
}
function prompt_steeef_precmd() {
if [[ -n "$__PROMPT_STEEEF_VCS_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
__PROMPT_STEEEF_VCS_UPDATE=1
fmt_branch="(${__PROMPT_STEEEF_COLORS[1]}%b%f%u%c${__PROMPT_STEEEF_COLORS[4]}●%f)"
else
fmt_branch="(${__PROMPT_STEEEF_COLORS[1]}%b%f%u%c)"
fi
zstyle ':vcs_info:*:prompt:*' formats "${fmt_branch}"
vcs_info 'prompt'
__PROMPT_STEEEF_VCS_UPDATE=''
fi
}
function prompt_steeef_preexec() {
case "$(history $HISTCMD)" in
*git*)
__PROMPT_STEEEF_VCS_UPDATE=1
;;
*svn*)
__PROMPT_STEEEF_VCS_UPDATE=1
;;
esac
}
function prompt_steeef_chpwd() {
__PROMPT_STEEEF_VCS_UPDATE=1
}
function prompt_steeef_setup() {
setopt localoptions noxtrace noksharrays
prompt_opts=(cr subst percent)
autoload -Uz add-zsh-hook
autoload -Uz vcs_info
add-zsh-hook precmd prompt_steeef_precmd
add-zsh-hook preexec prompt_steeef_preexec
add-zsh-hook chpwd prompt_steeef_chpwd
__PROMPT_STEEEF_VCS_UPDATE=1
# Use extended color pallete if available.
if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then
__PROMPT_STEEEF_COLORS=(
"%F{81}" # turquoise
"%F{166}" # orange
"%F{135}" # purple
"%F{161}" # hotpink
"%F{118}" # limegreen
)
else
__PROMPT_STEEEF_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_STEEEF_COLORS[1]}%b%f%u%c)"
local fmt_action="(${__PROMPT_STEEEF_COLORS[5]}%a%f)"
local fmt_unstaged="${__PROMPT_STEEEF_COLORS[2]}●%f"
local fmt_staged="${__PROMPT_STEEEF_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_STEEEF_COLORS[3]}%n%f at ${__PROMPT_STEEEF_COLORS[2]}%m%f in ${__PROMPT_STEEEF_COLORS[5]}%~%f "'${vcs_info_msg_0_}'"
"'$(virtualenv_info)'"$ "
}
prompt_steeef_setup "$@"

View file

@ -1,100 +0,0 @@
# 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)$ '