Como altero os títulos das janelas (usados ​​pelo wmctrl)

Como altero os títulos das janelas (usados ​​pelo wmctrl)

estou usandowmctrlpara mover aplicativos depois de iniciá-los, de forma que não precise fazer isso manualmente para, por exemplo, vários editores de texto e navegadores da web e visualizadores e terminais de PDF. Estou emitindo o seguinte comando wmctrl para mover aplicativos

wmctrl -r <title> -e <x>,<y>,0,-1,-1

onde < x > e < y > são as coordenadas de destino horizontais e verticais e < title > é o nome do aplicativo retornado por wmctrl -l. Se eu iniciar duas cópias do Google Chrome por meio dos comandos abaixo,

google-chrome &
google-chrome &

então emita o comando

wmctrl -l 

os nomes das janelas retornados são

0x03c06fd9  0 main New Tab - Google Chrome
0x03c0703d  0 main New Tab - Google Chrome

agora, se eu tentar mover um deles para uma coordenada arbitrária, digamos 100.100, com o seguinte comando

wmctrl -r "Google Chrome" -e 100,100,0,-1,-1

Ele irá, se você ainda não adivinhou, mover ESTA janela do Google Chrome que estou digitando no momento, pois a abri antes das outras duas.

Existe alguma maneira de atribuir esses títulos de janela ao iniciar a partir da linha de comando ou redefini-los mais tarde. Eu preciso mudar os nomes para algo como

Google Chrome 1
Google Chrome 2
Google Chrome 3

Observe que conheço duas maneiras de contornar isso, no entanto, não gosto de nenhuma delas, pois podem causar problemas se o sistema operacional iniciar um programa em segundo plano.

  1. Em vez de usar o título, use o ID numérico da janela por meio do -icomando.
  2. Use a string :ACTIVE:para usar a janela ativa

Responder1

Use o xttitleprograma do xttitlepacote. Observe os DOIS "t"s em xttitle. Bem, na verdade, existem 3 "t"s... mas só tive problemas ao digitar errado os dois primeiros.

Aqui está um exemplo do meu ~/.bashrc, no qual eu substituo o cdbuiltin e uso xttitlepara colocar o diretório atual no título da minha janela:

# from the "xttitle(1)" man page - put info in window title
update_title()
{
    [[ $TERM = xterm ]] || [[ $TERM = xterm-color ]]  && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
}

cd()
{
    [[ -z "$*" ]] && builtin cd $HOME
    [[ -n "$*" ]] && builtin cd "$*"
    update_title
}

informação relacionada