-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathzim_gister.zsh-theme
50 lines (40 loc) · 1.52 KB
/
zim_gister.zsh-theme
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
#
# Gitster theme
# https://github.com/shashankmehta/dotfiles/blob/master/thesetup/zsh/.oh-my-zsh/custom/themes/gitster.zsh-theme
#
# Requires the `git-info` zmodule to be included in the .zimrc file.
prompt_gitster_status() {
print -n '%(?:%F{blue}:%F{red})❯ '
}
prompt_gitster_pwd() {
prompt_short_dir=$(short_pwd)
# git_root=$(command git rev-parse --show-toplevel 2> /dev/null) && prompt_short_dir=${prompt_short_dir#${$(short_pwd $git_root):h}/}
print -n "%F{white}${prompt_short_dir}"
}
prompt_gitster_git() {
[[ -n ${git_info} ]] && print -n "${(e)git_info[prompt]}"
}
prompt_gitster_precmd() {
(( ${+functions[git-info]} )) && git-info
}
prompt_gitster_setup() {
autoload -Uz colors && colors
autoload -Uz add-zsh-hook
prompt_opts=(cr percent subst)
add-zsh-hook precmd prompt_gitster_precmd
zstyle ':zim:git-info' verbose 'yes'
zstyle ':zim:git-info:branch' format '%b'
zstyle ':zim:git-info:action' format ' %F{red}%s'
zstyle ':zim:git-info:commit' format '%c'
zstyle ':zim:git-info:diverged' format ' %F{green}⇡%F{red}⇣'
zstyle ':zim:git-info:ahead' format ' %F{green}⇡'
zstyle ':zim:git-info:behind' format ' %F{red}⇣'
zstyle ':zim:git-info:clean' format ' %F{blue}✓'
zstyle ':zim:git-info:dirty' format ' %F{yellow}%u✗'
zstyle ':zim:git-info:stashed' format ' %F{cyan}%S●'
zstyle ':zim:git-info:keys' format \
'prompt' ' %F{cyan}%b%c%V%A%B%S%D%C%s'
PROMPT="$(prompt_gitster_status)\$(prompt_gitster_pwd)\$(prompt_gitster_git)%f "
RPROMPT=''
}
prompt_gitster_setup "$@"