Saya punya pena wacom dengan sebuah tombol. Bagaimana saya dapat memicu pengguliran saat menggerakkan pena dengan tombol yang ditekan?
Menurut xev
, di bawah, peristiwa yang memicu adalah MotionNotify dengan status 0x200 .
Jika ini tidak dilakukan sepele, ide yang saya miliki adalah membangun layanan untuk membaca peristiwa ini dari suatu tempat dan mengubahnya menjadi acara lain. Dengan cara ini, saya bisa mendefinisikan gerakan, juga. Dengan pendekatan ini:
- Di mana saya bisa membacanya?
- Bagaimana saya bisa menulis kembali acara?
- Apakah ada perpustakaan untuk mendeteksi gerakan?
Peristiwa MotionNotify, serial 33, NO sintetis, jendela 0xc00001, root 0x2ce, subw 0x0, waktu 695630659, (349.181), root: (1255.185), nyatakan 0x0, is_hint 0, same_screen YES Acara ButtonPress, serial 33, NO sintetis, jendela 0xc00001, root 0x2ce, subw 0x0, waktu 695630659, (349.181), root: (1255.185), nyatakan 0x0, tombol 2, same_screen YES Peristiwa MotionNotify, serial 33, NO sintetis, jendela 0xc00001, root 0x2ce, subw 0x0, waktu 695630667, (348.183), root: (1254.187), nyatakan 0x200, is_hint 0, same_screen YES Peristiwa MotionNotify, serial 33, NO sintetis, jendela 0xc00001, root 0x2ce, subw 0x0, waktu 695630675, (347.184), root: (1253.188), nyatakan 0x200, is_hint 0, same_screen YES ... Peristiwa MotionNotify, serial 33, NO sintetis, jendela 0xc00001, root 0x2ce, subw 0x0, waktu 695632069, (327.486), root: (1233.490), nyatakan 0x200, is_hint 0, same_screen YES Acara ButtonRelease, serial 33, NO sintetis, jendela 0xc00001, root 0x2ce, subw 0x0, waktu 695632069, (327.486), root: (1233.490), nyatakan 0x200, tombol 2, same_screen YES
Jawaban:
Saya mengalami varian yang lebih sederhana dari masalah ini: menerjemahkan tombol-tombol tambahan pada mouse saya ke kombinasi keyboard / tombol mouse, untuk memungkinkan mengikat mereka di manajer jendela untuk memindahkan / mengubah ukuran jendela. Mungkin kode saya dapat melayani Anda sebagai titik awal:
https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c
Inti dari idenya adalah bahwa ia menangkap peristiwa input dari
/dev/input/...
perangkat mouse saya , secara opsional memodifikasi mereka, dan menuliskannya kembali/dev/uinput
.sumber