255 lines
10 KiB
Bash
255 lines
10 KiB
Bash
'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
|
|
|
|
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
|
|
typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=('*' DEFAULT)
|
|
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=134
|
|
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
|
|
|
|
##################################[ 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'
|