Tente isto:
wmctrl -l | grep -i thunderbird
Estou tentando escrever um script de shell que reconheça se a janela do Thunderbird é exibida e, se for o caso, ela é descartada na bandeja de mensagens.
Eu gostaria de usá-lo em esta resposta de " Como manter o Thunderbird e o Pidgin sendo executados em segundo plano? "pergunta.
Até agora eu estou usando o "xdotool" para verificar se o Thunderbird é exibido e simular perto como sugerido em " Como emular pressionando o botão Fechar de um script? ".
#!bin/bash
thunderbird &
TB=$(xdotool search --class thunderbird)
while [ -z "$TB" ]; do
sleep 2
TB=$(xdotool search --class thunderbird)
done
xdotool search --class thunderbird windowunmap %@
Mas xdotool search --class thunderbird
retorna o resultado no momento em que o Thunderbird é lançado, antes de ser realmente exibido, portanto, xdotool search --class thunderbird windowunmap %@
espera para não fazer nada.
Para ignorar essa limitação, um sleep xx
é adicionado ao comando real, mas o tempo de espera necessário é adiado de sistema para sistema.
Eu também usei "xwininfo" para verificar se o Thunderbird é exibido, mas ele se comporta da mesma forma que "xdotool", então eu tive que adicionar sleep xx
aqui também.
#!bin/bash
thunderbird &
t="Thunderbird"
stop=0
xwininfo -name $t > /dev/null 2>&1
if [ $? -eq 0 ]; then
stop=1
fi
while [ $stop -eq 0 ]; do
xwininfo -name $t > /dev/null 2>&1
if [ $? -eq 0 ]; then
stop=1
fi
done
sleep 2
xdotool search --class thunderbird windowunmap %@
Existe alguma outra maneira de verificar as janelas "realmente" exibidas?