Created
April 6, 2017 07:18
-
-
Save rizafahmi/859bdfe1583a957649f0f136184a1dbc to your computer and use it in GitHub Desktop.
Prezto Theme based on steeef
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# A theme based on Steve Losh's Extravagant Prompt with vcs_info integration. | |
# | |
# Authors: | |
# Steve Losh <[email protected]> | |
# Bart Trojanowski <[email protected]> | |
# Brian Carper <[email protected]> | |
# steeef2 <[email protected]> | |
# Sorin Ionescu <[email protected]> | |
# | |
# Screenshots: | |
# http://i.imgur.com/HyRvv.png | |
# | |
function prompt_steeef2_precmd { | |
# Check for untracked files or updated submodules since vcs_info does not. | |
if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then | |
branch_format="(${_prompt_steeef2_colors[1]}%b%f%u%c${_prompt_steeef2_colors[4]}●%f)" | |
else | |
branch_format="(${_prompt_steeef2_colors[1]}%b%f%u%c)" | |
fi | |
zstyle ':vcs_info:*:prompt:*' formats "${branch_format}" | |
vcs_info 'prompt' | |
if (( $+functions[python-info] )); then | |
python-info | |
fi | |
} | |
function prompt_steeef2_setup { | |
setopt LOCAL_OPTIONS | |
unsetopt XTRACE KSH_ARRAYS | |
prompt_opts=(cr percent subst) | |
# Load required functions. | |
autoload -Uz add-zsh-hook | |
autoload -Uz vcs_info | |
# Add hook for calling vcs_info before each command. | |
add-zsh-hook precmd prompt_steeef2_precmd | |
# Use extended color pallete if available. | |
if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then | |
_prompt_steeef2_colors=( | |
"%F{81}" # Turquoise | |
"%F{166}" # Orange | |
"%F{135}" # Purple | |
"%F{161}" # Hotpink | |
"%F{118}" # Limegreen | |
) | |
else | |
_prompt_steeef2_colors=( | |
"%F{cyan}" | |
"%F{yellow}" | |
"%F{magenta}" | |
"%F{red}" | |
"%F{green}" | |
) | |
fi | |
# 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 branch_format="(${_prompt_steeef2_colors[1]}%b%f%u%c)" | |
local action_format="(${_prompt_steeef2_colors[5]}%a%f)" | |
local unstaged_format="${_prompt_steeef2_colors[2]}●%f" | |
local staged_format="${_prompt_steeef2_colors[5]}●%f" | |
# Set vcs_info parameters. | |
zstyle ':vcs_info:*' enable bzr git hg svn | |
zstyle ':vcs_info:*:prompt:*' check-for-changes true | |
zstyle ':vcs_info:*:prompt:*' unstagedstr "${unstaged_format}" | |
zstyle ':vcs_info:*:prompt:*' stagedstr "${staged_format}" | |
zstyle ':vcs_info:*:prompt:*' actionformats "${branch_format}${action_format}" | |
zstyle ':vcs_info:*:prompt:*' formats "${branch_format}" | |
zstyle ':vcs_info:*:prompt:*' nvcsformats "" | |
# Set python-info parameters. | |
zstyle ':prezto:module:python:info:virtualenv' format '(%v)' | |
# Define prompts. | |
PROMPT=" | |
${_prompt_steeef2_colors[5]}%~%f "'${vcs_info_msg_0_}'" | |
"'$python_info[virtualenv]'"$ " | |
RPROMPT='' | |
} | |
prompt_steeef2_setup "$@" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment