blob: 848e7e231d7a63dbbf24d30fb9355d99be7a57c5 (
plain)
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
71
72
73
74
75
76
77
78
|
#
# colorize shell programs
if ls -Z . &>/dev/null 2>&1; then
# gnu coreutils?
alias ls='ls --color=auto'
eval `dircolors ${XDG_CONFIG_HOME:-${HOME}/.config}/dircolors.conf`
elif (( $+commands[gls] )); then
# prefixed gnu coreutils?
alias ls='gls --color=auto'
eval `gdircolors ${XDG_CONFIG_HOME:-${HOME}/.config}/dircolors.conf`
else
# assume bsd ls
alias ls='ls -G'
export LSCOLORS="exgxbxdxcxegedxbxgxcxd"
fi
# grep
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
# less
export LESS_TERMCAP_mb=$'\e[1;31m' # begin blinking - bold red
export LESS_TERMCAP_md=$'\e[1;34m' # begin bold - bold blue
export LESS_TERMCAP_me=$'\e[0m' # end mode
export LESS_TERMCAP_so=$'\e[1;33;47m' # begin standout mode - bold yellow on light gray ("white")
export LESS_TERMCAP_se=$'\e[0m' # end standout mode
export LESS_TERMCAP_us=$'\e[4;36m' # begin underline - cyan underline
export LESS_TERMCAP_ue=$'\e[0m' # end underline
#
# make a sweet prompt
autoload colors; colors;
setopt prompt_subst # expansion of color codes, etc. in the prompt
# print the fully resolved shell command with time stamp
# to be run from zsh's builtin 'preexec' with all arguments passed through ($*)
function theme_preexec () {
echo "($fg[magenta]`date +%r`$reset_color) $fg[cyan]$3$reset_color"
}
# print the prompt char in red if the last command exited non-zero
function prompt_char {
echo "%(?.$.%{$fg[red]%}$%{$reset_color%})"
}
function repo_prompt_info {
# git
ref=$(git symbolic-ref HEAD 2> /dev/null || git rev-parse --short HEAD 2> /dev/null)
if [ $? -eq 0 ]; then
#repo=$(basename $(git rev-parse --show-toplevel))
echo "%{$fg[cyan]%}${ref#refs/heads/}%{$reset_color%}"
return
fi
}
function workspace_prompt_info {
repo=$(repo_prompt_info)
if [ "$repo" ]; then
echo "[$repo] "
return
fi
}
# print the hostname in green if local, else red
function hostname_info {
if [[ $ZSH_LOCAL_ENV == "true" ]]; then
echo "%{$fg[green]%}%{$ZSH_HOST_PREFIX%}%m%{$ZSH_HOST_SUFFIX%}%{$reset_color%}"
else
echo "%{$fg[red]%}%{$ZSH_HOST_PREFIX%}%m%{$ZSH_HOST_SUFFIX%}%{$reset_color%}"
fi
}
# a colorful multiline prompt using the above defined functions
PROMPT=$'%{$fg[yellow]%}%n%{$reset_color%}@$(hostname_info):%{$fg[blue]%}%~%{$reset_color%}
$(workspace_prompt_info)$(prompt_char)%{$reset_color%} '
|