1 # AX-ZSH: Alex' Modular ZSH Configuration
2 # 50_prompt.zshrc: Setup default prompts
4 # Logname ("user name")
6 ZSH_THEME_LOGNAME_PROMPT_PREFIX_SPACING=""
7 if (( $UID == 0 )); then
8 ZSH_THEME_LOGNAME_PROMPT_PREFIX="%{$fg_no_bold[red]%}" \
9 ZSH_THEME_LOGNAME_PROMPT_SUFFIX="%{$reset_color%}"
11 ZSH_THEME_LOGNAME_PROMPT_PREFIX=""
12 ZSH_THEME_LOGNAME_PROMPT_SUFFIX=""
14 ZSH_THEME_LOGNAME_PROMPT_SUFFIX_SPACING="@"
16 function ax_logname_prompt_root() {
17 (( $UID == 0 )) || return 1
21 function ax_logname_prompt_yn() {
23 for func ($ax_logname_prompt_functions); do
25 echo "${ZSH_THEME_LOGNAME_PROMPT_PREFIX_SPACING}${ZSH_THEME_LOGNAME_PROMPT_PREFIX}${1:-$LOGNAME}${ZSH_THEME_LOGNAME_PROMPT_SUFFIX}${ZSH_THEME_LOGNAME_PROMPT_SUFFIX_SPACING}"
30 ax_logname_prompt_functions=(ax_logname_prompt_root)
34 ZSH_THEME_HOSTNAME_PROMPT_PREFIX_SPACING=""
35 ZSH_THEME_HOSTNAME_PROMPT_PREFIX=""
36 ZSH_THEME_HOSTNAME_PROMPT_SUFFIX=""
37 ZSH_THEME_HOSTNAME_PROMPT_SUFFIX_SPACING=":"
39 function ax_hostname_prompt_root() {
40 (( $UID == 0 )) || return 1
44 function ax_hostname_prompt_yn() {
46 for func ($ax_hostname_prompt_functions); do
48 echo "${ZSH_THEME_HOSTNAME_PROMPT_PREFIX_SPACING}${ZSH_THEME_HOSTNAME_PROMPT_PREFIX}${1:-$SHORT_HOST}${ZSH_THEME_HOSTNAME_PROMPT_SUFFIX}${ZSH_THEME_HOSTNAME_PROMPT_SUFFIX_SPACING}"
53 ax_hostname_prompt_functions=()
57 if axzsh_is_utf_terminal; then
58 clean="✔"; dirty="✘"; ahead="→"; behind="←"
60 clean="+"; dirty="x"; ahead=">"; behind="<"
63 ZSH_THEME_VCS_PROMPT_PREFIX_SPACING="("
64 ZSH_THEME_VCS_PROMPT_PREFIX="%{$fg_no_bold[yellow]%}"
65 ZSH_THEME_VCS_PROMPT_SUFFIX="%{$reset_color%}"
66 ZSH_THEME_VCS_PROMPT_SUFFIX_SPACING=")"
68 ZSH_THEME_VCS_PROMPT_CLEAN=" %{$fg_no_bold[green]%}$clean"
69 ZSH_THEME_VCS_PROMPT_DIRTY=" %{$fg_no_bold[red]%}$dirty"
70 ZSH_THEME_VCS_PROMPT_AHEAD="%{$fg_no_bold[cyan]%}$ahead"
71 ZSH_THEME_VCS_PROMPT_BEHIND="%{$fg_no_bold[blue]%}$behind"
73 unset clean dirty ahead behind
75 function ax_vcs_prompt() {
78 for func ($ax_vcs_prompt_functions); do
79 p=$( $func ) || continue
80 echo "${ZSH_THEME_VCS_PROMPT_PREFIX_SPACING}${ZSH_THEME_VCS_PROMPT_PREFIX}${p}${ZSH_THEME_VCS_PROMPT_SUFFIX}${ZSH_THEME_VCS_PROMPT_SUFFIX_SPACING}"
85 ax_vcs_prompt_functions=()
90 ZSH_THEME_PROMPT_ROOT="#"
92 ZSH_THEME_PROMPT_PREFIX_SPACING=""
93 ZSH_THEME_PROMPT_PREFIX=""
94 ZSH_THEME_PROMPT_ROOT_PREFIX=""
95 ZSH_THEME_PROMPT_SUFFIX=""
96 ZSH_THEME_PROMPT_SUFFIX_SPACING=""
98 function ax_prompt() {
101 && p="${ZSH_THEME_PROMPT_ROOT_PREFIX}${ZSH_THEME_PROMPT_ROOT}" \
102 || p="${ZSH_THEME_PROMPT_PREFIX}${ZSH_THEME_PROMPT}"
103 echo "${ZSH_THEME_PROMPT_PREFIX_SPACING}${p}${ZSH_THEME_PROMPT_SUFFIX}${ZSH_THEME_PROMPT_SUFFIX_SPACING}"
106 # Options and defaults