Sur une nouvelle installation d'Ubuntu 12.10, le gnome-terminal par défaut signale que $ TERM est xterm alors qu'il devrait vraiment rapporter xterm-256color. Quelle est la meilleure façon de changer cela? J'évite de mettre cela dans mon .bashrc car cela ne fait que poser des problèmes.
gnome-terminal
Freddy
la source
la source
xterm
est faux car la plupart des applications ne fonctionneront pas en mode 256 couleurs à moins que ce nexterm-256color
soit ouscreen-256color
(vim et tmux étant les principales qui me tiennent à cœur). Comme @Freddy, je préférerais ne pas les définir dans mon profil shell, car je peux me connecter à partir d'un type de terminal différent via SSH, et parce que c'est vraiment le travail de l'émulateur de terminal de définir cela. Je suis étonné que gnome-terminal ne fournisse pas plusieurs émulations.xterm-256colors
.Réponses:
Vous avez été bien avisé de ne pas modifier vos scripts de démarrage, spécialement
~/.bashrc
. Toute "détection de terminal" utilisant current$TERM
ou$COLORTERM
in~/.profile
n'est qu'une supposition et peut, comme vous l'avez dit, causer des problèmes lors de l'utilisation d'autres terminaux (par exemple, Putty ou xterm). L'émulateur de terminal est censé être défini$TERM
, et cela ne doit pas être modifié depuis l'intérieur du shell.Le terminal Gnome, AFAIK, n'offre pas de configuration pour changer son
TERM
, mais il vous permet de changer votre commande de démarrage, et c'est tout ce dont vous avez besoin. Voici l'astuce:Utilisez ensuite la commande suivante:
Remplacez simplement
/bin/bash
votre coque préférée si elle est différente. Et non, vous ne pouvez pas utiliser"$SHELL"
dans cette ligne pour la détection automatique du shell;) Vous devez le coder en durla source
Pour se connecter avec un terminal qui ne peut pas faire 256 couleurs.
Il serait bien préférable de détecter le terminal spécifiquement avec
$COLORTERM
. Recherchez gnome-terminal, xfce4-terminal, etc., puis définissez la$TERM
variable surxterm-256color
.Je le fais avec:
la source
COLORTERM
plus.COLORTERM
vous pouvez compterVTE_VERSION
.Bien qu'il soit vrai que terminfo a xterm + 256color (
/usr/share/terminfo/x/xterm+256color
), termcap a juste xterm (/usr/share/vte/termcap/xterm
), donc le changement$TERM
ne devrait pas être conseillé.Quoi qu'il en soit,
$TERM
n'est pas défini par gnome-terminal, mais par vte. La valeur par défaut de cette variable d'environnement peut être modifiée au moment de la compilation (en donnant une option au script de configuration) ou en appelant lavte_pty_set_term()
fonction. En regardant les sources de gnome-terminal, je vois que celavte_pty_set_term
n'est jamais appelé, donc je peux dire qu'il n'y a aucun moyen de modifier$TERM
en modifiant les paramètres de gnome-terminal.Ce que vous devez faire est de placer le morceau de code suivant dans votre
~/.profile
:la source
==
est une syntaxe bash uniquement, ne l'utilisez pas pour les extraits destinés à être fournis parsh
(ce qui est le cas~/.profile
dans les DE). De plus, la syntaxe "x $ .." n'est pas nécessaire car vous citez correctement l'extension var.