#~#
#~# get_vcs_info () {
#~# # Donne les infos sur le dépôt VCS courant.
-#~# # priorité à git, puis darcs
-#~# local LBRANCH LTYPE BRANCH TYPE DIR violet orange vert
-#~# violet="\[\e[35m\]"
-#~# orange="\[\e[33m\]"
-#~# vert="\[\e[32m\]"
-#~# nocolor="\[\e[0m\]"
+#~# local LBRANCH LTYPE BRANCH TYPE DIR
#~# declare -a DIR
#~# declare -A TYPE
#~# declare -A BRANCH
#~# LBRANCH=$(eval "${BRANCH[$DIR]}")
#~# LTYPE="${TYPE[$DIR]}"
#~# if [ "$color_prompt" = yes ]; then
-#~# VCS_info="${nocolor}${violet}(${nocolor}$LTYPE${violet})-${violet}[${vert}$LBRANCH${violet}]${nocolor}"
+#~# VCS_info="${nocolor}${vcs_symbols_color}(${nocolor}$LTYPE${vcs_symbols_color})-${vcs_symbols_color}[${vcs_branch_color}$LBRANCH${vcs_symbols_color}]${nocolor}"
#~# else
#~# VCS_info="($LTYPE)-[$LBRANCH]"
#~# fi
# | 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\]'
+
+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
+ # Couleur de la ligne séparatrice de prompt
+ line_color=$cyan
+ # Couleur du path actuel
+ pwd_color=$jaune
+ # Couleur de la date
+ date_color=$violet
+ # Couleur d'affichage de vcs_info
+ vcs_symbols_color=$violet_thin
+ vcs_type_color=
+ vcs_branch_color=$vert_thin
+else
+ # pas de support de la couleur
+ color_prompt=no
+fi
+
# Génération de la ligne de "-"
function gen_minus_line
{
# Attention aux hacks pour que la couleur (et sa taille)
# soient évaluées au moment de l'affichage du prompt
- local pwd cyan violet jaune rouge vert bleu ERR DATE PROMPT DIR POST_DIR
+ local pwd ERR DATE PROMPT DIR POST_DIR
(( SAVE_COLUMNS == COLUMNS )) || gen_minus_line
-#~# #dépend de la section VCS
-#~# get_vcs_info
-
- cyan='\[\e[1;36m\]'
- violet='\[\e[1;35m\]'
- jaune='\[\e[1;33m\]'
- rouge='\[\e[1;31m\]'
- vert='\[\e[1;32m\]'
- bleu='\[\e[1;34m\]'
- nocolor='\[\e[0m\]'
+ #~# #dépend de la section VCS
+ #~# get_vcs_info
pwd=${PWD/#$HOME/'~'}
if (( ${#pwd} + ${VCS_size} + 27 > COLUMNS )); then
POST_DIR='${MINUS_LINE:'${#pwd}+${VCS_size}+1'+${#?}}'
fi
if [ "$color_prompt" = yes ]; then
- DIR="< ${jaune}"$DIR"${cyan} >"
- ERR='[ \[\e[1;$((31+($?==0)*6))m\]$?'${cyan}' ]'$MINUS_CHAR
- DATE="( ${violet}\D{%H:%M:%S}${cyan} )"
- PROMPT="${rouge}\u${vert}@${bleu}\h ${vert}\$ ${nocolor}"
- PS1=$TITLE${cyan}$MINUS_CHAR$DATE$MINUS_CHAR$DIR$MINUS_CHAR$VCS_info${cyan}$POST_DIR$ERR'\n'$PROMPT
+ DIR="< ${pwd_color}"$DIR"${line_color} >"
+ # 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} )"
+ 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
else
DIR="< "$DIR" >"
ERR='[ $? ]'$MINUS_CHAR
fi
}
-if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
- # support de la couleur
- color_prompt=yes
-else
- # pas de support de la couleur
- color_prompt=no
-fi
-
# On change le titre de la fenêtre dynamiquement si on est sous X
if [[ $TERM = "xterm" ]]; then
TITLE='\[\e];\u@\h:\w\a\]'