Uma solução incompleta seria modificar seu prompt $PS1
uma vez dentro de uma tela GNU. Comece modificando o arquivo RC do seu shell (ou seja, ~/.bashrc
). Procure uma declaração case que avalie $TERM
:
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
Adicione o seguinte anterior à captura de todos (ou seja, *)
):
screen)
PS1='\e]0;\u@\h:\w\a\ek\u@\h:\w\e\\u@\h:\w$(__git_ps1 "(%s)")\$ '
;;
Isto irá modificar o seu hardstatus: \e]0;...\a
Isso modificará o título da sua janela: \ek...\e\
O hardstatus não será exibido, a menos que você o tenha configurado para isso. Por exemplo, você pode adicionar o seguinte ao seu .screenrc
:
hardstatus alwayslastline
As opções complexas hardstatus string
continuarão funcionando. Você pode substituir o seu hardstatus armazenado agora dinâmico pela janela atual usando %h
:
hardstatus string '%{= kw}[ %h ] %=%{w}[ %{r}%l%{w} ]%{w}[%{y} %Y-%m-%d %C %A %{w}]%{w}'
Isso definirá a linha de hardstatus para o hardstatus armazenado entre dois colchetes no lado esquerdo da tela e a utilização da CPU para a direita, junto com a data e a hora.
Exemplo:
[ username@host:~ ] [ 0.00 0.01 0.00 ][ 2012-11-27 4:13 PM ]
CAVEATS
-
Isso provavelmente quebrará o deslocamento do seu cursor na recuperação do histórico do seu shell. (Atinge a seta para cima algumas vezes, depois tente editar essa linha. Você verá o que quero dizer.) Isso ocorre porque a maioria dos shells usa o comprimento para
$PS1
, e isso incluirá os caracteres não imprimíveis adicionados ao$PS1
. -
Isso provavelmente quebrará a barra de título do xterm, "congelando-a" até o último conjunto de status antes de executar a tela GNU. O interessante é que aplicativos como o vim que atualizam a barra de título continuarão funcionando.
-
Definir manualmente o título da tela (ou seja,
C-A A
) continuará funcionando até que o prompt de comando seja atualizado.