xtoolwait
é um utilitário que inicia um aplicativo X e aguarda até que ele tenha mapeado sua janela. Em seguida, ele retorna o controle para a sessão original do shell.
Geralmente é usado a partir do arquivo .xinitrc
ou .xsession
.
Você pode usá-lo no seu script da seguinte forma:
xtoolwait st -n dropdown
pid=$(xdotool search --classname dropdown)
O segundo comando não iniciará a execução até que xtoolwait
detecte que st
mapeou sua janela. Observe a falta de &
na primeira linha (não é necessário). Isso pode oferecer um atraso suficiente para o segundo comando encontrar o PID corretamente.