2011-12-02 22 views
5

Me pregunto cómo ejecutar un script bash en segundo plano que hará algo (es decir, ejecutar un script, o un comando, o lo que sea) cada vez que un usuario haga clic en el mouse. Me gustaría que esto continúe funcionando incluso si la terminal está cerrada. ¿Algunas ideas? ¡Gracias!Detectar clics del mouse en script bash

+0

¿Puedes hacer que tu sistema de ventana siga aceptando entradas desde una ventana cerrada? Estaría muy sorprendido si puedes. Tener un mouse activo supone que hay algún proceso y event-loop en su lugar para aceptar la entrada. Si cierra una ventana, debe confiar en una capa externa de software para continuar el proceso, y eso significa ejecutar un script, su capa externa de software tendrá que conocer el script. Tal vez pueda registrarlo como un evento de clic derecho en el proceso principal (altamente improbable) antes de que se cierre la ventana. Y los scripts bash normalmente no reciben clics del mouse (IMO). Lo siento, pero buena suerte. – shellter

+0

¿Estás hablando de un terminal de caracteres o X? –

+0

Veo dos preguntas diferentes aquí. Para el primero, vea http://stackoverflow.com/questions/5966903/how-to-get-mousemove-and-mouseclick-in-bash, para el segundo, vea la respuesta de Aamir. – ninjalj

Respuesta

4

Si está utilizando X11, puede intentar xdotool para atrapar eventos de ratón

Sería algo así como:

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

xdotool manual

Si desea ejecutar la secuencia de comandos en el fondo se puede usar:

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

Guardar t La secuencia de comandos que se ejecuta incluso cuando la terminal está cerrada, puede intentar nohup.

2

si sólo desea ejecutar comandos bash terminal x de clic del ratón (o evento de la rueda), puede intentar este ejemplo:

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

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

esto es para el evento de la rueda (por clic establece 12 en su lugar)

Cuestiones relacionadas