Este não é um recurso interno do xterm.
Se você estiver executando um shell interativo nesse terminal, poderá fazê-lo atualizar o título da janela toda vez que exibir um prompt. Com todos os shells populares, as variáveis COLUMNS
e LINES
são atualizadas para refletir as dimensões atuais do terminal. Você pode colocar as seqüências de escape para definir o título da janela como parte do seu prompt (você precisará dizer ao seu shell que a seqüência de escape tem largura zero, caso contrário o shell ficará confuso sobre a posição do cursor), ou você pode Organize para imprimir a string antes de exibir um prompt. No bash, para definir o título da janela para o diretório atual seguido pelo tamanho da janela, você pode usar algo como
set_term_title () {
printf '\[3]2;%s %dx%dset_term_title () {
printf '\[3]2;%s %dx%dtrap set_term_title SIGWINCH
7\]' $PWD $LINES $COLUMNS
}
precmd+=set_term_title
7\]' "$PWD" "$LINES" "$COLUMNS"
}
PROMPT_COMMAND="$PROMPT_COMMAND
set_term_title"
No zsh:
(
title="$(xdotool getwindowname "$windowid")"
eval "$(xdotool getwindowgeometry --shell)"
title="${title% *} ${WIDTH}x${HEIGHT}"
xdotool set_window --name "$title" "$windowid"
)
Se a janela for redimensionada enquanto o shell estiver exibindo um prompt, o shell receberá um sinal SIGWINCH . Adicione um manipulador para esse sinal.
set_term_title () {
printf '\[3]2;%s %dx%dset_term_title () {
printf '\[3]2;%s %dx%dtrap set_term_title SIGWINCH
7\]' $PWD $LINES $COLUMNS
}
precmd+=set_term_title
7\]' "$PWD" "$LINES" "$COLUMNS"
}
PROMPT_COMMAND="$PROMPT_COMMAND
set_term_title"
Se a janela for redimensionada enquanto um comando estiver sendo executado, o título só será atualizado na próxima vez que o shell exibir um prompt. Somente o processo de primeiro plano recebe um sinal nesse caso, portanto, o shell nunca descobre, ele só pode consultar informações atualizadas quando o comando é finalizado ou suspenso e o shell retoma a execução.
Se você quiser que o título seja atualizado independentemente do que está sendo executado no terminal, será necessário conectar algum componente externo. Um gerenciador de janelas chique deve ser capaz de fazer isso - mas a maioria não consegue. No peixe-serra, você pode ajustar rewrite-window-title
para adicionar as dimensões da janela em vez de aplicar uma transformação baseada em expressões regulares.
Você pode usar xdotool
para obter as informações e alterar o título:
(
title="$(xdotool getwindowname "$windowid")"
eval "$(xdotool getwindowgeometry --shell)"
title="${title% *} ${WIDTH}x${HEIGHT}"
xdotool set_window --name "$title" "$windowid"
)
Observe que xdotool getwindowgeometry
retorna dimensões em pixels, não em caracteres. Não sei como reagir a uma janela que está sendo redimensionada sem a colaboração do gerenciador de janelas.