Not for normies
| 1 | # Clean, simple, compatible and meaningful. |
| 2 | # Tested on Linux, Unix and Windows under ANSI colors. |
| 3 | # It is recommended to use with a dark background. |
| 4 | # Colors: black, red, green, yellow, *blue, magenta, cyan, and white. |
| 5 | # |
| 6 | # Mar 2013 Yad Smood |
| 7 | |
| 8 | # VCS |
| 9 | YS_VCS_PROMPT_PREFIX1=" %{$reset_color%}on%{$fg[blue]%} " |
| 10 | YS_VCS_PROMPT_PREFIX2=":%{$fg[cyan]%}" |
| 11 | YS_VCS_PROMPT_SUFFIX="%{$reset_color%}" |
| 12 | YS_VCS_PROMPT_DIRTY=" %{$fg[red]%}x" |
| 13 | YS_VCS_PROMPT_CLEAN=" %{$fg[green]%}o" |
| 14 | |
| 15 | # Git info |
| 16 | local git_info='$(git_prompt_info)' |
| 17 | ZSH_THEME_GIT_PROMPT_PREFIX="${YS_VCS_PROMPT_PREFIX1}git${YS_VCS_PROMPT_PREFIX2}" |
| 18 | ZSH_THEME_GIT_PROMPT_SUFFIX="$YS_VCS_PROMPT_SUFFIX" |
| 19 | ZSH_THEME_GIT_PROMPT_DIRTY="$YS_VCS_PROMPT_DIRTY" |
| 20 | ZSH_THEME_GIT_PROMPT_CLEAN="$YS_VCS_PROMPT_CLEAN" |
| 21 | |
| 22 | # SVN info |
| 23 | local svn_info='$(svn_prompt_info)' |
| 24 | ZSH_THEME_SVN_PROMPT_PREFIX="${YS_VCS_PROMPT_PREFIX1}svn${YS_VCS_PROMPT_PREFIX2}" |
| 25 | ZSH_THEME_SVN_PROMPT_SUFFIX="$YS_VCS_PROMPT_SUFFIX" |
| 26 | ZSH_THEME_SVN_PROMPT_DIRTY="$YS_VCS_PROMPT_DIRTY" |
| 27 | ZSH_THEME_SVN_PROMPT_CLEAN="$YS_VCS_PROMPT_CLEAN" |
| 28 | |
| 29 | # HG info |
| 30 | local hg_info='$(ys_hg_prompt_info)' |
| 31 | ys_hg_prompt_info() { |
| 32 | # make sure this is a hg dir |
| 33 | if [ -d '.hg' ]; then |
| 34 | echo -n "${YS_VCS_PROMPT_PREFIX1}hg${YS_VCS_PROMPT_PREFIX2}" |
| 35 | echo -n $(hg branch 2>/dev/null) |
| 36 | if [[ "$(hg config oh-my-zsh.hide-dirty 2>/dev/null)" != "1" ]]; then |
| 37 | if [ -n "$(hg status 2>/dev/null)" ]; then |
| 38 | echo -n "$YS_VCS_PROMPT_DIRTY" |
| 39 | else |
| 40 | echo -n "$YS_VCS_PROMPT_CLEAN" |
| 41 | fi |
| 42 | fi |
| 43 | echo -n "$YS_VCS_PROMPT_SUFFIX" |
| 44 | fi |
| 45 | } |
| 46 | |
| 47 | # Virtualenv |
| 48 | local venv_info='$(virtenv_prompt)' |
| 49 | YS_THEME_VIRTUALENV_PROMPT_PREFIX=" %{$fg[green]%}" |
| 50 | YS_THEME_VIRTUALENV_PROMPT_SUFFIX=" %{$reset_color%}%" |
| 51 | virtenv_prompt() { |
| 52 | [[ -n "${VIRTUAL_ENV:-}" ]] || return |
| 53 | echo "${YS_THEME_VIRTUALENV_PROMPT_PREFIX}${VIRTUAL_ENV:t}${YS_THEME_VIRTUALENV_PROMPT_SUFFIX}" |
| 54 | } |
| 55 | |
| 56 | local exit_code="%(?,,C:%{$fg[red]%}%?%{$reset_color%})" |
| 57 | |
| 58 | # Prompt format: |
| 59 | # |
| 60 | # PRIVILEGES USER @ MACHINE in DIRECTORY on git:BRANCH STATE [TIME] C:LAST_EXIT_CODE |
| 61 | # $ COMMAND |
| 62 | # |
| 63 | # For example: |
| 64 | # |
| 65 | # % ys @ ys-mbp in ~/.oh-my-zsh on git:master x [21:47:42] C:0 |
| 66 | # $ |
| 67 | PROMPT=" |
| 68 | %{$terminfo[bold]$fg[blue]%}#%{$reset_color%} \ |
| 69 | %(#,%{$bg[yellow]%}%{$fg[black]%}%n%{$reset_color%},%{$fg[cyan]%}%n) \ |
| 70 | %{$reset_color%}@ \ |
| 71 | %{$fg[green]%}%m \ |
| 72 | %{$reset_color%}in \ |
| 73 | %{$terminfo[bold]$fg[yellow]%}%~%{$reset_color%}\ |
| 74 | ${hg_info}\ |
| 75 | ${git_info}\ |
| 76 | ${svn_info}\ |
| 77 | ${venv_info}\ |
| 78 | \ |
| 79 | [%*] $exit_code |
| 80 | %{$terminfo[bold]$fg[red]%}$ %{$reset_color%}" |