Gnome-Terminal informa que $ TERM es `xterm`


21

En una instalación limpia de Ubuntu 12.10, el terminal predeterminado de gnome informa que $ TERM es xterm donde realmente debería informar xterm-256color. ¿Cuál es la mejor manera de cambiar esto? Estoy evitando poner esto en mi .bashrc ya que eso solo es pedir problemas.


2
¿Quiere explicar por qué xterm está mal? Afaik todos tenemos xterm. Además de eso: ¿también te importa explicar por qué poner esto en bashrc es pedir problemas?
— Rinzwind

44
xtermestá mal porque la mayoría de las aplicaciones no funcionarán en el modo de 256 colores a menos que sea xterm-256coloro screen-256color(vim y tmux son las principales que me interesan). Al igual que @Freddy, preferiría no configurarlos en mi perfil de shell, porque puedo estar conectando desde un tipo de terminal diferente a través de SSH, y porque realmente es el trabajo del emulador de terminal configurar esto. Estoy sorprendido de que gnome-terminal no proporcione múltiples emulaciones.
— Jim Stewart

3
vte-0.40 (que probablemente aparecerá en Ubuntu 15.10) cambió el valor predeterminado a xterm-256colors.
— egmont

Respuestas:


17

Le recomendamos que no cambie sus scripts de inicio, especialmente ~/.bashrc. Toda la "detección terminal" con corriente $TERMo $COLORTERMen ~/.profileno es más que una suposición, y puede, como usted ha dicho, causa problemas al utilizar otros terminales (por ejemplo, masilla o xterm). Se supone que el emulador de terminal debe establecerse $TERM, y esto no debe cambiarse desde el shell.

El terminal Gnome, AFAIK, no ofrece una configuración para cambiarlo TERM, pero le permite cambiar su comando de inicio, y eso es todo lo que necesita. Aquí está el truco:

Profile Preferences => Title and Command => Run a custom command instead of my shell

Luego use el siguiente comando:

env TERM=xterm-256color /bin/bash

Simplemente reemplácelo /bin/bashcon su caparazón preferido si es diferente. Y no, no puede usar "$SHELL"en esa línea para la detección automática de shell;) Tiene que codificarlo


Hay una opción en esa configuración para "Cuando el comando sale:". Las opciones son "Salir de la Terminal", "reiniciar el comando" y "mantener abierta la terminal". ¿Cuál debo seleccionar?
— Caleb Jay

@CalebJay: lo que prefiera, esa opción no está relacionada con los colores del terminal. Qué hacer cuando finaliza el comando es puramente una cuestión de preferencia.
— MestreLion

12

Para conectarse con un terminal que no puede hacer 256 colores.

Sería mucho mejor detectar el terminal específicamente con $COLORTERM. Busque gnome-terminal, xfce4-terminal, etc., y luego configure la $TERMvariable en xterm-256color.

Lo hago con:

if [ "$COLORTERM" = "gnome-terminal" ] || [ "$COLORTERM" = "xfce4-terminal" ]
then
    export TERM=xterm-256color
elif [ "$COLORTERM" = "rxvt-xpm" ]
then
    export TERM=rxvt-256color
fi

44
Solo tenga en cuenta que Gnome Terminal desde 3.13 en adelante ya no se configura COLORTERM.
— MestreLion

2
Para versiones que ya no están configuradas COLORTERM, puede confiar VTE_VERSION.
— egmont

6

Si bien es cierto que terminfo tiene xterm + 256color ( /usr/share/terminfo/x/xterm+256color), termcap solo tiene xterm ( /usr/share/vte/termcap/xterm), por lo $TERMque no debería ser aconsejable cambiar.

De todos modos, $TERMno está configurado por gnome-terminal, sino por vte. El valor predeterminado para esa variable de entorno se puede cambiar en tiempo de compilación (dando una opción al script de configuración) o llamando a la vte_pty_set_term()función. Al observar las fuentes de gnome-terminal, veo que vte_pty_set_termnunca se llama, así que puedo decir que no hay formas de modificar $TERMeditando la configuración de gnome-terminal.

Lo que debe hacer es colocar el siguiente código en su ~/.profile:

if [ "$TERM" = "xterm" ]
then
    export TERM=xterm-256color
fi

==es una sintaxis de bash-only, no la use para fragmentos que se deben obtener sh(que es el caso ~/.profilede los DE). Además, la sintaxis "x $ .." no es necesaria ya que está citando correctamente la expansión var.
— MestreLion

@MestreLion: siéntase libre de editar mi pregunta.
— Andrea Corbellini

Lo intenté, pero AU requiere que los cambios sean más de 6 caracteres, de ahí el comentario
— MestreLion
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.