# init prompts autoload -Uz promptinit promptinit autoload -Uz vcs_info setopt PROMPT_SUBST GREY=0 GREEN=2 BLUE=4 RED_UNSTAGED=88 GREEN_STAGED=22 # %b - branch # %F{color} %f - foreground # %K{color} %k - background # %u - unstaged # %c - staged # %m - misc (cherry-pick and rebase for git) # %a - action zstyle ':vcs_info:git*' formats "%K{$BLUE}  %b%u%c%m%a%k%F{$BLUE}%f" zstyle ':vcs_info:*' enable git zstyle ':vcs_info:*' check-for-changes true zstyle ':vcs_info:*' stagedstr "%F{$GREEN_STAGED} 󱇬%f" zstyle ':vcs_info:*' unstagedstr "%F{$RED_UNSTAGED} ?%f" get_pkg_manager() { if [[ -f yarn.lock ]]; then echo " " elif [[ -f pnpm-lock.yaml ]]; then echo " " elif [[ -f package-lock.json ]]; then echo " " else echo "" fi } precmd() { vcs_info ERR="%0(?..%F{red} %?%f)"; GIT="$vcs_info_msg_0_" # USER="%K{blue}[%n@%M] %k" SSH="%K{$GREEN}${SSH_TTY:+ [%n@%M]}%k" DIR="%K{$GREEN}  %3~%k" NODEJS="$(get_pkg_manager)" JOBS="%(1j.%F{magenta}%K{black} JOBS:%j%k%f.)" NEWLINE=$'\n' TIP="%F{$GREEN}%f" if [ -n "$vcs_info_msg_0_" ]; then TIP="%K{$GREEN} %k" fi PROMPT="%K{$GREY} %* %k%B${SSH}${DIR}${TIP}${GIT}${ERR}${NODEJS}${JOBS}%b${NEWLINE} %# " }