Commit 30b1fd7c authored by Vincent Le gallic's avatar Vincent Le gallic

Fin du déshardcodage des couleurs.

On garde une version de la couleur sans les \[ \] et une version _prompt avec.
parent 399c89c0
......@@ -79,7 +79,7 @@ get_vcs_info () {
LBRANCH=$(eval "${BRANCH[$DIR]}")
LTYPE="${TYPE[$DIR]}"
if [ "$color_prompt" = yes ]; then
VCS_info="${nocolor}${vcs_symbols_color}(${nocolor}$LTYPE${vcs_symbols_color})-${vcs_symbols_color}[${vcs_branch_color}$LBRANCH${vcs_symbols_color}]${nocolor}"
VCS_info="${nocolor}${vcs_symbols_color}(${vcs_type_color}$LTYPE${vcs_symbols_color})-${vcs_symbols_color}[${vcs_branch_color}$LBRANCH${vcs_symbols_color}]${nocolor}"
else
VCS_info="($LTYPE)-[$LBRANCH]"
fi
......@@ -111,33 +111,52 @@ function cd {
# | Génération du prompt |
# +----------------------+
cyan='\[\e[1;36m\]'
violet='\[\e[1;35m\]'
violet_thin='\[\e[0;35m\]'
jaune='\[\e[1;33m\]'
rouge='\[\e[1;31m\]'
vert='\[\e[1;32m\]'
vert_thin='\[\e[0;32m\]'
bleu='\[\e[1;34m\]'
nocolor='\[\e[0m\]'
# Définition des couleurs
# Pour les utiliser dans le prompt,
# les couleurs doivent être entourés de \[ et \] pour délimiter les caractères
# invisibles
cyan='\e[1;36m'
violet='\e[1;35m'
violet_thin='\e[0;35m'
jaune='\e[1;33m'
jaune_thin='\e[0;33m'
rouge='\e[1;31m'
vert='\e[1;32m'
vert_thin='\e[0;32m'
bleu='\e[1;34m'
blanc='\e[1;37m'
nocolor='\e[0m'
cyan_prompt="\[${cyan}\]"
violet_prompt="\[${violet}\]"
violet_thin_prompt="\[${violet_thin}\]"
jaune_prompt="\[${jaune}\]"
jaune_thin_prompt="\[${jaune_thin}\]"
rouge_prompt="\[${rouge}\]"
vert_prompt="\[${vert}\]"
vert_thin_prompt="\[${vert_thin}\]"
bleu_prompt="\[${bleu}\]"
nocolor_prompt="\[${nocolor}\]"
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# support de la couleur
color_prompt=yes
# Couleurs dans "user@host $"
username_color=$rouge
host_color=$bleu
symbols_color=$vert
username_color=${rouge_prompt}
host_color=${bleu_prompt}
symbols_color=${vert_prompt}
# Couleur de la ligne séparatrice de prompt
line_color=$cyan
line_color=${cyan}
line_color_prompt=${cyan_prompt}
# Couleur du path actuel
pwd_color=$jaune
# Couleur de la date
date_color=$violet
pwd_color=${jaune_prompt}
# Couleur de la date (à chaque affichage du prompt)
date_color=${violet_prompt}
# Couleur de la date au premier affichage (à l'ouverture du terminal)
announce_date_color=${blanc}
# Couleur d'affichage de vcs_info
vcs_symbols_color=$violet_thin
vcs_type_color=
vcs_branch_color=$vert_thin
vcs_symbols_color=${violet_thin_prompt}
vcs_type_color=${jaune_thin_prompt}
vcs_branch_color=${vert_thin_prompt}
else
# pas de support de la couleur
color_prompt=no
......@@ -183,14 +202,14 @@ function prompt_command
POST_DIR='${MINUS_LINE:'${#pwd}+${VCS_size}+1'+${#?}}'
fi
if [ "$color_prompt" = yes ]; then
DIR="< ${pwd_color}"$DIR"${line_color} >"
DIR="< ${pwd_color}"$DIR"${line_color_prompt} >"
# On affiche le code de retour en "no color" si c'est 0, en rouge sinon
# Ceci n'est pas customizable à coup de variable,
# il faut changer $((31+($?==0)*6)) si vous y tenez vraiment et que vous comprenez ce que vous faites
ERR='[ \[\e[1;$((31+($?==0)*6))m\]$?'${line_color}' ]'$MINUS_CHAR
DATE="( ${date_color}\D{%H:%M:%S}${line_color} )"
ERR='[ \[\e[1;$((31+($?==0)*6))m\]$?'${line_color_prompt}' ]'$MINUS_CHAR
DATE="( ${date_color}\D{%H:%M:%S}${line_color_prompt} )"
PROMPT="${username_color}\u${symbols_color}@${host_color}\h ${symbols_color}\$ ${nocolor}"
PS1=$TITLE${line_color}$MINUS_CHAR$DATE$MINUS_CHAR$DIR$MINUS_CHAR$VCS_info${line_color}$POST_DIR$ERR'\n'$PROMPT
PS1=$TITLE${line_color_prompt}$MINUS_CHAR$DATE$MINUS_CHAR$DIR$MINUS_CHAR$VCS_info${line_color_prompt}$POST_DIR$ERR'\n'$PROMPT
else
DIR="< "$DIR" >"
ERR='[ $? ]'$MINUS_CHAR
......@@ -221,9 +240,9 @@ if [[ $(uname) == Linux && ( $(locale charmap) == UTF-8 && $TERM != screen ) ]];
redate=${date//é/e}
redate=${redate//û/u}
if [ "$color_prompt" = yes ]; then
echo -e "\e[1;36m┬─${redate//?/─}─┬${MINUS_LINE:${#date}-18}\n\
\e[1;37m$date\e[1;31m \e[1;36m \n\
└─${redate//?/─}\e[0m\n"
echo -e "${line_color}┬─${redate//?/─}─┬${MINUS_LINE:${#date}-18}\n\
${announce_date_color}$date ${line_color}\n\
└─${redate//?/─}─┘\e[0m\n"
else
echo -e "┬─${redate//?/─}──┬${MINUS_LINE:${#date}-18}\n\
$date\n\
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment