Re: xfce4-terminal ne lit plus .dircolors
steve, le 2017-07-11 :
> Salut,
Bonjour,
> Depuis le passage à Stretch, ce terminal n'affiche plus
> fichiers en couleurs selon l'extension.
>
> La variable TERM est positionnée dans ~/.bashrc :
>
> TERM_COLOR="$h_magenta\t$blanc $h_vert\u$blanc@$jaune\h$HOSTEXT$blanc:$vert \#$blanc $USERPROMPT "
> TERM_NB="\t \u@\h$HOSTEXT:\w \#$USERPROMPT "
> case "$TERM" in
> "gnome-256color|Eterm"|"xterm"|"xterm-color"|"xterm-256color")
> PROMPT_COMMAND='echo -ne
> "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
> PS1="$TERM_COLOR\[\e[0m\]"
> #TERM="xterm"
> #TERM="gnome-256color"
> TERM="xterm-256color"
> ;;
> "linux"|"screen")
> PS1="$TERM_NB"
> ;;
> "dumb")
> # terminal utilisé par scp lors des transferts
> # il vaut mieux ne rien changer ici.
> ;;
> *)
> PS1="$TERM_NB"
> echo "Terminal '$TERM' inconnu"
> ;;
> esac
Ça n'a peut-être rien à voir avec le problème présent, mais il me
semble distinguer une typo dans le premier cas du `case` :
"gnome-256color|Eterm"|"xterm" ...
devrait être :
"gnome-256color"|"Eterm"|"xterm" ...
Sinon les cas "gnome-256color" et "Eterm" ne se passent pas bien.
> Juste au-dessus, j'ai
>
> export LS_COLORS='--color=auto'
> eval $(dircolors -b $HOME/.dircolors)
L'export de LS_COLORS en première commande n'est pas nécessaire,
car la variable sera écrasée lors du `eval` lisant fichier
~/.dircolors. D'ailleurs l'export initial n'a pas vraiment de
sens, car LS_COLORS décrit les couleurs à utiliser lors de
l'exécution d'un `ls --color` et non les options à passer par
défaut à `ls` (la page de manuel de `ls` est un peu floue à ce
sujet, mais c'est détaillé dans la page de manuel de la commande
`dircolors`).
Dans les fichiers de configuration de Bash fournis par défaut
dans Debian, ces fameuses options sont passées par des alias dans
le fichier ~/.bashrc. Par exemple :
alias ls='ls --color=auto'
> Par contre, xterm se comporte comme prévu.
Pourquoi ça marche ? Cette question peut paradoxalement devenir
des plus frustrantes dans ce genre de cas.
Un détail peut jouer : le contenu de la variable TERM associée au
`xfce4-terminal` est passé de la valuer "xterm" à la valeur
"xterm-256color" en passant de Debian 8 à Debian 9, alors qu'au
lancement de `xterm`, cette valeur n'a pas changé et est restée à
"xterm". Mais si on s'en tient à l'extrait de votre script, ces
deux cas devraient être traités de manière identique.
> Je ne sais où chercher.
Vous pouvez vérifier le contenu des différentes variables dans
les cas `xterm` et `xfce4-terminal` en exécutant les commandes :
echo "$TERM"
echo "$LS_COLORS"
Vous pouvex également voir si `ls` est un alias vers une commande
plus compliquée, comme `ls --color=auto` ou pas en utilisant la
commande :
alias ls
Par exemple j'ai (sans détailler le contenu de LS_COLORS, car
elle contient presque 1400 caractères pour décrire les extensions
de fichiers) :
$ echo $TERM
st-256color
$ echo $LS_COLORS
rs=0:di=00;34:ln=00;36:mh=00:pi=33:so=00;35:do=00;35:b...
$ alias ls
alias ls='ls --color=auto'
Si ça peut vous donner des pistes...
À plus,
--
Étienne Mollier <etienne.mollier@mailoo.org>
Reply to: