Eu float
meu mouse em xinput
e segui as instruções aqui tentando injetar evento do mouse .
Estou tentando ler eventos do mouse, alterar o código de evento de REL_Y
para REL_WHEEL
e de REL_X
para REL_HWHEEL
e injetar o evento de volta para que eu possa usar o mouse como um 2d roda de rolagem.
Acho que a maioria funcionou porque, quando executo meu programa, vejo event13
ser adicionado a /dev/input
.
E em dmesg
eu obtenho:
input: uinput-sample as /devices/virtual/input/input28
E se eu executar e vtest /dev/input/event13
, obtenho:
[linux-devkit]:/dev/input> sudo evtest event13
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x1234 product 0xfedc version 0x1
Input device name: "uinput-sample"
Supported events:
Event type 0 (EV_SYN)
Event type 2 (EV_REL)
Event code 6 (REL_HWHEEL)
Event code 8 (REL_WHEEL)
Testing ... (interrupt to exit)
Event: time 1457290441.973961, type 2 (EV_REL), code 6 (REL_HWHEEL), value 1
Event: time 1457290441.973961, -------------- SYN_REPORT ------------
Event: time 1457290441.981947, type 2 (EV_REL), code 6 (REL_HWHEEL), value 4
Event: time 1457290441.981947, -------------- SYN_REPORT ------------
Event: time 1457290441.989947, type 2 (EV_REL), code 6 (REL_HWHEEL), value 12
Event: time 1457290441.989947, type 2 (EV_REL), code 8 (REL_WHEEL), value 3
Event: time 1457290441.989947, -------------- SYN_REPORT ------------
Event: time 1457290441.997981, type 2 (EV_REL), code 6 (REL_HWHEEL), value 15
Event: time 1457290441.997981, type 2 (EV_REL), code 8 (REL_WHEEL), value 5
Event: time 1457290441.997981, -------------- SYN_REPORT ------------
Event: time 1457290442.005927, type 2 (EV_REL), code 6 (REL_HWHEEL), value 18
Event: time 1457290442.005927, type 2 (EV_REL), code 8 (REL_WHEEL), value 5
Event: time 1457290442.005927, -------------- SYN_REPORT ------------
Event: time 1457290442.013904, type 2 (EV_REL), code 6 (REL_HWHEEL), value 23
Event: time 1457290442.013904, type 2 (EV_REL), code 8 (REL_WHEEL), value 9
Event: time 1457290442.013904, -------------- SYN_REPORT ------------
Mas se eu executar xinput list
, não vi o dispositivo de entrada virtual. E o Ubuntu também não está respondendo ao evento.
O que eu senti falta?
Preciso criar um dispositivo escravo para ele e anexá-lo em xinput
?