gpt4 book ai didi

python - unix 上的重复设备输入事件 (/dev/input/event)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:59 35 4
gpt4 key购买 nike

我使用的是 linux/ubuntu,我想玩一下我的触摸板。我正在尝试使用 python-evdev 从/dev/input/events 读取事件,现在只是打印它们:

import evdev
dev = evdev.InputDevice('/dev/input/event6')

import time
while True:
try:
for event in dev.read():
print event
except:
print " ~ "
time.sleep(.5)

如果我在虚拟控制台中以 root 权限运行该脚本(在 X 之外,按 ctrl+alt+F1),该脚本会在我触摸触摸板时打印事件。但是,如果 X 在屏幕上并且我在 gnome 终端控制台中运行它,则不会打印任何内容;我以某种方式猜想这是正常的,输入被 X 截获了。但我还是想得到它们。有没有办法复制来自/dev/input/event6 的任何内容,以便 X 和我的脚本都可以读取所有事件?

最佳答案

抱歉,这里的答案有点晚了。

直到版本 1.8,xorg synaptics 驱动程序使用 EVIOCGRAB ioctl 来防止将事件传递给其他客户端。现在默认情况下禁用它,对于旧版本,您仍然可以使用 GrabEventDevice 选项在您的机器上禁用它(请参阅 man synaptics)。

简而言之,您的脚本没有问题,问题出在突触驱动程序上。您会发现您的脚本在其他设备上也能正常工作(尽管 xorg wacom 驱动程序直到最近也抓取了该设备)。

突触中的上游提交: http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=f1948e08ee9894864254a18098e4f4fceb6e322f

关于python - unix 上的重复设备输入事件 (/dev/input/event),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19151773/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com