You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							123 lines
						
					
					
						
							3.3 KiB
						
					
					
				
			
		
		
	
	
							123 lines
						
					
					
						
							3.3 KiB
						
					
					
				| # 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() { | |
|   _STATUS="" | |
|  | |
|   # check status of files | |
|   _INDEX=$(command git status --porcelain 2> /dev/null) | |
|   if [[ -n "$_INDEX" ]]; then | |
|     if $(echo "$_INDEX" | command grep -q '^[AMRD]. '); then | |
|       _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STAGED" | |
|     fi | |
|     if $(echo "$_INDEX" | command grep -q '^.[MTD] '); then | |
|       _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED" | |
|     fi | |
|     if $(echo "$_INDEX" | command grep -q -E '^\?\? '); then | |
|       _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED" | |
|     fi | |
|     if $(echo "$_INDEX" | command grep -q '^UU '); then | |
|       _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED" | |
|     fi | |
|   else | |
|     _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_CLEAN" | |
|   fi | |
|  | |
|   # check status of local repository | |
|   _INDEX=$(command git status --porcelain -b 2> /dev/null) | |
|   if $(echo "$_INDEX" | command grep -q '^## .*ahead'); then | |
|     _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_AHEAD" | |
|   fi | |
|   if $(echo "$_INDEX" | command grep -q '^## .*behind'); then | |
|     _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_BEHIND" | |
|   fi | |
|   if $(echo "$_INDEX" | command grep -q '^## .*diverged'); then | |
|     _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_DIVERGED" | |
|   fi | |
|  | |
|   if $(command git rev-parse --verify refs/stash &> /dev/null); then | |
|     _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STASHED" | |
|   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 [[ $EUID -eq 0 ]]; 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` | |
|   print | |
|   print -rP "$_1LEFT$_1SPACES$_1RIGHT" | |
| } | |
|  | |
| setopt prompt_subst | |
| PROMPT='> $_LIBERTY ' | |
| RPROMPT='$(nvm_prompt_info) $(bureau_git_prompt)' | |
|  | |
| autoload -U add-zsh-hook | |
| add-zsh-hook precmd bureau_precmd
 | |
| 
 |