Merge pull request #2236 from Isquariel/nvm
Added function to show current Node.js version and new Bureau thememaster
commit
9357f2f41d
2 changed files with 122 additions and 0 deletions
@ -0,0 +1,9 @@ |
|||||||
|
# get the node.js version |
||||||
|
function nvm_prompt_info() { |
||||||
|
[ -f $HOME/.nvm/nvm.sh ] || return |
||||||
|
local nvm_prompt |
||||||
|
nvm_prompt=$(node -v 2>/dev/null) |
||||||
|
[[ "${nvm_prompt}x" == "x" ]] && return |
||||||
|
nvm_prompt=${nvm_prompt:1} |
||||||
|
echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt}${ZSH_THEME_NVM_PROMPT_SUFFIX}" |
||||||
|
} |
||||||
@ -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