Невозможно получить события Wacom из / dev / input / event * - PullRequest
0 голосов
/ 07 декабря 2009

Я создал программу pygtk для контроля состояния клавиатуры и щелчков мышью по любому приложению (т.е. не только для моего приложения). При этом используется evdev от Micah Dowty, который в основном отслеживает / dev / input / event * для вывода и декодирует информацию таким образом, чтобы я мог отображать информацию для пользователя.

Программа отлично работает для USB-клавиатур и мышей, но не работает для USB Wacom (или серийного Wacom), даже при работе от имени пользователя root. Я не получаю никаких событий для выхода из какого-либо узла / dev / input / * для Wacom, так как использую его. Это не только мой Wacom, но и они, ребята из подкаста "Знакомство с Гимпом" (Рольф и Филипп), тоже ничего не получают.

Код живет в http://code.google.com/p/key-mon.

Для проверки вы можете запустить что-то вроде:

sudo ./evdev.py /dev/input/event0 

Вы должны видеть события, происходящие для всего, что связано с event0, когда вы перемещаете мышь или нажимаете на клавиатуру, например.

1 Ответ

0 голосов
/ 04 марта 2011

Это связано с тем, что X полностью контролирует ваше устройство ввода, вы не можете прочитать событие самостоятельно. У вас может быть один из этих 2 вопросов:

  1. "Поймать" на самом деле получает ваше устройство. В вашем /var/log/Xorg.0.log вы должны увидеть строку вроде:

    Контроллер Stantum MTP USB: применение InputClass "evdev touchscreen catchall"

    Но для Wacom, конечно. Если это правда, вы можете отключить «сенсорный экран», отредактировав свой /usr/share/X11/xorg.conf.d/10-evdev.conf, и удалить раздел, в котором говорится о сенсорном экране.

  2. Возможно, вы вписываетесь в раздел Wacom, поэтому отредактируйте /usr/share/X11/xorg.conf.d/50-wacom.conf и удалите соответствующий раздел, который может соответствовать вашему устройству.

Конечно, обе проблемы не решены в чистом виде, и вы не можете одновременно работать с событиями X и Kernel. (Я никогда не находил решения с Wacom, если кто-нибудь, пожалуйста, поделитесь!)

...