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.
- Em vez de usar o título, use o ID numérico da janela por meio do
-i
comando. - Use a string
:ACTIVE:
para usar a janela ativa
Responder1
Use o xttitle
programa do xttitle
pacote. 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 cd
builtin e uso xttitle
para 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
}