diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme index 1d2af3458..d939d546f 100644 --- a/themes/af-magic.zsh-theme +++ b/themes/af-magic.zsh-theme @@ -1,47 +1,46 @@ # af-magic.zsh-theme -# Repo: https://github.com/andyfleming/oh-my-zsh -# Direct Link: https://github.com/andyfleming/oh-my-zsh/blob/master/themes/af-magic.zsh-theme +# +# Author: Andy Fleming +# URL: http://andyfleming.com/ - -# settings -typeset +H return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" -typeset +H my_gray="$FG[237]" -typeset +H my_orange="$FG[214]" - -# separator dashes size +# dashed separator size function afmagic_dashes { - local PYTHON_ENV="$VIRTUAL_ENV" - [[ -z "$PYTHON_ENV" ]] && PYTHON_ENV="$CONDA_DEFAULT_ENV" + # check either virtualenv or condaenv variables + local python_env="${VIRTUAL_ENV:-$CONDA_DEFAULT_ENV}" - if [[ -n "$PYTHON_ENV" && "$PS1" = \(* ]]; then - echo $(( COLUMNS - ${#PYTHON_ENV} - 3 )) - else - echo $COLUMNS - fi + # if there is a python virtual environment and it is displayed in + # the prompt, account for it when returning the number of dashes + if [[ -n "$python_env" && "$PS1" = \(* ]]; then + echo $(( COLUMNS - ${#python_env} - 3 )) + else + echo $COLUMNS + fi } -# primary prompt -PS1='$FG[237]${(l.$(afmagic_dashes)..-.)}%{$reset_color%} -$FG[032]%~$(git_prompt_info)$(hg_prompt_info) $FG[105]%(!.#.»)%{$reset_color%} ' -PS2='%{$fg[red]%}\ %{$reset_color%}' -RPS1='${return_code}' +# primary prompt: dashed separator, directory and vcs info +PS1="${FG[237]}\${(l.\$(afmagic_dashes)..-.)}%{$reset_color%} +${FG[032]}%~\$(git_prompt_info)\$(hg_prompt_info) ${FG[105]}%(!.#.»)%{$reset_color%} " +PS2="%{$fg[red]%}\ %{$reset_color%}" -# right prompt -(( $+functions[virtualenv_prompt_info] )) && RPS1+='$(virtualenv_prompt_info)' -RPS1+=' $my_gray%n@%m%{$reset_color%}%' +# right prompt: return code, virtualenv and context (user@host) +RPS1="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" +if (( $+functions[virtualenv_prompt_info] )); then + RPS1+='$(virtualenv_prompt_info)' +fi +RPS1+=" ${FG[237]}%n@%m%{$reset_color%}" # git settings -ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075]($FG[078]" +ZSH_THEME_GIT_PROMPT_PREFIX="${FG[075]}(${FG[078]}" ZSH_THEME_GIT_PROMPT_CLEAN="" -ZSH_THEME_GIT_PROMPT_DIRTY="$my_orange*%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[075])%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="${FG[214]}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="${FG[075]})%{$reset_color%}" # hg settings -ZSH_THEME_HG_PROMPT_PREFIX="$FG[075]($FG[078]" +ZSH_THEME_HG_PROMPT_PREFIX="${FG[075]}(${FG[078]}" ZSH_THEME_HG_PROMPT_CLEAN="" -ZSH_THEME_HG_PROMPT_DIRTY="$my_orange*%{$reset_color%}" -ZSH_THEME_HG_PROMPT_SUFFIX="$FG[075])%{$reset_color%}" +ZSH_THEME_HG_PROMPT_DIRTY="${FG[214]}*%{$reset_color%}" +ZSH_THEME_HG_PROMPT_SUFFIX="${FG[075]})%{$reset_color%}" # virtualenv settings -ZSH_THEME_VIRTUALENV_PREFIX=" $FG[075][" +ZSH_THEME_VIRTUALENV_PREFIX=" ${FG[075]}[" ZSH_THEME_VIRTUALENV_SUFFIX="]%{$reset_color%}"