Mam pióro Wacom z przyciskiem. Jak mogę uruchomić przewijanie podczas przesuwania pióra przy wciśniętym przycisku?
Zgodnie z xev
poniższym zdarzeniami wyzwalającymi są MotionNotify ze stanem 0x200 .
Jeśli nie zostanie to zrobione w sposób trywialny, moim pomysłem jest zbudowanie usługi do czytania tych wydarzeń i przekształcania ich w inne zdarzenia. W ten sposób mogę również definiować gesty. Dzięki takiemu podejściu:
- Gdzie mogę je przeczytać?
- Jak mogę zapisać wydarzenia z powrotem?
- Czy są biblioteki do wykrywania gestów?
Zdarzenie MotionNotify, numer seryjny 33, syntetyczny NO, okno 0xc00001, root 0x2ce, subw 0x0, czas 695630659, (349,181), root: (1255,185), stan 0x0, wskazówka 0, ten sam ekran TAK Zdarzenie ButtonPress, numer seryjny 33, syntetyczny NO, okno 0xc00001, root 0x2ce, subw 0x0, czas 695630659, (349,181), root: (1255,185), stan 0x0, przycisk 2, ekran same_ TAK Zdarzenie MotionNotify, numer seryjny 33, syntetyczny NO, okno 0xc00001, root 0x2ce, subw 0x0, czas 695630667, (348,183), root: (1254,187), stan 0x200, is_hint 0, same_screen TAK Zdarzenie MotionNotify, numer seryjny 33, syntetyczny NO, okno 0xc00001, root 0x2ce, subw 0x0, czas 695630675, (347,184), root: (1253,188), stan 0x200, is_hint 0, same_screen TAK ... Zdarzenie MotionNotify, numer seryjny 33, syntetyczny NO, okno 0xc00001, root 0x2ce, subw 0x0, czas 695632069, (327,486), root: (1233,490), stan 0x200, is_hint 0, same_screen TAK Zdarzenie ButtonRelease, numer seryjny 33, syntetyczny NO, okno 0xc00001, root 0x2ce, subw 0x0, czas 695632069, (327,486), root: (1233,490), stan 0x200, przycisk 2, sam ekran TAK
Odpowiedzi:
Natknąłem się na znacznie prostszy wariant tego problemu: przetłumaczenie dodatkowych klawiszy myszy na kombinacje klawiatury / myszy i przycisków, aby umożliwić powiązanie ich w menedżerze okien w celu przeniesienia / zmiany rozmiaru okien. Być może mój kod może służyć jako punkt wyjścia:
https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c
Istotą tego pomysłu jest to, że przechwytuje zdarzenia wejściowe z
/dev/input/...
urządzenia mojej myszy , opcjonalnie je modyfikuje i zapisuje z powrotem/dev/uinput
.źródło