X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=core%2F50_prompt%2F50_prompt.zshrc;h=5869f060826af3d7e90f400355a1636574014ab0;hb=deabaefbbaa1b0f62d7fbd78efe70507d87be50f;hp=5dc89d93c37f8460e3543fe4657d908b846266d8;hpb=23f0f61d7227124e73b14cff56113aefe97ddf61;p=ax-zsh.git diff --git a/core/50_prompt/50_prompt.zshrc b/core/50_prompt/50_prompt.zshrc index 5dc89d9..5869f06 100644 --- a/core/50_prompt/50_prompt.zshrc +++ b/core/50_prompt/50_prompt.zshrc @@ -1,76 +1,113 @@ # 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 - echo "$LOGNAME" return 0 } -ax_logname_prompt_functions=($ax_logname_prompt_functions ax_logname_prompt_root) - -function ax_logname_prompt() { +function ax_logname_prompt_yn() { local func - local p for func ($ax_logname_prompt_functions); do - p=$( $func ) || continue - echo "${ZSH_THEME_LOGNAME_PROMPT_PREFIX}${p}${ZSH_THEME_LOGNAME_PROMPT_SUFFIX}" + $func || continue + 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_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 - echo "$SHORT_HOST" return 0 } -ax_hostname_prompt_functions=($ax_hostname_prompt_functions ax_hostname_prompt_root) - -function ax_hostname_prompt() { +function ax_hostname_prompt_yn() { local func - local p for func ($ax_hostname_prompt_functions); do - p=$( $func ) || continue - echo "${ZSH_THEME_HOSTNAME_PROMPT_PREFIX}${p}${ZSH_THEME_HOSTNAME_PROMPT_SUFFIX}" + $func || continue + 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 } +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]%}✔" -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]%}←" +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" + +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 RPS1