diff --git a/internal/p10k.zsh b/internal/p10k.zsh index 6f97e4cf..eef6da58 100755 --- a/internal/p10k.zsh +++ b/internal/p10k.zsh @@ -27,13 +27,6 @@ if ! autoload -U is-at-least || ! is-at-least 5.1; then return 1 fi -if (( $+_P9K_SOURCED )); then - prompt_powerlevel9k_setup - return -fi - -readonly _P9K_SOURCED=1 - source "${_p9k_installation_dir}/functions/utilities.zsh" source "${_p9k_installation_dir}/functions/icons.zsh" source "${_p9k_installation_dir}/functions/colors.zsh" diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme index 97505a6c..033f86d3 100755 --- a/powerlevel9k.zsh-theme +++ b/powerlevel9k.zsh-theme @@ -20,32 +20,44 @@ #zstyle ':vcs_info:*+*:*' debug true #set -o xtrace -'builtin' 'typeset' "_p9k_aliases=$( - 'builtin' 'alias' '-rL' - 'builtin' 'alias' '-gL' - 'builtin' 'alias' '-sL')" - -'builtin' 'unalias' '-m' '*' - -_p9k_installation_dir='' - -if [[ -n $POWERLEVEL9K_INSTALLATION_DIR ]]; then - _p9k_installation_dir=${POWERLEVEL9K_INSTALLATION_DIR:A} -else - if [[ ${(%):-%N} == '(eval)' ]]; then - if [[ $0 == '-antigen-load' && -r powerlevel9k.zsh-theme ]]; then - # Antigen uses eval to load things so it can change the plugin (!!) - # https://github.com/zsh-users/antigen/issues/581 - _p9k_installation_dir=$PWD - else - >&2 print -P '%F{red}[ERROR]%f Powerlevel10k cannot figure out its installation directory.' - >&2 print -P 'Please set %F{green}POWERLEVEL9K_INSTALLATION_DIR.%f' +() { + 'builtin' 'emulate' '-L' 'zsh' + + 'builtin' 'local' "_p9k_aliases=$( + 'builtin' 'alias' '-rL' + 'builtin' 'alias' '-gL' + 'builtin' 'alias' '-sL')" + + 'builtin' 'unalias' '-m' '*' + + { + if (( $+_p9k_sourced )); then + prompt_powerlevel9k_setup + return fi - else - _p9k_installation_dir=${${(%):-%x}:A:h} - fi -fi + typeset -gr _p9k_sourced=1 + typeset -g _p9k_installation_dir='' -[[ -n $_p9k_installation_dir ]] && source $_p9k_installation_dir/internal/p10k.zsh + if [[ -n $POWERLEVEL9K_INSTALLATION_DIR ]]; then + _p9k_installation_dir=${POWERLEVEL9K_INSTALLATION_DIR:A} + else + if [[ ${(%):-%N} == '(eval)' ]]; then + if [[ $0 == '-antigen-load' && -r powerlevel9k.zsh-theme ]]; then + # Antigen uses eval to load things so it can change the plugin (!!) + # https://github.com/zsh-users/antigen/issues/581 + _p9k_installation_dir=$PWD + else + >&2 print -P '%F{red}[ERROR]%f Powerlevel10k cannot figure out its installation directory.' + >&2 print -P 'Please set %F{green}POWERLEVEL9K_INSTALLATION_DIR.%f' + return 1 + fi + else + _p9k_installation_dir=${${(%):-%x}:A:h} + fi + fi -eval "$_p9k_aliases" + source $_p9k_installation_dir/internal/p10k.zsh + } always { + eval "$_p9k_aliases" + } +}