blob: 1f0f164b62973662ec1fcfa7d4303a8365d7d445 (
plain) (
blame)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#vim:ft=zsh
_command_time_preexec() {
timer=${timer:-$SECONDS}
}
_command_time_precmd() {
PROMPT_TMP_DIR=$(mktemp)
if [ $timer ]; then
ts=$(($SECONDS - $timer))
tts=$ts
mi=0
ho=0
if [ $ts -ge 3 ];then
while [ $ts -ge 60 ];do
ts=$((ts-60))
mi=$((mi+1))
done
while [ $mi -ge 60 ];do
mi=$((mi-60))
ho=$((ho+1))
done
if [ $tts -ge 3600 ];then
out=$(printf '%dh %dm %ds\n' $ho $mi $ts)
elif [ $tts -ge 60 ];then
out=$(printf '%dm %ds\n' $mi $ts)
elif [ $tts -lt 60 ];then
out=$(printf '%ds\n' $ts)
fi
export psvar[1]="took $(printf '%s ' "$out")"
echo $psvar[1] > $PROMPT_TMP_DIR
fi
unset timer
unset ts
unset tts
unset mi
unset ho
fi
}
_command_ro_precmd() {
if ! [ -w $(pwd) ];then
echo " "
fi
}
preexec_functions+=(_command_time_preexec)
precmd_functions+=(_command_time_precmd)
blue="14"
red="9"
white="15"
setopt PROMPT_SUBST
export PROMPT='%(?.%F{$blue}.%F{$red})%B%3~%(!. %F{$red}as root %f. )%F{$white}$(if [ -n $PROMPT_TMP_DIR ];then cat $PROMPT_TMP_DIR; rm $PROMPT_TMP_DIR;fi)%f%(?.%F{$blue}.%F{$red})%F{$red}$(_command_ro_precmd)%F{$blue}❯ %b%f'
export RPROMPT=''
#%(2V.%F{$red}%2v%f$(export psvar[2]="") .)
# TODO:
# Add git support
|