themes/josh.zsh-theme
eb14ee1c
 grey='\e[0;90m'
 
 ZSH_THEME_GIT_PROMPT_PREFIX="%{$grey%}("
 ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
 ZSH_THEME_GIT_PROMPT_DIRTY="%{$grey%}) %{$fg[yellow]%}✗%{$reset_color%}"
 ZSH_THEME_GIT_PROMPT_CLEAN="%{$grey%})"
 
15825709
 function josh_prompt {
eb14ee1c
   (( spare_width = ${COLUMNS} ))
   prompt=" "
 
   branch=$(current_branch)
6496acf5
   ruby_version=$(rvm_prompt_info || rbenv_prompt_info)
eb14ee1c
   path_size=${#PWD}
   branch_size=${#branch}
   ruby_size=${#ruby_version}
15825709
   user_machine_size=${#${(%):-%n@%m-}}
eb14ee1c
   
   if [[ ${#branch} -eq 0 ]]
     then (( ruby_size = ruby_size + 1 ))
   else
     (( branch_size = branch_size + 4 ))
     if [[ -n $(git status -s 2> /dev/null) ]]; then
       (( branch_size = branch_size + 2 ))
     fi
   fi
   
15825709
   (( spare_width = ${spare_width} - (${user_machine_size} + ${path_size} + ${branch_size} + ${ruby_size}) ))
eb14ee1c
 
   while [ ${#prompt} -lt $spare_width ]; do
     prompt=" $prompt"
   done
   
6496acf5
   prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info || rbenv_prompt_info)%{$reset_color%} $(git_prompt_info)"
eb14ee1c
   
   echo $prompt
 }
 
 setopt prompt_subst
 
 PROMPT='
15825709
 %n@%m $(josh_prompt)
eb14ee1c
 %(?,%{%F{green}%},%{%F{red}%})⚡%{$reset_color%} '