Use o script xtitle
.
Existem muitas variantes na internet, no entanto, costumo usar uma que depende de xprop
Este LDP Howto demonstra como mudar o título de um xterm.
Eu sei que isso também é possível usando o comando xtitle
.
Antes de invocar uma ação de longa duração, meu script usa essas técnicas para alterar o título de sua janela xterm.
Eu gostaria de extrair o nome da janela do xterm antes de alterá-lo para que, quando a ação de longa execução for concluída, eu possa restaurar o título para seu valor anterior.
Seria meio inverso ao xtitle ... Isso é possível?
Use o script xtitle
.
Existem muitas variantes na internet, no entanto, costumo usar uma que depende de xprop
Existe uma sequência de controle para consultar o título atual, mas geralmente é desativada por razões de segurança. Isso porque permite que um programa mal-intencionado ou até mesmo apenas um arquivo de texto inserido insira seqüências de caracteres arbitrárias como se digitado no teclado, primeiro definindo o título e, em seguida, solicitando que ele fosse informado novamente.
Por isso, a pilha de títulos foi introduzida. O comando a seguir salvará os títulos atuais de janelas e ícones na pilha:
echo -ne '\e[22t'
E este vai restaurá-los:
echo -ne '\e[23t'
Para o caso trivial (e provavelmente mais comum), onde se pode querer consultar o prompt do xterm atual, simplesmente use xprop -id $WINDOWID WM_NAME
. Se você quiser extrair o valor para manipulação em um shell script, você pode fazer algo um pouco mais caro, como:
curtitle='xprop -id $WINDOWID WM_NAME|awk '{print $3}'|xargs echo'
Usando o bash sozinho (para evitar a invocação do awk e xargs):
curtitle='xprop -id $WINDOWID WM_NAME'
curtitle='eval echo ${x##*=}'
Os xargs echo no primeiro exemplo e o eval no segundo exemplo está simplesmente lá para remover as aspas que xprop coloca em torno do valor.
Substitua WM_NAME por WM_ICON se você deseja obter o nome do ícone em vez da string na barra de título.
Se eu entendi bem a sua pergunta, você deve conseguir o título atual do xterm inspecionando a variável $PROMPT_COMMAND
, por exemplo:
$ echo $PROMPT_COMMAND
printf "3]0;%s@%s:%sPROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "3]\
0;%s@%s%s$ echo $PROMPT_COMMAND
printf "3]0;%s@%s:%sPROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "3]\
0;%s@%s%s%pre%7" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
7" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
7" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
7" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
e você pode defini-lo como (linebreak para legibilidade):
%pre%Tags xterm