¿Cómo se puede establecer el título de una terminal con el comando 'tput'?

9

Descubrí a través de esta respuesta que he estado configurando colores terminales en mi indicador de una manera ingenua durante años.

Ahora he modificado mi .bashrc para usar los comandos 'tput' para colorear varios elementos de mi solicitud. El código de escape restante que tengo es este:

TITLEBAR="\[\033]2; PROD - \u@\h:\w \007\]"

¿Alguien sabe si hay un atributo tput / terminfo que pueda usar para establecer la barra de título de mi ventana de terminal, de modo que pueda eliminar ese escape?

Murali Suriar
fuente

Respuestas:

9

Las capacidades reales son tsl (a la línea de estado) y fsl (a partir de la línea de estado), pero, por supuesto, no todos los terminales tienen entonces. En Linux en particular, debe configurar su terminal en xterm + sl o algo similar.

Puedes probar esto con

export TERM=xterm+sl
echo `tput tsl` Hello world `tput fsl`; sleep 10

No me molestaría y mantendría esos escapes en .bashrc

cabeza de código
fuente
1
Parece que mi copia de Ubuntu carece de esa información de terminal. :( Culpo a los archivos terminfo incompletos :)
David Pashley
1
pantalla, sin embargo, parece apoyarlos bien. ¡Gracias!
Murali Suriar
3
\033];es la secuencia de escape xtermpara un "Comando del sistema operativo" . No sé cómo hacer eso en tput, pero si es posible hacerlo a través de tput, ese sería un mejor método para la configuración del título del terminal multiplataforma. Por ejemplo, en xterm, resultaría en la secuencia \033]0;Title\007. Ver también aquí
Wyatt8740
@codehead Su solución es vergonzosa porque si escribo export TERM=xterm+sl, ya no tengo la sintaxis en vim.
SebMa
2

Después de mirar el archivo xterm terminfo, no puedo encontrar ningún código que sea idéntico a este comando, por lo que sospecho que no lo hay.

Si está interesado, la página de manual de terminfo enumera todos los comandos que termincap y terminfo entienden. Descompilé el archivo de base de datos terminfo usando:

# infocmp -L xterm 
David Pashley
fuente
2

No puedo comentar, por lo tanto, una respuesta adicional:

Si usa tsl / fsl, asegúrese de preguntar hs al terminal primero. hs debería ser verdadero si se admiten tsl / fsl (y otros * sl).

tput hs && { echo ....; }

fuente
1
+1 si tienes una referencia para esto.
l0b0
1

Para obtener más información sobre las características especiales del "modo vt100" de xterm, consulte el documento Secuencias de control de Xterm en la sección Controles del sistema operativo para conocer todos los detalles sangrientos.

Randall
fuente