# Fewer than 47 columns will probably work. Haven't tried it. typeset -gr __p9k_wizard_columns=47 # The bottleneck is ask_tails with nerd fonts. Everything else works fine with 12 lines. typeset -gr __p9k_wizard_lines=14 typeset -gr __p9k_zd=${ZDOTDIR:-$HOME} typeset -gr __p9k_zd_u=${${${(q)__p9k_zd}/#(#b)${(q)HOME}(|\/*)/'~'$match[1]}//\%/%%} typeset -gr __p9k_zshrc=${${:-$__p9k_zd/.zshrc}:A} typeset -gr __p9k_zshrc_u=$__p9k_zd_u/.zshrc typeset -gr __p9k_root_dir_u=${${${(q)__p9k_root_dir}/#(#b)${(q)HOME}(|\/*)/'~'$match[1]}//\%/%%} function _p9k_can_configure() { [[ $1 == '-q' ]] && local -i q=1 || local -i q=0 function $0_error() { (( q )) || print -rP "%1F[ERROR]%f %Bp10k configure%b: $1" >&2 } typeset -g __p9k_cfg_path_o=${POWERLEVEL9K_CONFIG_FILE:=${ZDOTDIR:-~}/.p10k.zsh} typeset -g __p9k_cfg_basename=${__p9k_cfg_path_o:t} typeset -g __p9k_cfg_path=${__p9k_cfg_path_o:A} typeset -g __p9k_cfg_path_u=${${${(q)__p9k_cfg_path_o}/#(#b)${(q)HOME}(|\/*)/'~'$match[1]}//\%/%%} { [[ -e $__p9k_zd ]] || { $0_error "$__p9k_zd_u does not exist"; return 1 } [[ -d $__p9k_zd ]] || { $0_error "$__p9k_zd_u is not a directory"; return 1 } [[ ! -d $__p9k_cfg_path ]] || { $0_error "$__p9k_cfg_path_u is a directory"; return 1 } [[ ! -d $__p9k_zshrc ]] || { $0_error "$__p9k_zshrc_u is a directory"; return 1 } local dir=${__p9k_cfg_path:h} while [[ ! -e $dir && $dir != ${dir:h} ]]; do dir=${dir:h}; done if [[ ! -d $dir ]]; then $0_error "cannot create $__p9k_cfg_path_u because ${dir//\%/%%} is not a directory" return 1 fi if [[ ! -w $dir ]]; then $0_error "cannot create $__p9k_cfg_path_u because ${dir//\%/%%} is readonly" return 1 fi [[ ! -e $__p9k_cfg_path || -f $__p9k_cfg_path || -h $__p9k_cfg_path ]] || { $0_error "$__p9k_cfg_path_u is a special file" return 1 } [[ ! -e $__p9k_zshrc || -f $__p9k_zshrc || -h $__p9k_zshrc ]] || { $0_error "$__p9k_zshrc_u a special file" return 1 } [[ ! -e $__p9k_zshrc || -r $__p9k_zshrc ]] || { $0_error "$__p9k_zshrc_u is not readable" return 1 } local style for style in lean lean-8colors classic rainbow pure; do [[ -r $__p9k_root_dir/config/p10k-$style.zsh ]] || { $0_error "$__p9k_root_dir_u/config/p10k-$style.zsh is not readable" return 1 } done (( LINES >= __p9k_wizard_lines && COLUMNS >= __p9k_wizard_columns )) || { $0_error "terminal size too small; must be at least $__p9k_wizard_columns columns by $__p9k_wizard_lines lines" return 1 } [[ -t 0 && -t 1 ]] || { $0_error "no TTY" return 2 } return 0 } always { unfunction $0_error } } function p9k_configure() { eval "$__p9k_intro" _p9k_can_configure || return ( set -- -f builtin source $__p9k_root_dir/internal/wizard.zsh ) local ret=$? case $ret in 0) builtin source $__p9k_cfg_path; _p9k__force_must_init=1;; 69) return 0;; *) return $ret;; esac }