Autor Téma: skript - spuštění programu, vyčkání na pohyb myši, ukončení programu  (Přečteno 2413 krát)

Yullaw

  • Global Moderator
  • Hero Member
  • *****
  • Příspěvků: 726
  • Karma: +50/-0
    • Zobrazit profil
Ahojte,

předem přeji všem krásné a pohodové Vánoce a klidné prožití svátků  :)


Chci se optat na skript, který po spuštění spustí externí program a ihned vyčkává na pohyb myši. Pokud se s myší pohne, skript ukončí/zavře (nejspíše příkazem kill) onen program. Toto chování je známé při automatickém spuštění spořiče obrazovky.

Nač to potřebuji sdělím až po testech s příslušným manuálem  ;)

Za odpovědi děkuji předem...

Mageia 6 (64bit), KDE Plasma 5.8.7, Kernel 4.9.56-desktop-1.mga6
Notebook Acer Aspire E1-571G
CPU:Intel® Core i5-3230M 2.6GHz, GPU:Intel+nVidia Optimus GeForce 710M

Peťoš

  • Administrator
  • Hero Member
  • *****
  • Příspěvků: 916
  • Karma: +16/-1
    • Zobrazit profil
    • Peťošův blog
Cau, videl bych to na neco takoveho:
Kód: [Vybrat]
OLDMOUSEPOSITION=`xdotool getmouselocation | grep window`
while [ "$MOUSEPOSITION" = "$OLDMOUSEPOSITION" ]; do
sleep 1
OLDMOUSEPOSITION="$MOUSEPOSITION"
MOUSEPOSITION=`xdotool getmouselocation | grep window` 2>/dev/null
done

Jen rychly nastrel, nezkousel jsem.



Kód: [Vybrat]
[petos@Lacerta ~]$ xdotool getmouselocation
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 16777270
x:732 y:1079 screen:0 window:16777270
« Poslední změna: Prosinec 28, 2013, 18:01:50 od Peťoš »
Do it or do not. There is no "try".
Nutné čtení pro všehny! Jak se ptát na fóru: http://wiki.mageia.cz/wiki:jak_se_ptat_na_foru


Peťošův repozitář je na adrese: http://petos.cz/rpms
Fotoblog: http://vzducholode.blogspot.com a http://petos.cz/category/fotky

Yullaw

  • Global Moderator
  • Hero Member
  • *****
  • Příspěvků: 726
  • Karma: +50/-0
    • Zobrazit profil
Děkuji... Výsledek by mělo být něco takového - je to jen myšlenka:
Kód: [Vybrat]
#!/bin/bash
chromium-browser ~/Plocha/handclock.swf -kiosk
xdotool ~/Plocha/getmouselocation
kill chromium-browser

Kód: [Vybrat]
[petos@Lacerta ~]$ xdotool getmouselocation
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 27263721
findclient: 16777270
x:732 y:1079 screen:0 window:16777270

můj test:
Kód: [Vybrat]
[yullaw@localhost Plocha]$ xdotool /home/yullaw/Plocha/getmouselocation
xdotool: error: environment variable $MOUSEPOSITION is not set.

Mageia 6 (64bit), KDE Plasma 5.8.7, Kernel 4.9.56-desktop-1.mga6
Notebook Acer Aspire E1-571G
CPU:Intel® Core i5-3230M 2.6GHz, GPU:Intel+nVidia Optimus GeForce 710M

Peťoš

  • Administrator
  • Hero Member
  • *****
  • Příspěvků: 916
  • Karma: +16/-1
    • Zobrazit profil
    • Peťošův blog
Napsal jsem to trochu... lepe a radostneji :)

Kód: [Vybrat]
#!/bin/bash
function waitfnc() {
        eval $(xdotool getmouselocation --shell 2> /dev/null)
        MOUSEPOSITION="$X$Y"
        OLDMOUSEPOSITION=$MOUSEPOSITION
        while [ "$MOUSEPOSITION" = "$OLDMOUSEPOSITION" ]; do
                sleep 1
                OLDMOUSEPOSITION="$MOUSEPOSITION"
                eval $(xdotool getmouselocation --shell 2> /dev/null )
                MOUSEPOSITION="$X$Y"
        done
return
}

chromium-browser ~/Plocha/handclock.swf -kiosk &
LASTPID=$!
waitfnc
kill -9 $LASTPID
return 0

Tohle by uz mohlo fungovat :)
Do it or do not. There is no "try".
Nutné čtení pro všehny! Jak se ptát na fóru: http://wiki.mageia.cz/wiki:jak_se_ptat_na_foru


Peťošův repozitář je na adrese: http://petos.cz/rpms
Fotoblog: http://vzducholode.blogspot.com a http://petos.cz/category/fotky