Para obter o ID da janela no meu programa, o programa define o título como algo único, depois o programa inicia o wmctrl
e analisa sua saída (e não o shell script que iniciou o programa) e, em seguida, reporta na identificação da janela (na maioria das vezes através de um arquivo).
Como o programa não continua até que as janelas estejam abertas, você nunca terá que esperar muito.
Isso, é claro, requer que você possa alterar myprogram
(ou seja, compilar a partir da fonte).