From 867cc6af5aa98522886a70082557e2293a468046 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Mon, 22 Jul 2013 17:40:44 +0200 Subject: [PATCH] [bashrc] Color only if supported by term --- .bashrc | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/.bashrc b/.bashrc index a7ecdda..becaeb5 100644 --- a/.bashrc +++ b/.bashrc @@ -71,8 +71,11 @@ fi #~# done #~# if [ -n "$LTYPE" ]; #~# then -#~# echo $LTYPE -#~# VCS_info="${nocolor}${violet}(${nocolor}$LTYPE${violet})-${violet}[${vert}$LBRANCH${violet}]${nocolor}" +#~# if [ "$color_prompt" = yes ]; then +#~# VCS_info="${nocolor}${violet}(${nocolor}$LTYPE${violet})-${violet}[${vert}$LBRANCH${violet}]${nocolor}" +#~# else +#~# VCS_info="($LTYPE)-[$LBRANCH]" +#~# fi #~# VCS_size=$((${#LTYPE}+${#LBRANCH}+5)) #~# else #~# VCS_info="" @@ -142,13 +145,29 @@ function prompt_command DIR=$pwd POST_DIR='${MINUS_LINE:'${#pwd}+${VCS_size}+1'+${#?}}' fi - 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 + 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 + else + DIR="< "$DIR" >" + ERR='[ $? ]'$MINUS_CHAR + DATE="( \D{%H:%M:%S} )" + PROMPT="\u@\h \$ " + PS1=$TITLE$MINUS_CHAR$DATE$MINUS_CHAR$DIR$MINUS_CHAR$VCS_info$POST_DIR$ERR'\n'$PROMPT + 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\]' @@ -169,9 +188,15 @@ if [[ $(uname) == Linux && ( $(locale charmap) == UTF-8 && $TERM != screen ) ]]; date=$(/bin/date +"%R, %A %d %B %Y") redate=${date//é/e} redate=${redate//û/u} - echo -e "\e[1;36m┬─${redate//?/─}──┬${MINUS_LINE:${#date}-18}\n\ + 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" + else + echo -e "┬─${redate//?/─}──┬${MINUS_LINE:${#date}-18}\n\ +│ $date │\n\ +└─${redate//?/─}──┘\n" + fi unset date else MINUS_CHAR=- -- 2.39.2