PROMO:
Chcete otevírat aplikace na určitou plochu a nevíte jak na to, aniž byst se museli upisovat ďáblu (respektive jíst jeho koláč)? Máme pro vás řešení! Využijte dnešní speciální nabídky. Platí jen 24 hodin denně, 7 dní v týdnu a 53-54 týdnů v roce. Proto neváhejte a změňte svůj život právě teď!Takže k věci. Aby to fungovalo, budete potřebovat wmctrl (
sudo aptitude install wmctrl), potom stačí následující skript ulozit do souboru a nastavit spustitelný příznak. Nechcete-li nijak měnit funkčnost, zajímají vás pouze proměné KAM a PROGRAM (popis zdrojak). Po vyplnění můžete používat tento skript na spouštění dané aplikace na určenou plochu.
#!/bin/sh
KAM=2 # na kterou plochu to chci
PROGRAM=gnome-terminal # jmeno aplikace
###############################################################################
POCET_BEZICICH=`wmctrl -l| wc -l`
wmctrl -l | cut -d' ' -f1 > /tmp/wclist1.txt
$PROGRAM &
WIDTH=`xrandr --prop | sed -ne 's/^.*current\ \([0-9]*\).*/\1/p'` ## rozliseni, x-ova souradnice
COMPIZ=`ps x | grep -v grep | grep -c compiz`
while [ $POCET_BEZICICH -eq `wmctrl -l| wc -l` ]; do
sleep 1
done
wmctrl -l | cut -d' ' -f1 > /tmp/wclist2.txt
WIN_ID=`diff /tmp/wclist1.txt /tmp/wclist2.txt | cut -sd' ' -f2`
if [ $COMPIZ -eq 0 ] ; then
wmctrl -ir $WIN_ID -t `expr $KAM - 1`
else
VIEWPORT=`xprop -root | sed -ne '/_NET_DESKTOP_VIEWPORT(CARDINAL)/s/.*= \([0-9]*\),.*/\1/p'` ## na kolikatem pixlu jsme (plochy brany jako souvisly pruh)
wmctrl -ir $WIN_ID -e 0,`expr -$VIEWPORT + \( $KAM - 1 \) \* $WIDTH`,-1,-1,-1
fi
rm /tmp/wclist*
exit 0
Problémy:
-okno se na moment objeví na aktuální ploše, než se přesune na správnou plochu
-otevřete-li(zavřete) nějaké jiné okno, dřív než se otevře aplikace, spouštěná pomocí tohoto skriptu, může se chovat neočekávaně (budete-li spouštět aplikaci s předem známým unikátním titulkem okna, je triviální skript pozměnit a problému předejít)
-nebude to fungovat na apliakce otevírající více oken (např. gimp) (tohle by ale nemusel být problém změnit, za předpokladu, že se otevřou současně)
-hlašte!
Poznámky:
-vyzkoušeno v gnome/kde s compizem i bez
-volbu aplikace a plochy nenastavuju z parametru cmd, protoze predpokladam, ze z bashe se to bude spoustet minimalne, zajemci si zajiste doplni
-jestli myslite, ze to jde nejak jednoduseji/lepe tak se podelte jak na to
-při spouštění ihned po startu bych asi doporučil nastavení nějaké prodlevy (na začátek přidat řádek sleep (počet vteřin) )
Kdo bude prvním aktivním uživatelem? (autor nepoužívá, páč intelignti preferují chaos
)
EDIT: napraven problem se zjistenim horizontalniho rozliseni