Einige Programme unter Ubuntu speichern die letzte Fensterposition nicht. Dazu gehört z.B. Mozilla Thunderbird. Dieses Verhalten hat mich seit Jahren schon gestört… nach jedem Start/Reboot immer wieder Thunderbird auf den 2. Monitor (an eine bestimmte Stelle) verschieben. Nach ein paar Minuten bin ich auf das Programm “wmctrl” gestoßen. Hiermit ist es möglich geöffnete Fenster über die Konsole (per Befehl) zu verschieben, minimieren, maximieren usw. Also habe ich ein kleines Startscript geschrieben. Das Script startet Thunderbird und verschiebt es direkt an eine bestimmte Stelle.
#!/bin/bash
sleep 5
thunderbird &
while [ $(wmctrl -l|grep 'Thunderbird'|wc -l) -eq 0 ]
do
sleep 1
done
wmctrl -r Thunderbird -e 0,325,308,-1,-1 &
Nach dem Thunderbird gestartet wurde, wird per “wmctrl -l | grep ‘Thunderbird’” (-l = list) überprüft ob Thunderbird schon gestartet wurde und in der Fensterliste von wmctrl auftaucht. Mit “wc -l” kann z.B. die Zeilenanzahl aus einer Datei ermittelt werden. Wenn also Thunderbird erfolgreich gestartet wurde, wird eine “1” von wc zurückgegeben. Dies wird in der while-Schleife überprüft. Solange Thunderbird noch nicht geöffnet ist, warte eine Sekunde (sleep 1). Danach wird per “wmctrl -r Window” das Fenster an eine bestimmte Position verschoben (“-e <gravity><x><y><width><height>”) Um die Fenstergröße nicht zu verändern, was Thunderbird komischerweise speichert, werden die Argumente <width> und <height> beide auf -1 gesetzt.
Idee für die while-Schleife von http://www.technologische-hilfe.de/antworten/warten-bis-programm-gestartet-ist-und-dann-befehl-ausfuhren-support-239063142.html