首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X11识别事件源设备

X11识别事件源设备
EN

Ask Ubuntu用户
提问于 2019-04-03 13:57:49
回答 1查看 657关注 0票数 2

我有一个具体的问题-我想识别输入事件的源设备在我的程序。让我们假设,我有两个相同的触摸屏连接到usb端口。我的程序正在抓取XButtonPressedEventXButtonReleaseEvent等,但是我希望在由第一个设备生成的事件和由第二个设备生成的事件之间表现不同。我希望将任何事件字段与设备描述符、设备xinput id、设备系统id或任何其他标识设备的字段匹配。

有可能实现吗?

如果是这样的话,我很感激你对如何做这件事的暗示。

向你问好,皮格!

EN

回答 1

Ask Ubuntu用户

发布于 2019-04-09 09:55:32

似乎旧的XInput扩展不支持这一点。您需要使用XInput2,它报告每个按钮的设备id。最初的作者在他的博客上发布了一个系列文章,解释了一些重要的方面(part1part2part3),还有一些完整的代码示例是可用的这里。由于xinput命令行实用程序支持这两个扩展,所以您可以查看它的源代码,特别是测试_xi2.c,以了解如何使用XInput2。

xinput_calibrator使用旧的XInput版本(参见这里)。虽然您可以尝试并行使用XInput2,YMMV,因为在这里描述的两个版本的互操作性方面有一定的限制。

然而,由于众所周知xinput_calibrator做的是转换矩阵的计算不佳,所以有人编写了一个小的python3脚本(xcal)来校准触摸屏。它比xinput_calibrator简单得多,因此更容易适应您的需求。另外,python3-xlib库(在ubuntu的存储库中可用)默认使用XInput2 (如果可用的话),因此每个按钮按下事件都将包含源设备id。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1130940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档