Bonjour,
Le nom Thunderbird dans le titre de sa fenêtre est écrit avec une majuscule. Avec une minuscule comme tu as mis, wmctrl ne le trouvera pas.
Ensuite les sleep 10 après le premier sont inutiles.
Voilà pour adapter la boucle :
while [ "$(wmctrl -l | grep "Thunderbird" | awk '{print $10}')" != "Thunderbird" ];do
sleep 1
done
Si, avec Thunderbird ouvert, tu lances dans un terminal la commande :
wmctrl -l | grep "Thunderbird"
En retour tu obtiendras une série de valeurs qui commence par l'identifiant de la fenêtre Thunderbird et des renseignements sur son nom complet.
Le terme Thunderbird est en dixième position, c'est lui que va sélectionner awk '{print $10}'.
Et donc le script :
#!/bin/bash
#On lance les applications en tâche de fond pour garder la main pour la suite
libreoffice /home/ton_compte/aa.odt & thunderbird &
#On attend que la fenêtre s'ouvre
while [ "$(wmctrl -l | grep "aa.odt" | awk '{print $4}')" != "aa.odt" ];do
sleep 1
done
while [ "$(wmctrl -l | grep "Thunderbird" | awk '{print $10}')" != "Thunderbird" ];do
sleep 1
done
#Comme on ne sait pas dans quel état se trouvent les fenêtres, on commence par les réduire pour avoir la main.
wmctrl -r "Writer" -b remove,maximized_vert,maximized_horz
wmctrl -r "Thunderbird" -b remove,maximized_vert,maximized_horz
#Puis on la place à l'endroit désiré.
wmctrl -r "Writer" -e 0,500,0,600,300
wmctrl -r "Thunderbird" -e 0,0,0,400,600
#Et on s'en va sans bruit :)
exit 0
Il faudrait encore optimiser en plaçant les deux attentes en parallèle et non l'une après l'autre.
En tout cas, c'est ce que j'ai compris alors que je commence juste à m'amuser avec des scripts bash. Tous ceux qui peuvent améliorer sont les bienvenus.