push
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
# 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_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'
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
# Enable Powerlevel10k instant prompt
|
||||
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
fi
|
||||
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
|
||||
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||
|
||||
# Plugins
|
||||
plugins=(
|
||||
git
|
||||
sudo
|
||||
z
|
||||
colored-man-pages
|
||||
command-not-found
|
||||
zsh-autosuggestions
|
||||
zsh-syntax-highlighting
|
||||
zsh-completions
|
||||
fzf-tab
|
||||
)
|
||||
|
||||
# History
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
HISTFILE=~/.zsh_history
|
||||
setopt HIST_IGNORE_DUPS
|
||||
setopt HIST_IGNORE_SPACE
|
||||
setopt SHARE_HISTORY
|
||||
setopt AUTO_PUSHD
|
||||
setopt PUSHD_IGNORE_DUPS
|
||||
|
||||
# Autosuggestions
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#585b70"
|
||||
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# Syntax highlighting (Catppuccin Mocha) — must be after sourcing omz
|
||||
ZSH_HIGHLIGHT_STYLES[command]='fg=#89b4fa,bold'
|
||||
ZSH_HIGHLIGHT_STYLES[alias]='fg=#cba6f7,bold'
|
||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=#89dceb,bold'
|
||||
ZSH_HIGHLIGHT_STYLES[function]='fg=#a6e3a1,bold'
|
||||
ZSH_HIGHLIGHT_STYLES[path]='fg=#cdd6f4'
|
||||
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=#f38ba8,bold'
|
||||
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=#a6e3a1'
|
||||
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=#a6e3a1'
|
||||
|
||||
# Completion
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
||||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
||||
zstyle ':completion:*' menu no
|
||||
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza --color=always --icons $realpath'
|
||||
zstyle ':fzf-tab:*' fzf-flags \
|
||||
--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8,fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc,marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8
|
||||
|
||||
# Aliases
|
||||
alias ls='eza --color=always --icons --group-directories-first'
|
||||
alias ll='eza -la --color=always --icons --group-directories-first --git'
|
||||
alias lt='eza --tree --color=always --icons --level=2'
|
||||
alias cat='bat --style=plain --paging=never'
|
||||
alias grep='grep --color=auto'
|
||||
alias cp='cp -iv'
|
||||
alias mv='mv -iv'
|
||||
alias rm='rm -iv'
|
||||
alias mkdir='mkdir -pv'
|
||||
alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
alias ....='cd ../../..'
|
||||
alias update='sudo apt update && sudo apt upgrade -y'
|
||||
alias cls='clear'
|
||||
|
||||
# Man pages via bat
|
||||
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
||||
export MANROFFOPT="-c"
|
||||
|
||||
# FZF (Catppuccin Mocha)
|
||||
export FZF_DEFAULT_OPTS="\
|
||||
--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
|
||||
--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
|
||||
--color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 \
|
||||
--color=selected-bg:#45475a \
|
||||
--height=50% --layout=reverse --border=rounded"
|
||||
|
||||
export FZF_CTRL_T_OPTS="--preview 'bat --color=always --style=plain {}'"
|
||||
export FZF_ALT_C_OPTS="--preview 'eza --tree --color=always --icons {}'"
|
||||
|
||||
[ -f /usr/share/doc/fzf/examples/key-bindings.zsh ] && source /usr/share/doc/fzf/examples/key-bindings.zsh
|
||||
[ -f /usr/share/doc/fzf/examples/completion.zsh ] && source /usr/share/doc/fzf/examples/completion.zsh
|
||||
|
||||
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||
Reference in New Issue
Block a user