150 lines
6.1 KiB
Bash
150 lines
6.1 KiB
Bash
# Powerlevel10k config — Catppuccin Mocha
|
||
# Font: MesloLGS NF
|
||
|
||
'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'
|
||
|
||
autoload -Uz is-at-least && is-at-least 5.1 || return
|
||
|
||
# Строка 1: иконка юзер путь git
|
||
# Строка 2: ip диск ❯ команда
|
||
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
||
os_icon
|
||
context
|
||
dir
|
||
vcs
|
||
newline
|
||
prompt_char
|
||
)
|
||
|
||
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
|
||
status
|
||
command_execution_time
|
||
background_jobs
|
||
ip
|
||
disk_usage
|
||
time
|
||
)
|
||
|
||
typeset -g POWERLEVEL9K_MODE=nerdfont-complete
|
||
|
||
# Убираем PROMPT_ON_NEWLINE — уже используем newline элемент, двойного переноса не нужно
|
||
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
|
||
|
||
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_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
|
||
typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
|
||
|
||
# OS icon — лисичка вместо Ubuntu
|
||
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=214
|
||
typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='🦊'
|
||
|
||
# Context (username) — всегда показывать
|
||
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=180 # yellow для обычного юзера
|
||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=160 # red для root
|
||
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n' # только имя, без @host
|
||
typeset -g POWERLEVEL9K_CONTEXT_ALWAYS_SHOW=true
|
||
typeset -g POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true
|
||
|
||
# Prompt char — на ОДНОЙ строке с вводом
|
||
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=114
|
||
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=203
|
||
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_OVERWRITE_STATE=true
|
||
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
|
||
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE=
|
||
|
||
# Directory
|
||
typeset -g POWERLEVEL9K_DIR_FOREGROUND=111
|
||
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique
|
||
typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
|
||
typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=109
|
||
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=117
|
||
typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true
|
||
local anchor_files=(
|
||
.bzr .citc .git .github .hg .node-version .python-version
|
||
.ruby-version .svn .terraform .tox .venv
|
||
Makefile 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_SHOW_WRITABLE=v3
|
||
|
||
# IP адрес — показываем enp2s0
|
||
typeset -g POWERLEVEL9K_IP_FOREGROUND=109
|
||
typeset -g POWERLEVEL9K_IP_INTERFACE='enp2s0'
|
||
typeset -g POWERLEVEL9K_IP_SHOW_ALL_ADDRESSES=false
|
||
|
||
# Disk usage — % занятости /
|
||
typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false
|
||
typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=85
|
||
typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95
|
||
typeset -g POWERLEVEL9K_DISK_USAGE_FOREGROUND=114 # green когда норм
|
||
typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=178 # yellow при 85%
|
||
typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=160 # red при 95%
|
||
typeset -g POWERLEVEL9K_DISK_USAGE_PATH='/'
|
||
|
||
# VCS (Git) — встроенный форматтер p10k
|
||
typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
|
||
typeset -g POWERLEVEL9K_VCS_GIT_ICON=''
|
||
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=' '
|
||
typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76
|
||
typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76
|
||
typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=178
|
||
typeset -g POWERLEVEL9K_VCS_STAGED_MAX_NUM=-1
|
||
typeset -g POWERLEVEL9K_VCS_UNSTAGED_MAX_NUM=-1
|
||
typeset -g POWERLEVEL9K_VCS_UNTRACKED_MAX_NUM=-1
|
||
|
||
# Status
|
||
typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true
|
||
typeset -g POWERLEVEL9K_STATUS_OK=false
|
||
typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true
|
||
typeset -g POWERLEVEL9K_STATUS_ERROR=true
|
||
typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=160
|
||
typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘'
|
||
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true
|
||
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=160
|
||
typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false
|
||
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='✘'
|
||
|
||
# Execution time
|
||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
|
||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
|
||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=101
|
||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
|
||
|
||
# Background jobs
|
||
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
|
||
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=37
|
||
|
||
# Time
|
||
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M}'
|
||
typeset -g POWERLEVEL9K_TIME_FOREGROUND=109
|
||
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
|
||
|
||
typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet
|
||
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=same-dir
|
||
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
|
||
|
||
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
|
||
'builtin' 'unset' 'p10k_config_opts'
|
||
}
|