diff --git a/themes/plain.zsh-theme b/themes/plain.zsh-theme new file mode 100644 index 000000000..4c1430ec1 --- /dev/null +++ b/themes/plain.zsh-theme @@ -0,0 +1,23 @@ +PROMPT='%n@%m %~$(check_git_prompt_info)$ %{$reset_color%}' + +local return_code="%(?..%{$fg[magenta]%}%? ↵%{$reset_color%})" +RPROMPT="${return_code}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}(" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}%{$fg[cyan]%})%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[cyan]%})%{$fg[blue]%}" + + +# Git sometimes goes into a detached head state. git_prompt_info doesn't +# return anything in this case. So wrap it in another function and check +# for an empty string. -- Brorrowed from Soliah.zsh-theme :) +function check_git_prompt_info() { + if git rev-parse --git-dir > /dev/null 2>&1; then + if [[ -z $(git_prompt_info) ]]; then + echo " %{$fg[cyan]%}(detached%{$fg[magenta]%}*%{$fg[cyan]%})%{$reset_color%}" + else + echo " $(git_prompt_info)" + fi + fi +}