¿Hay alguna forma confiable de verificar cuántos colores admite mi emulador de terminal?
Si se echo $TERM
imprime xterm
, ¿eso me dice inequívocamente cuántos colores admite mi emulador de terminal? ¿Cómo podría verificar esta información de manera confiable?
terminal-emulator
Amelio Vazquez-Reina
fuente
fuente
Respuestas:
El valor de
$TERM
no proporciona mucha información sobre la cantidad de colores admitidos. Muchos terminales se anuncian comoxterm
y pueden admitir cualquier cantidad de colores (2, 8, 16, 88 y 256 son valores comunes).Puede consultar el valor de cada color con la
OSC 4 ; c ; ? BEL
secuencia de control . Sic
se admite el número de color , y si el terminal comprende esta secuencia de control, el terminal responderá con el valor del color. Si el número de color no es compatible o si el terminal no comprende esta secuencia de control, el terminal no responde nada. Aquí hay un fragmento de bash / zsh para consultar si el color 42 es compatible (redirigir a / desde la terminal si es necesario):Entre los terminales populares, xterm y los terminales basados en la biblioteca VTE (Gnome-terminal, Terminator, Xfce4-terminal, ...) admiten esta secuencia de control; rxvt, konsole, screen y tmux no.
No sé de una manera más directa.
fuente
read -d $'\a' -s -t 1
hace?\a
(carácter de campana), sin hacer eco de entrada, con un tiempo de espera de 1 segundo.tput colors
consulta la base de datos terminfo. Lo más probable es que tengasTERM=xterm
. Xterm puede admitir al menos 2, 8, 16, 88 o 256 colores según la versión y las opciones de compilación y tiempo de ejecución, pero la base de datos terminfo solo puede almacenar un valor. Puede configurarTERM=xterm+256color
, por ejemplo , pero se molestará cuando inicie sesión en una máquina que no tiene esta entrada en su base de datos termcap / terminfo.printf … >/dev/tty
) y luego leer desde la terminal (read … </dev/tty
). Xterm responde a laOSC 4; …; ? BEL
secuencia inyectando teclas.Hay un script perl, 256colors2.pl , que mostrará todos los colores en su terminal.
fuente
Puedes usar
En mi instalación de Debian, tput es parte del
ncurses-bin
paquete que se instala por defecto.fuente
TERM
, no cuántos colores puede admitir si se le da unTERM