'builtin' 'local' '-a' 'p10k_config_opts' [[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') [[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') [[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') 'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' () { emulate -L zsh -o extended_glob unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( # =========================[ Line #1 ]========================= dir vcs # =========================[ Line #2 ]========================= newline prompt_char ) typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( # =========================[ Line #1 ]========================= status command_execution_time background_jobs direnv ranger vim_shell nix_shell per_directory_history "${P10K_EXTRA_RIGHT_PROMPT_ELEMENTS[@]}" context # =========================[ Line #2 ]========================= newline ) typeset -g POWERLEVEL9K_MODE=ascii typeset -g POWERLEVEL9K_ICON_PADDING=none typeset -g POWERLEVEL9K_BACKGROUND= typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=true typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true typeset -g POWERLEVEL9K_SHOW_RULER=false typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' ################################[ prompt_char: prompt symbol ]################################ typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76 typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196 typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='>' typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='<' typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V' typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='^' typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='' ##################################[ dir: current directory ]################################## typeset -g POWERLEVEL9K_DIR_FOREGROUND=31 typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=103 typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=39 typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true local anchor_files=( .git flake.nix Cargo.toml go.mod package.json ) typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})" typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40 typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50 typeset -g POWERLEVEL9K_DIR_HYPERLINK=false typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3 typeset -g POWERLEVEL9K_DIR_CLASSES=() #####################################[ vcs: git status ]###################################### typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' function my_git_formatter() { emulate -L zsh if [[ -n $P9K_CONTENT ]]; then typeset -g my_git_format=$P9K_CONTENT return fi if (( $1 )); then local meta='%f' local clean='%76F' local modified='%178F' local untracked='%39F' local conflicted='%196F' else local meta='%244F' local clean='%244F' local modified='%244F' local untracked='%244F' local conflicted='%244F' fi local res if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then local branch=${(V)VCS_STATUS_LOCAL_BRANCH} (( $#branch > 32 )) && branch[13,-13]=".." res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" fi if [[ -n $VCS_STATUS_TAG && -z $VCS_STATUS_LOCAL_BRANCH ]]; then local tag=${(V)VCS_STATUS_TAG} (( $#tag > 32 )) && tag[13,-13]=".." res+="${meta}#${clean}${tag//\%/%%}" fi [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}" if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" fi if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then res+=" ${modified}wip" fi if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}<${VCS_STATUS_COMMITS_BEHIND}" (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}>${VCS_STATUS_COMMITS_AHEAD}" fi (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}<-${VCS_STATUS_PUSH_COMMITS_BEHIND}" (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}->${VCS_STATUS_PUSH_COMMITS_AHEAD}" (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}" [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}" (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}" (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}" (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}-" typeset -g my_git_format=$res } functions -M my_git_formatter 2>/dev/null typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1 typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~' typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}' typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}' typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=76 typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244 typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION= typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76 typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76 typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=178 ##########################[ status: exit code of the last command ]########################### typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true typeset -g POWERLEVEL9K_STATUS_OK=true typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=70 typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='ok' typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=70 typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='ok' typeset -g POWERLEVEL9K_STATUS_ERROR=false typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=160 typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='err' typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=160 typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=true typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION= typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=160 typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='err' ###################[ command_execution_time: duration of the last command ]################### typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0 typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=2 typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=101 typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s' #######################[ background_jobs: presence of background jobs ]####################### typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=70 #######################[ direnv: direnv status (https://direnv.net/) ]######################## typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=178 #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]################## typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178 ###########################[ vim_shell: vim shell indicator (:sh) ]########################### typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=34 #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]## typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74 typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=true ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]####### typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=135 typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=130 ##################################[ context: user@hostname ]################################## typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178 typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=180 typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=180 typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m' typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m' typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m' typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION= #####################################[ Other Settings ]####################################### typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true (( ! $+functions[p10k] )) || p10k reload } typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a} (( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} 'builtin' 'unset' 'p10k_config_opts'