Problem rozwiązałem za pomocą programu
wmctrl i odpowiedniego skryptu.
#!/bin/bash
################
# konfiguracja #
################
# numer pulpitu, na który chcemy przenieść aplikację
# (pierwszy pulpit ma indeks 0!)
desktop=3;
#nazwa aplikacji
app=rainlendar2;
#uruchamiamy rainlendar jako proces w tle
# ( & <- nie czeka na zakończenie procesu, bez tego nie będzie działać)
$app &
pid=`pidof -s $app`;
x=0;
#jesli dlugosc zmiennej x jest mniejsza niz 5
while [ ${#x} -lt 5 ] ; do
# pobiera aktywne okna zawierajace PID
x=`wmctrl -lp | grep $pid`
#czeka sekunde, okno moze jeszcze nie istniec
sleep 1
done
# pobiera ID okien i zapisuje skrypt do wykonania
wmctrl -lp | awk '$3 == "’$pid’" { print "wmctrl -i -r " $1 " -t '$desktop’" }’ > /tmp/execute.sh
# ustawia prawa dostepu do skryptu wykonanego przez awk
chmod +x /tmp/execute.sh
# wykonuje skrypt
sh /tmp/execute.sh
rm -f /tmp/execute.sh
Konfiguracja:
- desktop: numer pulpitu, na który chcemy przenieść aplikację.
- app: nazwa aplikacji do uruchomienia.
Mam nadzieję, że skrypt okaże się pomocny. Sprawdzony na Cinnamonie ale powinien działać również na innych menedżerach okien.
Zapraszam do komentowania!