summaryrefslogtreecommitdiff
path: root/zsh/prompt.zsh
blob: 2ccbd696f0b256ffb1de0c348b22f651d9e64d6d (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

# init prompts
# my fancy prompt
autoload -Uz promptinit
promptinit

autoload -Uz vcs_info

setopt PROMPT_SUBST

GIT_INFO=""

zstyle ':vcs_info:git*' formats "  %b %c%u%m%a"
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'

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

	PS_NODE="$(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"
}