2011-12-02 15 views
5

Zastanawiam się, jak uruchomić skrypt bash w tle, który zrobi coś (tj. Uruchomi skrypt, polecenie lub cokolwiek) za każdym razem, gdy użytkownik kliknie myszą. Chciałbym, żeby to działało, nawet jeśli terminal jest zamknięty. Jakieś pomysły? Dzięki!Wykrywanie kliknięcia myszą w skrypcie bash

+0

czy system okien może nadal przyjmować dane wejściowe z zamkniętego okna? Byłbym bardzo zaskoczony, jeśli możesz. Posiadanie aktywnej myszy zakłada, że ​​istnieje pewien proces i pętla zdarzeń, która akceptuje dane wejściowe. Jeśli zamkniesz okno, musisz polegać na zewnętrznej warstwie oprogramowania, aby kontynuować przetwarzanie, a to oznacza uruchomienie skryptu, twoja zewnętrzna warstwa oprogramowania będzie musiała wiedzieć o skrypcie. Być może możesz zarejestrować to jako zdarzenie uruchamiane prawym przyciskiem myszy w procesie nadrzędnym (wysoce nieprawdopodobne) przed zamknięciem okna. Skrypty bash zwykle nie wymagają kliknięć myszą (IMO). Przepraszam, ale powodzenia. – shellter

+0

mówisz o terminalu znaków lub X? –

+0

Widzę tu dwa różne pytania. Po pierwsze zobacz http://stackoverflow.com/questions/5966903/how-to-get-mousemove-and-mouseclick-in-bash, po drugie, zobacz odpowiedź Aamira. – ninjalj

Odpowiedz

4

Jeśli używasz X11, można spróbować xdotool złapać zdarzeń myszy

To byłoby coś jak:

xdotool search --onlyvisible . behave %@ mouse-click getmouselocation 

xdotool manual

Jeśli chcesz uruchomić skrypt w tle ty można użyć:

./myscript.sh &>/dev/null & 
0

Aby zachować t uruchamia skrypt, nawet gdy terminal jest zamknięty, możesz spróbować nohup.

2

jeśli chcesz po prostu uruchomić polecenie bash w xterm na kliknięcie myszy (lub zdarzenia koła) można spróbować poniższym przykładzie:

$ echo -e "\e[?1000h"

$ while read -n 6; do echo hellowworld; done

to na razie koła (za kliknięcie zamiast tego ustaw 12)

Powiązane problemy