![tmux Salida de 256 colores en terminal de 256 colores, salida de 8 colores en terminal de 8 colores](https://rvso.com/image/164713/tmux%20Salida%20de%20256%20colores%20en%20terminal%20de%20256%20colores%2C%20salida%20de%208%20colores%20en%20terminal%20de%208%20colores.png)
Me gustaría tmux
seleccionar automáticamente el modo de 256 colores, es decir, tener una variable de entorno
TERM=tmux-256color
adentro tmux
cuando la variable de entorno
TERM=xterm-256color
se establecióafuera.
Comportamiento predeterminado
Emulador de terminal de 256 colores
El comportamiento actual es tmux
elegir el modo de 8 colores en cualquier caso: utilice un emulador de terminal que admita 256 colores, es decir, Gnome Terminal o xterm, y asegúrese de que admita 256 colores.
echo $TERM; tput colors
# xterm-256colors
# 256
entonces empezar tmux
. Por defecto tmux
cambiará a 8 colores:
echo $TERM; tput colors
# screen
# 8
Emulador de terminal de 8 colores
Si en lugar de eso cambias a un terminal de 8 colores, es decir, si cambias a /dev/tty2
presionando Ctrl+Alt+F2, obtendrás
echo $TERM; tput colors
# linux
# 8
y dentro tmux
de lo mismo de siempre
echo $TERM; tput colors
# screen
# 8
Modo forzado de 256 colores
Puedo forzar tmux
a elegir el modo de 256 colores.añadiendo lo siguiente a~/.tmux.conf
set -s default-terminal "tmux-256color"
Sin embargo, esto también se aplica si elemulador de terminal exteriorPara empezar, no admitía 256 colores. Esto no es lo que quiero.
Modo adaptativo de 256 colores
Hayun problemay unPreguntas más frecuentesen GitHub ese estado establece uno de (las personas informan parámetros contradictorios)
set -ga terminal-overrides ",xterm-256color*:Tc"
set -sa terminal-overrides ",xterm-256color*:Tc"
set -ga terminal-overrides ",*256col*:Tc"
set -sa terminal-overrides ",*256col*:Tc"
Debería tmux
seleccionar el modo de color del terminal, pero ninguno funciona en mi instalación (tmux 3.0 en Arch).
¿Existe una forma definitiva de permitir tmux
seleccionar 8 o 256 colores, dependiendo de lo que admita el emulador de terminal actual?
Respuesta1
En realidad, esto no es algo que tmux pueda hacer completamente por usted mismo porque no puede cambiar TERM en programas que ya se están ejecutando, por ejemplo, si se desconecta de un terminal con xterm-256color y lo vuelve a conectar a un terminal con xterm.
Sin embargo, puedes hacerlo tú mismo. El TERM del cliente está disponible con el formato client_termname. Entonces puedes poner algo como esto en tu PS1 o .profile o lo que sea:
if [ -n "$TMUX" ]; then
T=$(tmux display -p '#{client_termname}')
case "$T" in
*-256color)
export TERM=tmux-256color
;;
*)
export TERM=tmux
;;
esac
fi
Obviamente, esto será predeterminado en tmux si crea paneles en una sesión no adjunta (client_termname estará vacío), o en el TERM del cliente utilizado más recientemente si tiene una sesión adjunta a varios clientes.
Si no desea hacerlo en su shell de esta manera, puede usar el enlace adjunto al cliente para cambiar el terminal predeterminado, pero esto solo se aplicará a los paneles nuevos, no a los existentes.
Otra opción sería ejecutar tmux-256color todo el tiempo y dejar que tmux traduzca el color hacia abajo cuando el terminal externo no pueda reproducir 256 colores.
Todo el contenido de las preguntas frecuentes sobre Tc trata sobre el color RGB (color verdadero), no sobre lo que estás preguntando.