【问题标题】:Unable to get Wacom events from /dev/input/event*无法从 /dev/input/event* 获取 Wacom 事件
【发布时间】:2009-12-07 15:24:18
【问题描述】:

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

该程序非常适用于 USB 键盘和鼠标,但不适用于 USB Wacom(或串行 Wacom),即使以 root 身份运行也是如此。我没有收到任何来自 Wacom 的 /dev/input/* 节点的任何事件,因为它使用它。不仅是我的 Wacom,播客“Meet the Gimp”(Rolf 和 Philippe)中的人也一无所获。

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

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

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

例如,当您移动鼠标或单击键盘时,您应该会看到与 event0 相关联的事件。

【问题讨论】:

  • 会不会是原来的 evdev 代码不是用来捕捉 wacom 设备的?这些不是也直接在 /Dev/ oder /dev/wacom/ 下注册自己的节点吗? (还没有在工作中使用 Linux 来检查它,抱歉)
  • 不,它应该按照 Scott 尝试的方式工作。 wacdump 有效吗?
  • 在 Wacom 中,X 驱动程序可能会抓取输入设备以独占使用(使用 EVIOCGRAB ioctl)。
  • 我也怀疑这一点。当我自己尝试 EVIOCGRAB 时,它失败了。
  • 因为这个程序通常用于一个程序(例如 Gimp 或 Inkscape)的截屏。是否可以从我的键盘监视器程序中运行该程序并通过 pyGTK 以某种方式获取事件?

标签: python linux pygtk wacom


【解决方案1】:

这是由于 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 找到解决方案,如果有人有,请分享!)

【讨论】:

    猜你喜欢
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    相关资源
    最近更新 更多