Rolagem com uma caneta digitalizadora WACOM


15

Eu tenho uma caneta wacom com um botão. Como acionar a rolagem ao mover a caneta com o botão pressionado?

De acordo com xev, abaixo, os eventos de disparo são MotionNotify com o estado 0x200 .

Se isso não for feito trivialmente, uma idéia que tenho é criar um serviço para ler esses eventos de algum lugar e transformá-los em outros eventos. Dessa forma, também posso definir gestos. Com esta abordagem:

  • Onde posso lê-los?
  • Como posso escrever eventos de volta?
  • Existem bibliotecas para detectar gestos?
Evento MotionNotify, serial 33, NO sintético, janela 0xc00001,
    raiz 0x2ce, subw 0x0, tempo 695630659, (349,181), raiz: (1255,185),
    estado 0x0, is_hint 0, same_screen SIM

Evento ButtonPress, série 33, NO sintético, janela 0xc00001,
    raiz 0x2ce, subw 0x0, tempo 695630659, (349,181), raiz: (1255,185),
    estado 0x0, botão 2, same_screen SIM

Evento MotionNotify, serial 33, NO sintético, janela 0xc00001,
    raiz 0x2ce, subw 0x0, tempo 695630667, (348,183), raiz: (1254,187),
    estado 0x200, is_hint 0, same_screen SIM

Evento MotionNotify, serial 33, NO sintético, janela 0xc00001,
    raiz 0x2ce, subw 0x0, tempo 695630675, (347,184), raiz: (1253,188),
    estado 0x200, is_hint 0, same_screen SIM

...

Evento MotionNotify, serial 33, NO sintético, janela 0xc00001,
    raiz 0x2ce, subw 0x0, tempo 695632069, (327,486), raiz: (1233,490),
    estado 0x200, is_hint 0, same_screen SIM

Evento ButtonRelease, serial 33, NO sintético, janela 0xc00001,
    raiz 0x2ce, subw 0x0, tempo 695632069, (327,486), raiz: (1233,490),
    estado 0x200, botão 2, same_screen SIM


Só queria fazer a mesma pergunta. Alguma ideia?
student

O que exatamente você está tentando realizar? Se for apenas para um determinado aplicativo, pode ser mais fácil configurá-lo dessa maneira. Por exemplo, o GIMP permite rolar uma imagem se você pressionar o botão do meio. No Firefox, usei a extensão "Grab and Drag" para fazê-la funcionar de maneira semelhante.
hackerb9

Respostas:


1

Eu me deparei com uma variante muito mais simples desse problema: converter as teclas extras do mouse em combinações de teclado / botão do mouse, para permitir vinculá-las no gerenciador de janelas para mover / redimensionar janelas. Talvez meu código possa servir como ponto de partida:

https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c

A essência da idéia é que ela captura os eventos de entrada do /dev/input/...dispositivo do meu mouse , opcionalmente os modifica e os grava de volta para /dev/uinput.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.