forked from ohmyzsh/ohmyzsh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
prompt_fullsailor_setup
70 lines (55 loc) · 1.52 KB
/
prompt_fullsailor_setup
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
64
65
66
67
68
69
70
# A custom theme just for me!
#
# Author:
# Andrew Smith <fullsailor@me.com>
#
# Example:
# |5:00:23| username at hostname in ~/path on branch
function time_info {
echo "%F{none}|%F{green}%*%F{none}|%f"
}
function user_info {
echo "%F{blue}%n%f"
}
function host_info {
echo "%F{yellow}%m%f"
}
function path_info {
echo "%F{cyan}$(nocorrect PWD)%f"
}
# My home directory is a git repo of my dotfiles. I do not want my prompt to lie
# and say that isn't
function is_git_dir {
[[ $(pwd) != $HOME ]] && [[ -d "./.git" ]]
}
function prompt_char {
is_git_dir && echo '±' && return
echo '○'
}
function git_info {
is_git_dir && echo $git_prompt_info
}
function prompt_fullsailor_precmd () {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
if (( $+functions[git-info] )); then
git-info
fi
print -rP $'$(time_info) $(user_info) at $(host_info) in $(path_info) $(git_info)'
}
function prompt_fullsailor_setup() {
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
prompt_opts=(cr percent subst)
autoload -Uz add-zsh-hook
add-zsh-hook precmd prompt_fullsailor_precmd
# For Vi mode
zstyle ':omz:prompt' vicmd '%F{yellow}❮%f%B%F{red}❮%f%b%F{red}❮%f'
zstyle ':omz:plugin:git:prompt' prompt 'on %b%A%B%D'
zstyle ':omz:plugin:git:prompt' branch '%F{magenta}%b%f'
zstyle ':omz:plugin:git:prompt' ahead '%F{yellow}⬆%f'
zstyle ':omz:plugin:git:prompt' behind '%F{yellow}⬇%f%'
zstyle ':omz:plugin:git:prompt' dirty '%F{yellow}ϟ%f'
PROMPT='$(prompt_char) '
}
prompt_fullsailor_setup "$@"