-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzsh.sh
executable file
·40 lines (32 loc) · 1014 Bytes
/
zsh.sh
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
##############################
# o #
# o | #
# o-o o--o O-o oo o-o #
# / | | | | | | | | #
# o-o | o--O o-o o-o- o #
# | #
# o--o #
##############################
# ZSH init script adapted from Starship (ISC license)
# https://github.com/starship/starship/blob/master/src/init/starship.zsh
zmodload zsh/datetime
zmodload zsh/mathfunc
__zsp_get_time() {
(( ZSP_CAPTURED_TIME = int(rint(EPOCHREALTIME * 1000)) ))
}
prompt_zsp_precmd() {
if (( ${+ZSP_START_TIME} )); then
__zsp_get_time && (( ZSP_DURATION = ZSP_CAPTURED_TIME - ZSP_START_TIME ))
unset ZSP_START_TIME
else
unset ZSP_DURATION
fi
}
prompt_zsp_preexec() {
__zsp_get_time && ZSP_START_TIME=$ZSP_CAPTURED_TIME
}
autoload -Uz add-zsh-hook
add-zsh-hook precmd prompt_zsp_precmd
add-zsh-hook preexec prompt_zsp_preexec
setopt promptsubst
PROMPT='$(zsp prompt --columns="$COLUMNS" --duration="${ZSP_DURATION:-}")'