Converted OMZ themes to native ZSH themes.
This commit is contained in:
parent
94656ce760
commit
d5ba17feac
@ -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
|
||||
|
@ -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
|
||||
|
@ -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...
|
||||
|
||||
|
@ -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 '
|
35
themes/minimal/prompt_minimal_setup
Normal file
35
themes/minimal/prompt_minimal_setup
Normal 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 "$@"
|
||||
|
@ -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]%}"
|
47
themes/nicoulaj/prompt_nicoulaj_setup
Normal file
47
themes/nicoulaj/prompt_nicoulaj_setup
Normal 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 "$@"
|
||||
|
34
themes/sorin/prompt_sorin_setup
Normal file
34
themes/sorin/prompt_sorin_setup
Normal 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 "$@"
|
||||
|
@ -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
|
110
themes/steeef/prompt_steeef_setup
Normal file
110
themes/steeef/prompt_steeef_setup
Normal 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 "$@"
|
||||
|
@ -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)$ '
|
Reference in New Issue
Block a user