Como se pode definir o título de um terminal com o comando 'tput'?

9

Descobri através desta resposta que venho definindo cores terminais no meu prompt de maneira ingênua há anos.

Agora modifiquei meu .bashrc para usar os comandos 'tput' para colorir vários elementos do meu prompt. O único código de escape restante que tenho é o seguinte:

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

Alguém sabe se existe um atributo tput / terminfo que eu possa usar para definir a barra de título da minha janela do terminal, para que eu possa eliminar essa fuga?

Murali Suriar
fonte

Respostas:

9

Os recursos reais são tsl (To Status Line) e fsl (From Status Line), mas é claro que nem todos os terminais o possuem. No Linux em particular, você precisa configurar seu terminal para xterm + sl ou algo semelhante.

Você pode testar isso com

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

Eu não me incomodaria e manteria essas escapadas em .bashrc

codehead
fonte
11
Parece que minha cópia do Ubuntu não possui essa informação do terminal. :( Eu culpo incompleta terminfo arquivos :)
David Pashley
11
tela, no entanto, aparece para apoiá-los muito bem. Obrigado!
Murali Suriar #
3
\033];é a sequência de escape xtermpara um "Comando do sistema operacional" . Não sei como fazer isso em tput, mas se for possível fazer por tput, esse seria um método melhor para a configuração de título de terminal de plataforma cruzada. Por exemplo, no xterm, isso resultaria na sequência \033]0;Title\007. Veja também aqui
Wyatt8740 23/03
@codehead Sua solução é embaraçosa porque, se eu digitar export TERM=xterm+sl, não haverá mais sintaxe destacada no vim.
SebMa
2

Tendo examinado o arquivo terminter xterm, não consigo encontrar nenhum código idêntico a este comando, então suspeito que não exista.

Se você estiver interessado, a página do manual terminfo lista todos os comandos que termcap e terminfo entendem. Descompilei o arquivo de banco de dados terminfo usando:

# infocmp -L xterm 
David Pashley
fonte
2

Não posso comentar, portanto, uma resposta extra:

Se você usar tsl / fsl, não deixe de pedir o terminal primeiro. hs deve ser verdadeiro se tsl / fsl (e outros * sl) forem suportados.

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

fonte
11
+1 se você tiver uma referência para isso.
L0b0 21/03/12
1

Para obter mais informações sobre os recursos especiais do "modo vt100" da xterm, consulte o documento Sequências de controle do Xterm na seção Controles do sistema operacional para obter todos os detalhes sangrentos.

Randall
fonte