blob: d072e55c703c7ec21a988d9ce4eb82bebfc5e255 (
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
##
## Part of configuration files for Zsh 4
## by Hugues Hiegel <hugues@hiegel.fr>
##
## NO WARRANTY PROVIDED, USE AT YOUR OWN RISKS
##
## You are encouraged to use, modify, and redistribute
## these files with or without this notice.
##
typeset -A prompt_colors git_colors mail_colors correct_colors battery_colors
# I hate kik00l0l colorized prompts, so I'm using a way to
# give a dominant color for each part of the prompt, each of
# these remain still configurable one by one.
# Take a look to set_prompt_colors for these colorizations.
#
# To set the dominant color I'm using this :
#
# - PS1_ROOT when we are root
# - PS1_USER for normal usage
# - PS1_USER_SSH when we are connected through SSH
#
# I'm storing the resulting dominant color in $prompt_colors[generic]
PS1_ROOT=${PS1_ROOT:-$color[red]}
PS1_USER=${PS1_USER:-$color[blue]}
PS1_USER_SSH=${PS1_USER_SSH:-$color[magenta]}
PS1_USER_SCR=${PS1_USER_SCR:-$color[cyan]}
prompt_colors[generic]=`print -Pn "%(! $PS1_ROOT $PS1_USER)"`
normal_user && if ( [ "$SSH_TTY" != "" ] )
then
# This allows us to easily distinguish shells
# which really are on the local machine or not.
# That's so good, use it ! :-)
prompt_colors[generic]=${PS1_USER_SSH:-$prompt_colors[generic]}
fi
normal_user && if ( [ "$TERM" = "screen" ] )
then
prompt_colors[generic]=${PS1_USER_SCR:-$prompt_colors[generic]}
fi
#
# This func is intended to give a quick way to set the colors for the
# prompt inside a running zsh-session
#
set_prompt_colors ()
{
local my_generic
my_generic=${1:-$prompt_colors[generic]}
prompt_colors[path]="$my_generic;$color[bold]" # pwd
#prompt_colors[term]="$my_generic" # tty
prompt_colors[user]="$my_generic" # login
prompt_colors[host]="$my_generic" # hostname
#prompt_colors[hist]="$color[none]" # history number
prompt_colors[arob]="$color[bold];$my_generic" # <login>@<hostname>
prompt_colors[dies]="$my_generic" # the bottom-end of the prompt
prompt_colors[doubledot]="$color[none]" # separates pwd from git-branch
#prompt_colors[paren]="$color[cyan]" # parenthesis (around tty)
prompt_colors[bar]="$my_generic;$color[bold]" # horizontal bar
prompt_colors[braces]="$prompt_colors[bar]" # braces (around date)
prompt_colors[error]="$color[bold];$color[yellow]" # error code
prompt_colors[date]="$my_generic" # full date
prompt_colors[cmd]="$color[none]" # command prompt
prompt_colors[exec]="$color[none]" # command output
battery_colors[charging]="$color[cyan];$color[bold]"
battery_colors[full]="$color[none]"
battery_colors[uncharging]="$color[normal];$color[bold]"
battery_colors[critical]="$color[red];$color[bold]"
mail_colors[unread]="$color[yellow];$color[bold]" # mail received
mail_colors[listes]="$my_generic;$color[bold]" # less important mail received
prompt_colors[up_to_date]="$my_generic" # up-to-date
prompt_colors[not_up_to_date]="$color[green];$color[bold]" # not up to date
prompt_colors[to_be_commited]="$color[yellow];$color[bold]" # changes in cache
git_colors[managment_folder]="$color[red];$color[bold]" # .git/... folder browsing
git_colors[cached]="$prompt_colors[to_be_commited]" # git changes in cache
git_colors[cached_and_not_up_to_date]="$prompt_colors[not_up_to_date];$color[bold]"
git_colors[not_up_to_date]="$prompt_colors[not_up_to_date];$color[normal]" # git changes in working tree
git_colors[up_to_date]="$prompt_colors[up_to_date]" # git up-to-date
}
set_prompt_colors
correct_colors[error]="$color[red];$color[bold]"
correct_colors[suggest]="$color[blue];$color[bold]"
|