我创建了一个pygtk程序来监视任何应用程序(即,不仅针对我的应用程序)的键盘状态和鼠标点击。这使用了Micah Dowty的evdev,它基本上监视/ dev / input / event *的输出并以我可以向用户显示信息的方式对信息进行解码。

该程序完美适用于USB键盘和鼠标,但不适用于USB Wacom(也不适用于串行Wacom),即使以root身份运行也是如此。使用Wacom时,我没有从Wacom的任何/ dev / input / *节点出来的任何事件。这不仅是我的Wacom,而且播客“ Meet the Gimp”中的家伙(Rolf和Philippe)也没有收获。

该代码位于http://code.google.com/p/key-mon

要测试,您可以运行以下命令:

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


例如,当您移动鼠标或单击键盘时,应该看到连接到event0的任何事件都将发生。

最佳答案

这是由于X可以完全控制您的输入设备,因此您无法自己读取事件。您可能有以下2个问题之一:


实际上,“ catchall”正在获取您的设备。
在您的/var/log/Xorg.0.log中,您应该会看到如下一行:

Stantum MTP USB控制器:应用InputClass“ evdev touchscreen catchall”

但是当然是wacom。如果为真,则可以通过编辑/usr/share/X11/xorg.conf.d/10-evdev.conf禁用“触摸屏”全部功能,并删除有关触摸屏的部分。
也许您会适合Wacom部分,所以请编辑/usr/share/X11/xorg.conf.d/50-wacom.conf,然后删除可以匹配您设备的适当部分。


当然,两个问题都不能以一种干净的方式解决,并且您不能同时运行X和Kernel事件。 (我从未与Wacom找到解决方案,如果有人有,请分享!)

关于python - 无法从/dev/input/event *获取Wacom事件*,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1860668/

10-13 07:37