1

I want the system to listen for a button press and then a mouse Right/left/up/down movement. I know which button is pressed by XEV, but I don’t know how to listen for mouse movements and then execute something. Does anyone know how can I do it?

1

Considering that you're using Xorg as the default X Window server you can accomplish it installing cnee. A simple bash script that can read the actions of left-clicking the mouse would be:

#!/bin/bash

mousedownFunction () {
   echo "mouse down event"
}

mouseupFunction () {
   echo "mouse up event"
}

cnee --record --mouse |
   while read line; do
      if [ ! -z "$(echo "$line" | awk  '/7,4,0,0,1/')"  ]; then
         mousedownFunction
      elif [ ! -z "$(echo "$line" | awk  '/7,5,0,0,1/')" ]; then
         mouseupFunction
      fi  
   done

The result is:

enter image description here


OBS: When you run the command cnee --record --mouse on a terminal window you'll see that it categorizes each mouse action with a specific number. On the script's example 7,4,0,0,1 represents left-click mousedown and 7,5,0,0,1 represents left-click mouseup. But you can capture other actions as well, as middle click, right click, mouse up/down scrolls and mouse movements. You just need to adapt the script to suit your needs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.