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

8

Eu descobri através de esta resposta que eu tenho colocado cores de terminal no meu prompt de maneira ingênua por anos.

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

TITLEBAR="\[3]2; PROD - \u@\h:\w TITLEBAR="\[3]2; PROD - \u@\h:\w %pre%7\]"
7\]"

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

    
por Murali Suriar 11.06.2009 / 13:03

4 respostas

8

Os recursos reais são tsl (para a linha de status) e fsl (da linha de status), mas é claro que nem todos os terminais o fazem. No Linux, em particular, você precisa configurar seu terminal para o 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 fugas em .bashrc

    
por 11.06.2009 / 13:41
2

Tendo olhado no arquivo terminfo xterm, não consigo encontrar nenhum código que seja idêntico a esse comando, então suspeito que não exista.

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

# infocmp -L xterm 
    
por 11.06.2009 / 13:31
2

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

Se você usar tsl / fsl, certifique-se de pedir primeiro ao terminal por hs. hs deve ser verdadeiro se tsl / fsl (e outro * sl) forem suportados.

tput hs && { echo ....; }
    
por 12.06.2009 / 07:51
1

Para mais informações sobre os recursos especiais do "vt100 mode" do xterm, veja as Seqüências de controle do Xterm documento na seção Controles do Sistema Operacional para todos os detalhes sangrentos.

    
por 07.08.2009 / 22:19