summaryrefslogtreecommitdiff
path: root/zsh/prompt.zsh
blob: 4516eb2a8a8ea62753111e29b719cf57ddacab2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# init prompts
autoload -Uz promptinit
promptinit

autoload -Uz vcs_info

setopt PROMPT_SUBST

GREY=0
GREEN=2
BLUE=4
WHITE=15
COLOR_UNSTAGED=0
COLOR_STAGED=0
# %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"
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' stagedstr "%F{$COLOR_STAGED} 󰸞%f"
zstyle ':vcs_info:*' unstagedstr "%F{$COLOR_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
	ARCH_BTW="%K{$WHITE}%F{$BLUE}  %f%k"
	SSH="%K{$GREEN}${SSH_TTY:+ [%n@%M]}%k"
	DIR="%K{$GREEN}  %3~ %k"
	GIT="$vcs_info_msg_0_"
	ERR="%0(?..%F{red} %?%f)"
	NODEJS="$(get_pkg_manager)"
	JOBS="%(1j.%F{magenta}%K{black} JOBS:%j%k%f.)"
	PROMPT="%B${ARCH_BTW}${SSH}${DIR}${GIT}${ERR}${NODEJS}${JOBS}%b "
}