tela Gnu, como atualizar dinamicamente o título de uma janela?

6

Estou tentando melhorar o aspecto do GNU Screen usando o arquivo screenrc, ajustei as cores, a linha de status, a legenda e a lista das janelas carregadas.

A única coisa que não consigo alcançar é obter a legenda com o comando atual executado, como na imagem abaixo, anote a legenda vim no painel direito:

Oqueeutenhoatualmenteé isso , e o que eu gostaria de obter é ter legendas (e, se possível, também hardstatus line) com |0 less| 1 man em vez do atual |0 bash| 1 bash .

Como posso fazer isso?

Atualização: Até agora, a única solução de trabalho que encontrei está em esta postagem , mas não imprime o que eu preciso ...

No entanto, esse é o único título dinâmico funcional que encontrei até agora.

PROMPT_COMMAND='echo -ne "3k343k${HOSTNAME}['basename ${PWD}']34"''

em .bashrc e shelltitle '] |bash' em .screenrc. O título é atualizado com o nome do host e o nome da base do diretório de trabalho, mas o prompt está completamente errado (também possui um espaço à esquerda):

134134fabio@host10:~$
    
por Fabio 11.02.2011 / 00:21

2 respostas

7

Em seu arquivo .bashrc , defina seu PROMPT_COMMAND assim:

UPDATE :

case "$TERM" in
    screen*) PROMPT_COMMAND='echo -ne "3k334"'
esac

UPDATE : parece ser um bug com o eco embutido no bash. A solução deve ser o uso de /bin/echo ou 34 . Experimente:

$ echo -e "4 = 34"
4 = \
$ /bin/echo -e "4 = 34"
\ = \

Esta é a sequência de escape que a tela precisa para identificar qual comando está sendo executado e substituir o título da sua janela atual.

Em seguida, no seu arquivo .screenrc , verifique se as seguintes linhas existem:

shelltitle '> |something:'
hardstatus alwayslastline

O padrão search|name diz a tela para search your end-of-prompt para alguma string (nesse caso, '> ' ). A parte do nome, especifica o nome do shell padrão para a janela. Então, quando você não tem nada além do shell rodando, você verá algo como:

$ something:

Mas quando você topa:

$ something:top
    
por 11.02.2011 / 06:37
2

Como alternativa, você pode usar tmux em vez de screen . Tmux irá definir automaticamente o título da janela atual.

    
por 20.08.2012 / 21:04

Tags