¿Por qué tmux establece la variable TERM en la pantalla?

19

Citando la tmuxpágina man:

La variable de entorno TERM debe establecerse en "pantalla" para todos los programas que se ejecutan dentro de tmux. Las nuevas ventanas tendrán automáticamente "TERM = pantalla" agregada a su entorno, pero se debe tener cuidado de no restablecer esto en los archivos de inicio de shell.

¿Es esto porque la tmuxsesión se puede conectar a cualquier terminal (por ejemplo, remota), screensiendo el mínimo común denominador? Si conozco mi terminal, ¿puedo forzarlo sin resultados inesperados, o se romperían algunas capacidades no compatibles (como el desplazamiento)?

sevo
fuente

Respuestas:

13

Hace esto para aprovechar la descripción de terminal instalada previamente para la pantalla GNU.

Tanto tmux como screen proporcionan a las aplicaciones (más o menos) las "mismas" descripciones de terminal para simplificar la conexión desde diferentes terminales. Se supone que los programas tmux y screen manejan las diferencias entre lo interno (TERM = pantalla) y lo externo (xterm, linux, etc.). Por lo tanto, la screendescripción del terminal se ha instalado "en todas partes" (generalmente por ncurses).

Hay algunas diferencias:

  • La pantalla GNU tiene un problema muy antiguo que representa la característica "sobresaliente" (que técnicamente no es una característica de terminal específica sino más bien una abstracción para la conveniencia de las aplicaciones de maldiciones). tmux no tiene esa limitación. Pero el término TERM = tmux mejorado no está necesariamente "en todas partes".
  • La pantalla GNU tiene una función para usar descripciones de terminales híbridas. Dado el término externo = xterm y la existencia de "screen.xterm", elegirá eso para el valor interno de TERM. (ver por ejemplo la base de datos del terminal ). tmux no hace eso.
Thomas Dickey
fuente
5

A partir de tmux 2.1 , puede usar el tmux terminfo :

'default-terminal' ahora es una opción de sesión. Además, si está configurado en 'screen- *', emule lo que hace la pantalla. Si se desea cursiva, se puede establecer en 'tmux' pero aún es nuevo y no necesariamente es compatible con todas las plataformas con instalaciones antiguas de ncurses

jasonwryan
fuente