Tengo un lápiz Wacom con un botón. ¿Cómo puedo activar el desplazamiento al mover el lápiz con el botón presionado?
Según xev
, a continuación, los eventos desencadenantes son MotionNotify con el estado 0x200 .
Si esto no se hace de manera trivial, una idea que tengo es crear un servicio para leer estos eventos desde algún lugar y transformarlos en otros eventos. De esta manera, también puedo definir gestos. Con este enfoque:
- ¿Dónde puedo leerlos?
- ¿Cómo puedo escribir eventos de vuelta?
- ¿Hay bibliotecas para detectar gestos?
Evento MotionNotify, serial 33, NO sintético, ventana 0xc00001, raíz 0x2ce, subw 0x0, tiempo 695630659, (349,181), raíz: (1255,185), estado 0x0, is_hint 0, same_screen YES Evento ButtonPress, serial 33, NO sintético, ventana 0xc00001, raíz 0x2ce, subw 0x0, tiempo 695630659, (349,181), raíz: (1255,185), estado 0x0, botón 2, misma_pantalla SÍ Evento MotionNotify, serial 33, NO sintético, ventana 0xc00001, raíz 0x2ce, subw 0x0, tiempo 695630667, (348,183), raíz: (1254,187), estado 0x200, is_hint 0, same_screen YES Evento MotionNotify, serial 33, NO sintético, ventana 0xc00001, raíz 0x2ce, subw 0x0, tiempo 695630675, (347,184), raíz: (1253,188), estado 0x200, is_hint 0, same_screen YES ... Evento MotionNotify, serial 33, NO sintético, ventana 0xc00001, raíz 0x2ce, subw 0x0, tiempo 695632069, (327,486), raíz: (1233,490), estado 0x200, is_hint 0, same_screen YES Evento ButtonRelease, serie 33, NO sintético, ventana 0xc00001, raíz 0x2ce, subw 0x0, tiempo 695632069, (327,486), raíz: (1233,490), estado 0x200, botón 2, misma_pantalla SÍ
Respuestas:
Me encontré con una variante mucho más simple de este problema: traducir las teclas adicionales de mi mouse en combinaciones de teclado / mouse-button, para permitir vincularlas en el administrador de ventanas para mover / cambiar el tamaño de las ventanas. Quizás mi código pueda servirle como punto de partida:
https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c
La esencia de la idea es que captura eventos de entrada del
/dev/input/...
dispositivo de mi mouse , opcionalmente los modifica y los vuelve a escribir/dev/uinput
.fuente