]> src.twobees.de Git - dotfiles.git/blob - stow/oh-my-zsh/.oh-my-zsh/themes/ys.zsh-theme
...
[dotfiles.git] / stow / oh-my-zsh / .oh-my-zsh / themes / ys.zsh-theme
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%}"