Respostas:
Bem, depois de sudo apt-get install wmctrl
-ing, você pode jogar com este script bash:
#! /bin/bash
WINTITLE="Mail/News" # Main Thunderbird window has this in titlebar
PROGNAME="mozilla-thunderbird" # This is the name of the binary for t-bird
# Use wmctrl to list all windows, count how many contain WINTITLE,
# and test if that count is non-zero:
if [ `wmctrl -l | grep -c "$WINTITLE"` != 0 ]
then
wmctrl -a "$WINTITLE" # If it exists, bring t-bird window to front
else
$PROGNAME & # Otherwise, just launch t-bird
fi
exit 0
Que eu encontrei aqui
if ! wmctrl -l | grep -q "$WINTITLE"
wmctrl
tem uma -i
opção, que suporta trabalhar com a janela com seu identificador hexadecimal. E assim você pode fazer isso wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai
- o que iria fazer algo semelhante
Ao usar xdotool
, parece difícil exibir todas as janelas de um determinado aplicativo ou classe usando apenas um comando. Acabo tendo melhores resultados envolvendo-o em um for
loop no nível do shell. Usando o Bash:
for WINDOW in $(xdotool search --desktop 0 Firefox); do
xdotool windowactivate ${WINDOW}
done
Poucas observações:
xdotool search
procurará o padrão (aqui Firefox
) no nome da janela, classe e nome da classe. Se você quiser restringir o seu espaço de busca, use as relevantes --class
, --name
ou --classname
opções.--desktop 0
opção limita a pesquisa à primeira área de trabalho. Isso parece ser uma solução alternativa para evitar o XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
mencionado em alguns comentários.xdotool
projeto está paralisado desde 2015. Continua sendo minha ferramenta de escolha. Por motivos pessoais, Jordan Sissel (o autor original) não é tão ativo quanto era no passado, portanto, não hesite em contribuir com o projeto.
xdotool windowraise
traz a janela para a frente, mas não dá foco à janela nem muda para a área de trabalho com a janela. em vez disso,windowactivate
fará todos os três.