parent
5c73cb671b
commit
d34ab7f373
1 changed files with 113 additions and 0 deletions
@ -0,0 +1,113 @@ |
|||||||
|
# oh-my-zsh Bureau Theme |
||||||
|
|
||||||
|
### NVM |
||||||
|
|
||||||
|
ZSH_THEME_NVM_PROMPT_PREFIX="%B⬡%b " |
||||||
|
ZSH_THEME_NVM_PROMPT_SUFFIX="" |
||||||
|
|
||||||
|
### Git [±master ▾●] |
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="[%{$fg_bold[green]%}±%{$reset_color%}%{$fg_bold[white]%}" |
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}]" |
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}✓%{$reset_color%}" |
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg[cyan]%}▴%{$reset_color%}" |
||||||
|
ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg[magenta]%}▾%{$reset_color%}" |
||||||
|
ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_bold[green]%}●%{$reset_color%}" |
||||||
|
ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg_bold[yellow]%}●%{$reset_color%}" |
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[red]%}●%{$reset_color%}" |
||||||
|
|
||||||
|
bureau_git_branch () { |
||||||
|
ref=$(command git symbolic-ref HEAD 2> /dev/null) || \ |
||||||
|
ref=$(command git rev-parse --short HEAD 2> /dev/null) || return |
||||||
|
echo "${ref#refs/heads/}" |
||||||
|
} |
||||||
|
|
||||||
|
bureau_git_status () { |
||||||
|
_INDEX=$(command git status --porcelain -b 2> /dev/null) |
||||||
|
_STATUS="" |
||||||
|
if $(echo "$_INDEX" | grep '^[AMRD]. ' &> /dev/null); then |
||||||
|
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STAGED" |
||||||
|
fi |
||||||
|
if $(echo "$_INDEX" | grep '^.[MTD] ' &> /dev/null); then |
||||||
|
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED" |
||||||
|
fi |
||||||
|
if $(echo "$_INDEX" | grep -E '^\?\? ' &> /dev/null); then |
||||||
|
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED" |
||||||
|
fi |
||||||
|
if $(echo "$_INDEX" | grep '^UU ' &> /dev/null); then |
||||||
|
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED" |
||||||
|
fi |
||||||
|
if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then |
||||||
|
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STASHED" |
||||||
|
fi |
||||||
|
if $(echo "$_INDEX" | grep '^## .*ahead' &> /dev/null); then |
||||||
|
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_AHEAD" |
||||||
|
fi |
||||||
|
if $(echo "$_INDEX" | grep '^## .*behind' &> /dev/null); then |
||||||
|
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_BEHIND" |
||||||
|
fi |
||||||
|
if $(echo "$_INDEX" | grep '^## .*diverged' &> /dev/null); then |
||||||
|
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_DIVERGED" |
||||||
|
fi |
||||||
|
|
||||||
|
echo $_STATUS |
||||||
|
} |
||||||
|
|
||||||
|
bureau_git_prompt () { |
||||||
|
local _branch=$(bureau_git_branch) |
||||||
|
local _status=$(bureau_git_status) |
||||||
|
local _result="" |
||||||
|
if [[ "${_branch}x" != "x" ]]; then |
||||||
|
_result="$ZSH_THEME_GIT_PROMPT_PREFIX$_branch" |
||||||
|
if [[ "${_status}x" != "x" ]]; then |
||||||
|
_result="$_result $_status" |
||||||
|
fi |
||||||
|
_result="$_result$ZSH_THEME_GIT_PROMPT_SUFFIX" |
||||||
|
fi |
||||||
|
echo $_result |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
_PATH="%{$fg_bold[white]%}%~%{$reset_color%}" |
||||||
|
|
||||||
|
if [[ "%#" == "#" ]]; then |
||||||
|
_USERNAME="%{$fg_bold[red]%}%n" |
||||||
|
_LIBERTY="%{$fg[red]%}#" |
||||||
|
else |
||||||
|
_USERNAME="%{$fg_bold[white]%}%n" |
||||||
|
_LIBERTY="%{$fg[green]%}$" |
||||||
|
fi |
||||||
|
_USERNAME="$_USERNAME%{$reset_color%}@%m" |
||||||
|
_LIBERTY="$_LIBERTY%{$reset_color%}" |
||||||
|
|
||||||
|
|
||||||
|
get_space () { |
||||||
|
local STR=$1$2 |
||||||
|
local zero='%([BSUbfksu]|([FB]|){*})' |
||||||
|
local LENGTH=${#${(S%%)STR//$~zero/}} |
||||||
|
local SPACES="" |
||||||
|
(( LENGTH = ${COLUMNS} - $LENGTH - 1)) |
||||||
|
|
||||||
|
for i in {0..$LENGTH} |
||||||
|
do |
||||||
|
SPACES="$SPACES " |
||||||
|
done |
||||||
|
|
||||||
|
echo $SPACES |
||||||
|
} |
||||||
|
|
||||||
|
_1LEFT="$_USERNAME $_PATH" |
||||||
|
_1RIGHT="[%*] " |
||||||
|
|
||||||
|
bureau_precmd () { |
||||||
|
_1SPACES=`get_space $_1LEFT $_1RIGHT` |
||||||
|
echo |
||||||
|
} |
||||||
|
|
||||||
|
setopt prompt_subst |
||||||
|
PROMPT='$_1LEFT$_1SPACES$_1RIGHT |
||||||
|
> $_LIBERTY ' |
||||||
|
RPROMPT='$(nvm_prompt_info) $(bureau_git_prompt)' |
||||||
|
|
||||||
|
autoload -U add-zsh-hook |
||||||
|
add-zsh-hook precmd bureau_precmd |
||||||
Loading…
Reference in new issue