-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathasciiship.zsh-theme
53 lines (47 loc) · 1.88 KB
/
asciiship.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
51
52
53
# vim:et sts=2 sw=2 ft=zsh
_prompt_asciiship_vimode() {
case ${KEYMAP} in
vicmd) print -n '%S%#%s' ;;
*) print -n '%#' ;;
esac
}
_prompt_asciiship_keymap_select() {
zle reset-prompt
zle -R
}
if autoload -Uz is-at-least && is-at-least 5.3; then
autoload -Uz add-zle-hook-widget && \
add-zle-hook-widget -Uz keymap-select _prompt_asciiship_keymap_select
else
zle -N zle-keymap-select _prompt_asciiship_keymap_select
fi
typeset -g VIRTUAL_ENV_DISABLE_PROMPT=1
setopt nopromptbang prompt{cr,percent,sp,subst}
autoload -Uz add-zsh-hook
# Depends on duration-info module to show last command duration
if (( ${+functions[duration-info-preexec]} && \
${+functions[duration-info-precmd]} )); then
zstyle ':zim:duration-info' format ' took %B%F{yellow}%d%f%b'
add-zsh-hook preexec duration-info-preexec
add-zsh-hook precmd duration-info-precmd
fi
# Depends on git-info module to show git information
typeset -gA git_info
if (( ${+functions[git-info]} )); then
zstyle ':zim:git-info:branch' format '%b'
zstyle ':zim:git-info:commit' format 'HEAD %F{green}(%c)'
zstyle ':zim:git-info:action' format ' %F{yellow}(${(U):-%s})'
zstyle ':zim:git-info:stashed' format '\\\$'
zstyle ':zim:git-info:unindexed' format '!'
zstyle ':zim:git-info:indexed' format '+'
zstyle ':zim:git-info:ahead' format '>'
zstyle ':zim:git-info:behind' format '<'
zstyle ':zim:git-info:keys' format \
'status' '%S%I%i%A%B' \
'prompt' ' on %%B%F{magenta}%b%c%s${(e)git_info[status]:+" %F{red}[${(e)git_info[status]}]"}%f%%b'
add-zsh-hook precmd git-info
fi
PS1='
%(2L.%B%F{yellow}(%L)%f%b .)%(!.%B%F{red}%n%f%b in .${SSH_TTY:+"%B%F{yellow}%n%f%b in "})${SSH_TTY:+"%B%F{green}%m%f%b in "}%B%F{cyan}%~%f%b${(e)git_info[prompt]}${VIRTUAL_ENV:+" via %B%F{yellow}${VIRTUAL_ENV:t}%f%b"}${duration_info}
%B%(1j.%F{blue}*%f .)%(?.%F{green}.%F{red}%? )$(_prompt_asciiship_vimode)%f%b '
unset RPS1