]> arthur.barton.de Git - ax-zsh.git/blob - core/50_prompt/50_prompt.zshrc
a5e42b1c4c62efbf900f4b3da06512151660a2fc
[ax-zsh.git] / core / 50_prompt / 50_prompt.zshrc
1 # AX-ZSH: Alex' Modular ZSH Configuration
2 # 50_prompt.zshrc: Setup default prompts
3
4 # Logname ("user name")
5
6 (( $UID == 0 )) \
7         && ZSH_THEME_LOGNAME_PROMPT_PREFIX="%{$fg_no_bold[red]%}" \
8         || ZSH_THEME_LOGNAME_PROMPT_PREFIX=""
9 ZSH_THEME_LOGNAME_PROMPT_SUFFIX="%{$reset_color%}@"
10
11 function ax_logname_prompt_root() {
12         (( $UID == 0 )) || return 1
13         return 0
14 }
15
16 function ax_logname_prompt_yn() {
17         local func
18         for func ($ax_logname_prompt_functions); do
19                 $func || continue
20                 echo "${ZSH_THEME_LOGNAME_PROMPT_PREFIX}${1:-$LOGNAME}${ZSH_THEME_LOGNAME_PROMPT_SUFFIX}"
21                 return
22         done
23 }
24
25 ax_logname_prompt_functions=()
26
27 # Hostname
28
29 ZSH_THEME_HOSTNAME_PROMPT_PREFIX=""
30 ZSH_THEME_HOSTNAME_PROMPT_SUFFIX="%{$reset_color%}:"
31
32 function ax_hostname_prompt_root() {
33         (( $UID == 0 )) || return 1
34         return 0
35 }
36
37 function ax_hostname_prompt_yn() {
38         local func
39         for func ($ax_hostname_prompt_functions); do
40                 $func || continue
41                 echo "${ZSH_THEME_HOSTNAME_PROMPT_PREFIX}${1:-$SHORT_HOST}${ZSH_THEME_HOSTNAME_PROMPT_SUFFIX}"
42                 return
43         done
44 }
45
46 ax_hostname_prompt_functions=()
47
48 # VCS
49
50 ZSH_THEME_VCS_PROMPT_PREFIX="(%{$fg_no_bold[yellow]%}"
51 ZSH_THEME_VCS_PROMPT_SUFFIX="%{$reset_color%}) "
52
53 ZSH_THEME_VCS_PROMPT_CLEAN="%{$fg_no_bold[green]%}✔"
54 ZSH_THEME_VCS_PROMPT_DIRTY="%{$fg_no_bold[red]%}✘"
55 ZSH_THEME_VCS_PROMPT_AHEAD="%{$fg_no_bold[cyan]%}→"
56 ZSH_THEME_VCS_PROMPT_BEHIND="%{$fg_no_bold[blue]%}←"
57
58 function ax_vcs_prompt() {
59         local func
60         local p
61         for func ($ax_vcs_prompt_functions); do
62                 p=$( $func ) || continue
63                 echo "${ZSH_THEME_VCS_PROMPT_PREFIX}${p}${ZSH_THEME_VCS_PROMPT_SUFFIX}"
64                 return
65         done
66 }
67
68 ax_vcs_prompt_functions=()
69
70 # Options and defaults
71
72 setopt PROMPT_SUBST
73
74 export PS1 PS2 PS3 PS4
75 export RPS1 RPS2