diff options
Diffstat (limited to 'oh-my-zsh/themes/josh.zsh-theme')
-rw-r--r-- | oh-my-zsh/themes/josh.zsh-theme | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/oh-my-zsh/themes/josh.zsh-theme b/oh-my-zsh/themes/josh.zsh-theme new file mode 100644 index 0000000..ea051c5 --- /dev/null +++ b/oh-my-zsh/themes/josh.zsh-theme @@ -0,0 +1,43 @@ +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%})" + +function josh_prompt { + (( spare_width = ${COLUMNS} )) + prompt=" " + + branch=$(git_current_branch) + ruby_version=$(ruby_prompt_info) + path_size=${#PWD} + branch_size=${#branch} + ruby_size=${#ruby_version} + user_machine_size=${#${(%):-%n@%m-}} + + 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 + + (( spare_width = ${spare_width} - (${user_machine_size} + ${path_size} + ${branch_size} + ${ruby_size}) )) + + while [ ${#prompt} -lt $spare_width ]; do + prompt=" $prompt" + done + + prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(ruby_prompt_info)%{$reset_color%} $(git_current_branch)" + + echo $prompt +} + +setopt prompt_subst + +PROMPT=' +%n@%m $(josh_prompt) +%(?,%{%F{green}%},%{%F{red}%})⚡%{$reset_color%} ' |