diff options
| author | Skladnayazebra <skladnayazebra@gmail.com> | 2026-03-29 22:26:14 +0200 |
|---|---|---|
| committer | Skladnayazebra <skladnayazebra@gmail.com> | 2026-03-29 22:26:14 +0200 |
| commit | 1f73c99707170f2b2617a272f00481997cc4dac0 (patch) | |
| tree | 92a3bd99d91787ffdd5a3ea69895239fed2386fe /zsh/prompt.zsh | |
| parent | f4188a8186803f4f49288f832e7573cfffce6289 (diff) | |
zsh: add cdr utility and new prompt
Diffstat (limited to 'zsh/prompt.zsh')
| -rw-r--r-- | zsh/prompt.zsh | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/zsh/prompt.zsh b/zsh/prompt.zsh index 2ccbd69..4dcd4de 100644 --- a/zsh/prompt.zsh +++ b/zsh/prompt.zsh @@ -1,6 +1,4 @@ - # init prompts -# my fancy prompt autoload -Uz promptinit promptinit @@ -8,22 +6,23 @@ autoload -Uz vcs_info setopt PROMPT_SUBST -GIT_INFO="" - -zstyle ':vcs_info:git*' formats " %b %c%u%m%a" +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 '%K{green} ✚ %k' -zstyle ':vcs_info:*' unstagedstr '%K{red} ● %k' - -PS_GIT_TAGS="" -PS_NODE="" - -PS_ERR="%0(?..%K{red}(%?%)%k)"; -PS_GIT='%K{blue}$vcs_info_msg_0_%k' -PS_USER='%K{blue}[%n@%M] %k' -PS_SSH='%K{green}${SSH_TTY:+ [%n@%M]}%k' -PS_DIR='%K{green} %3~ %k' +zstyle ':vcs_info:*' stagedstr "%F{$GREEN_STAGED} %f" +zstyle ':vcs_info:*' unstagedstr "%F{$RED_UNSTAGED} ?%f" get_pkg_manager() { if [[ -f yarn.lock ]]; then @@ -37,10 +36,21 @@ get_pkg_manager() { fi } -precmd() { +precmd() { vcs_info - PS_NODE="$(get_pkg_manager)" + 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.)" - PROMPT="%B${PS_ERR}${PS_SSH}${PS_DIR}${PS_GIT}${PS_NODE}${JOBS} %# %b" + 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} %# " } |
