-
Notifications
You must be signed in to change notification settings - Fork 1
/
prompt.zsh
52 lines (40 loc) · 1.24 KB
/
prompt.zsh
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
setopt PROMPT_SUBST
local root_prompt='%{$fg_bold[red]%}!!%{$reset_color%}'
ZSH_THEME_GIT_PROMPT_PREFIX_CLEAN=" %{$fg[green]%}:"
ZSH_THEME_GIT_PROMPT_PREFIX_DIRTY=" %{$fg[yellow]%}:"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY=") %{$fg[yellow]%}\u00b1%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN=")"
function return_code {
echo "%(?..%{$fg[red]%}%? ↵ %{$reset_color%})"
}
function preexec {
(( $#_elapsed > 10 )) && set -A _elapsed $_elapsed[-10,-1]
typeset -ig _start=SECONDS
}
function precmd {
(( _start >= 0 )) && set -A _elapsed $_elapsed $(( SECONDS-_start ))
_start=-1
}
function elapsed_time {
elapsed=$_elapsed[-1]
if [[ $elapsed -gt 0 ]]; then
(( minutes = $elapsed / 60 ))
(( seconds = $elapsed - (minutes * 60) ))
time="${seconds}s"
if [[ $minutes != "0" ]]; then
time="${minutes}m ${time}"
fi
echo "%{$fg[yellow]%}[$time]%{$reset_color%}"
fi
}
function timestamp {
#echo -n " %{$fg[blue]%}$(date +"%H:%M:%S")%{$reset_color%}"
}
PROMPT='%{$fg_bold[blue]%}%c%{$reset_color%}$(git_prompt_info)→ '
RPROMPT='$(return_code)%{$reset_color%}$(elapsed_time)$(timestamp)'
if [[ $EUID -eq 0 ]]
then
# Apply a warning when working as root
PROMPT="$PROMPT$root_prompt "
fi