Вариантов достаточно много, во-первых, разобраться, собственно, на каком она прерывании сидит в том же списке, во-вторых, запоминать координаты мыши (вряд ли кто-то будет нажимать кнопку или крутить колесо без изменения позиции курсора), в-третьих, можно ориентироваться на выключение экрана по бездействию (если выключен, значит мышь не шевелили)... Я достаточно неясно выразился, у меня ситуация проста, т.е. мне больше никого на USB не надо ловить... Поэтому и пример простой.
Вот, кстати, исходник для определения позиции курсора в Х
Код:
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
Display *display;
int screen_number;
unsigned int modbut;
//Window win;
int new_x, new_y,temp;
if ( ( display = XOpenDisplay ( NULL ) ) == NULL ) {
puts ("Can not connect to the X server!\n");
exit ( 1 );
}
screen_number = DefaultScreen ( display );
Window w = XRootWindow( display, screen_number );
Window w1;
XQueryPointer(display, w, &w1, &w1, &new_x, &new_y, &temp, &temp, &modbut);
printf("Mouse button pressed at %i, %i\n", new_x, new_y);
return 0;
}