# vim:et sts=2 sw=2 ft=zsh # # A customizable version of the steeef theme from # https://github.com/robbyrussell/oh-my-zsh/blob/master/themes/steeef.zsh-theme # # Requires the `git-info` zmodule to be included in the .zimrc file. prompt_steeef_help () { cat <<EOH This prompt can be customized with: prompt steeef [username_color] [hostname_color] [pwd_color] [branch_color] [unindexed_color] [unindexed_indicator] [indexed_color] [indexed_indicator] [untracked_color] [untracked_indicator] [stashed_color] [stashed_indicator] The default values for each parameter, for 256-color terminals (or otherwise) are the following: 1. username color: 135 (or magenta) 2. hostname color: 166 (or yellow) 3. current working directory color: 118 (or green) 4. git branch name color: 81 (or cyan) 5. git unindexed color: 166 (or yellow) 6. git unindexed indicator: ● 7. git indexed color: 118 (or green) 8. git indexed indicator: ● 9. git untracked color: 161 (or red) 10. git untracked indicator: ● The git stashed color and indicator are not defined by default, and will not be shown unless defined. EOH } prompt_steeef_git() { [[ -n ${git_info} ]] && print -n " ${(e)git_info[prompt]}" } prompt_steeef_virtualenv() { [[ -n ${VIRTUAL_ENV} ]] && print -n " (%F{blue}${VIRTUAL_ENV:t}%f)" } prompt_steeef_precmd() { (( ${+functions[git-info]} )) && git-info } prompt_steeef_setup() { [[ -n ${VIRTUAL_ENV} ]] && export VIRTUAL_ENV_DISABLE_PROMPT=1 local col_user local col_host local col_pwd local col_brnch local col_unidx local col_idx local col_untrk # use extended color palette if available if (( terminfo[colors] >= 256 )); then col_user="%F{${1:-135}}" col_host="%F{${2:-166}}" col_pwd="%F{${3:-118}}" col_brnch="%F{${4:-81}}" col_unidx="%F{${5:-166}}" col_idx="%F{${7:-118}}" col_untrk="%F{${9:-161}}" else col_user="%F{${1:-magenta}}" col_host="%F{${2:-yellow}}" col_pwd="%F{${3:-green}}" col_brnch="%F{${4:-cyan}}" col_unidx="%F{${5:-yellow}}" col_idx="%F{${7:-green}}" col_untrk="%F{${9:-red}}" fi local ind_unidx=${6:-●} local ind_idx=${8:-●} local ind_untrk=${10:-●} local col_stash=${11:+%F{${11}}} local ind_stash=${12} autoload -Uz add-zsh-hook && add-zsh-hook precmd prompt_steeef_precmd prompt_opts=(cr percent sp subst) zstyle ':zim:git-info' verbose 'yes' zstyle ':zim:git-info:branch' format '%b' zstyle ':zim:git-info:commit' format '%c' zstyle ':zim:git-info:action' format "(${col_idx}%s%f)" zstyle ':zim:git-info:unindexed' format "${col_unidx}${ind_unidx}" zstyle ':zim:git-info:indexed' format "${col_idx}${ind_idx}" zstyle ':zim:git-info:untracked' format "${col_untrk}${ind_untrk}" if [[ -n ${ind_stash} ]]; then zstyle ':zim:git-info:stashed' format "${col_stash}${ind_stash}" fi zstyle ':zim:git-info:keys' format \ 'prompt' "(${col_brnch}%b%c%I%i%u%f%S%f)%s" PS1=" ${col_user}%n%f at ${col_host}%m%f in ${col_pwd}%~%f\$(prompt_steeef_git)\$(prompt_steeef_virtualenv) %(!.#.$) " RPS1='' } prompt_steeef_preview () { if (( ${#} )); then prompt_preview_theme steeef "${@}" else prompt_preview_theme steeef print prompt_preview_theme steeef magenta yellow green cyan magenta '!' green '+' red '?' yellow '$' fi } prompt_steeef_setup "${@}"