]> arthur.barton.de Git - ax-zsh.git/blob - core/50_prompt/50_prompt.zshrc
Initial commit
[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         echo "$LOGNAME"
14         return 0
15 }
16
17 ax_logname_prompt_functions=($ax_logname_prompt_functions ax_logname_prompt_root)
18
19 function ax_logname_prompt() {
20         local func
21         local p
22         for func ($ax_logname_prompt_functions); do
23                 p=$( $func ) || continue
24                 echo "${ZSH_THEME_LOGNAME_PROMPT_PREFIX}${p}${ZSH_THEME_LOGNAME_PROMPT_SUFFIX}"
25                 return
26         done
27 }
28
29 # Hostname
30
31 ZSH_THEME_HOSTNAME_PROMPT_PREFIX=""
32 ZSH_THEME_HOSTNAME_PROMPT_SUFFIX="%{$reset_color%}:"
33
34 function ax_hostname_prompt_root() {
35         (( $UID == 0 )) || return 1
36         echo "$SHORT_HOST"
37         return 0
38 }
39
40 ax_hostname_prompt_functions=($ax_hostname_prompt_functions ax_hostname_prompt_root)
41
42 function ax_hostname_prompt() {
43         local func
44         local p
45         for func ($ax_hostname_prompt_functions); do
46                 p=$( $func ) || continue
47                 echo "${ZSH_THEME_HOSTNAME_PROMPT_PREFIX}${p}${ZSH_THEME_HOSTNAME_PROMPT_SUFFIX}"
48                 return
49         done
50 }
51
52 # VCS
53
54 ZSH_THEME_VCS_PROMPT_PREFIX="(%{$fg_no_bold[yellow]%}"
55 ZSH_THEME_VCS_PROMPT_SUFFIX="%{$reset_color%}) "
56
57 ZSH_THEME_VCS_PROMPT_CLEAN="%{$fg_no_bold[green]%}✔"
58 ZSH_THEME_VCS_PROMPT_DIRTY="%{$fg_no_bold[red]%}✘"
59 ZSH_THEME_VCS_PROMPT_AHEAD="%{$fg_no_bold[cyan]%}→"
60 ZSH_THEME_VCS_PROMPT_BEHIND="%{$fg_no_bold[blue]%}←"
61
62 function ax_vcs_prompt() {
63         local func
64         local p
65         for func ($ax_vcs_prompt_functions); do
66                 p=$( $func ) || continue
67                 echo "${ZSH_THEME_VCS_PROMPT_PREFIX}${p}${ZSH_THEME_VCS_PROMPT_SUFFIX}"
68                 return
69         done
70 }
71
72 # Options and defaults
73
74 setopt PROMPT_SUBST
75
76 export PS1 RPS1