X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=core%2F50_prompt%2F50_prompt.zshrc;h=5869f060826af3d7e90f400355a1636574014ab0;hb=deabaefbbaa1b0f62d7fbd78efe70507d87be50f;hp=a5e42b1c4c62efbf900f4b3da06512151660a2fc;hpb=caba652addadcec3a39cf3ccf5a2fa80f1d4ce86;p=ax-zsh.git diff --git a/core/50_prompt/50_prompt.zshrc b/core/50_prompt/50_prompt.zshrc index a5e42b1..5869f06 100644 --- a/core/50_prompt/50_prompt.zshrc +++ b/core/50_prompt/50_prompt.zshrc @@ -1,12 +1,22 @@ # AX-ZSH: Alex' Modular ZSH Configuration # 50_prompt.zshrc: Setup default prompts +# Some dummy functions (used by some OhMyZsh themes, for example) ... +git_prompt_info(){ true; } +git_prompt_status(){ true; } +rvm_prompt_info(){ true; } + # Logname ("user name") -(( $UID == 0 )) \ - && ZSH_THEME_LOGNAME_PROMPT_PREFIX="%{$fg_no_bold[red]%}" \ - || ZSH_THEME_LOGNAME_PROMPT_PREFIX="" -ZSH_THEME_LOGNAME_PROMPT_SUFFIX="%{$reset_color%}@" +ZSH_THEME_LOGNAME_PROMPT_PREFIX_SPACING="" +if (( $UID == 0 )); then + ZSH_THEME_LOGNAME_PROMPT_PREFIX="%{$fg_no_bold[red]%}" \ + ZSH_THEME_LOGNAME_PROMPT_SUFFIX="%{$reset_color%}" +else + ZSH_THEME_LOGNAME_PROMPT_PREFIX="" + ZSH_THEME_LOGNAME_PROMPT_SUFFIX="" +fi +ZSH_THEME_LOGNAME_PROMPT_SUFFIX_SPACING="@" function ax_logname_prompt_root() { (( $UID == 0 )) || return 1 @@ -17,17 +27,19 @@ function ax_logname_prompt_yn() { local func for func ($ax_logname_prompt_functions); do $func || continue - echo "${ZSH_THEME_LOGNAME_PROMPT_PREFIX}${1:-$LOGNAME}${ZSH_THEME_LOGNAME_PROMPT_SUFFIX}" + 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}" return done } -ax_logname_prompt_functions=() +ax_logname_prompt_functions=(ax_logname_prompt_root) # Hostname +ZSH_THEME_HOSTNAME_PROMPT_PREFIX_SPACING="" ZSH_THEME_HOSTNAME_PROMPT_PREFIX="" -ZSH_THEME_HOSTNAME_PROMPT_SUFFIX="%{$reset_color%}:" +ZSH_THEME_HOSTNAME_PROMPT_SUFFIX="" +ZSH_THEME_HOSTNAME_PROMPT_SUFFIX_SPACING=":" function ax_hostname_prompt_root() { (( $UID == 0 )) || return 1 @@ -38,7 +50,7 @@ function ax_hostname_prompt_yn() { local func for func ($ax_hostname_prompt_functions); do $func || continue - echo "${ZSH_THEME_HOSTNAME_PROMPT_PREFIX}${1:-$SHORT_HOST}${ZSH_THEME_HOSTNAME_PROMPT_SUFFIX}" + 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}" return done } @@ -47,29 +59,55 @@ ax_hostname_prompt_functions=() # VCS -ZSH_THEME_VCS_PROMPT_PREFIX="(%{$fg_no_bold[yellow]%}" -ZSH_THEME_VCS_PROMPT_SUFFIX="%{$reset_color%}) " +if axzsh_is_utf_terminal; then + clean="✔"; dirty="✘"; ahead="→"; behind="←" +else + clean="+"; dirty="x"; ahead=">"; behind="<" +fi + +ZSH_THEME_VCS_PROMPT_PREFIX_SPACING="(" +ZSH_THEME_VCS_PROMPT_PREFIX="%{$fg_no_bold[yellow]%}" +ZSH_THEME_VCS_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_VCS_PROMPT_SUFFIX_SPACING=")" + +ZSH_THEME_VCS_PROMPT_CLEAN=" %{$fg_no_bold[green]%}$clean" +ZSH_THEME_VCS_PROMPT_DIRTY=" %{$fg_no_bold[red]%}$dirty" +ZSH_THEME_VCS_PROMPT_AHEAD="%{$fg_no_bold[cyan]%}$ahead" +ZSH_THEME_VCS_PROMPT_BEHIND="%{$fg_no_bold[blue]%}$behind" -ZSH_THEME_VCS_PROMPT_CLEAN="%{$fg_no_bold[green]%}✔" -ZSH_THEME_VCS_PROMPT_DIRTY="%{$fg_no_bold[red]%}✘" -ZSH_THEME_VCS_PROMPT_AHEAD="%{$fg_no_bold[cyan]%}→" -ZSH_THEME_VCS_PROMPT_BEHIND="%{$fg_no_bold[blue]%}←" +unset clean dirty ahead behind function ax_vcs_prompt() { local func local p for func ($ax_vcs_prompt_functions); do p=$( $func ) || continue - echo "${ZSH_THEME_VCS_PROMPT_PREFIX}${p}${ZSH_THEME_VCS_PROMPT_SUFFIX}" + echo "${ZSH_THEME_VCS_PROMPT_PREFIX_SPACING}${ZSH_THEME_VCS_PROMPT_PREFIX}${p}${ZSH_THEME_VCS_PROMPT_SUFFIX}${ZSH_THEME_VCS_PROMPT_SUFFIX_SPACING}" return done } ax_vcs_prompt_functions=() +# Prompt + +ZSH_THEME_PROMPT="$" +ZSH_THEME_PROMPT_ROOT="#" + +ZSH_THEME_PROMPT_PREFIX_SPACING="" +ZSH_THEME_PROMPT_PREFIX="" +ZSH_THEME_PROMPT_ROOT_PREFIX="" +ZSH_THEME_PROMPT_SUFFIX="" +ZSH_THEME_PROMPT_SUFFIX_SPACING="" + +function ax_prompt() { + local p + (( $UID == 0 )) \ + && p="${ZSH_THEME_PROMPT_ROOT_PREFIX}${ZSH_THEME_PROMPT_ROOT}" \ + || p="${ZSH_THEME_PROMPT_PREFIX}${ZSH_THEME_PROMPT}" + echo "${ZSH_THEME_PROMPT_PREFIX_SPACING}${p}${ZSH_THEME_PROMPT_SUFFIX}${ZSH_THEME_PROMPT_SUFFIX_SPACING}" +} + # Options and defaults setopt PROMPT_SUBST - -export PS1 PS2 PS3 PS4 -export RPS1 RPS2