Come si può impostare il titolo di un terminale con il comando 'tput'?


9

Ho scoperto attraverso questa risposta che ho impostato i colori dei terminali nel mio prompt in modo ingenuo per anni.

Ora ho modificato il mio .bashrc per usare i comandi 'tput' per colorare vari elementi del mio prompt. L'unico codice di escape rimasto che ho è questo:

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

Qualcuno sa se esiste un attributo tput / terminfo che posso usare per impostare la barra del titolo della mia finestra del terminale, in modo da poter eliminare quella fuga?

Risposte:


9

Le capacità effettive sono tsl (alla linea di stato) e fsl (dalla linea di stato), ma ovviamente non tutti i terminali hanno quindi. In Linux, in particolare, è necessario impostare il terminale su xterm + sl o qualcosa di simile.

Puoi provarlo con

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

Non mi preoccuperei e terrei quelle fughe in .bashrc


1
Sembra che la mia copia di Ubuntu manchi di quelle informazioni sul terminale. :( Incolpo i file terminfo incompleti :)
David Pashley l'

1
schermo, tuttavia, sembra supportarli bene. Grazie!
Murali Suriar,

3
\033];è la sequenza di escape in xtermper un "Comando del sistema operativo" . Non so come farlo in tput, ma se è possibile farlo tramite tput sarebbe un metodo migliore per l'impostazione del titolo del terminale multipiattaforma. Ad esempio su xterm, risulterebbe nella sequenza \033]0;Title\007. Vedi anche qui
Wyatt8740,

@codehead La tua soluzione è imbarazzante perché se scrivo export TERM=xterm+sl, allora non ho più l'ottimizzazione della sintassi in VIM.
SebMa,

2

Dopo aver esaminato il file terminfo xterm, non riesco a trovare alcun codice identico a questo comando, quindi sospetto che non lo sia.

Se sei interessato, la pagina man di terminfo elenca tutti i comandi che termcap e terminfo comprendono. Ho decompilato il file di database terminfo usando:

# infocmp -L xterm 

2

Non posso commentare, quindi una risposta extra:

Se usi tsl / fsl, assicurati di chiedere prima al terminale hs. hs dovrebbe essere vero se sono supportati tsl / fsl (e altri * sl).

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

1
+1 se hai un riferimento per questo.
l0b0

1

Per ulteriori informazioni sulle funzioni speciali della "modalità vt100" di xterm, consultare il documento Sequenze di controllo Xterm nella sezione Controlli del sistema operativo per tutti i dettagli più importanti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.