来自4个不同鼠标的输入

3

我需要构建一个简单的应用程序,它只接受来自4个USB鼠标和笔记本电脑内置触摸板的点击输入。我希望在Linux操作系统下运行这个应用程序。

你有什么想法可以帮助我在应用程序中识别哪个鼠标发出了点击信号吗?我可以使用C编程或其他任何方法。这是一个简单的、一次性的项目,所以不需要太复杂。

3个回答

4

就我个人而言,我想我找到了我的问题的答案。

Bobince提到xorg让我查看/etc/X11/xorg.conf。那里充满了像这样的注释:

# commented out by update-manager, HAL is now used

我之前就听说过HAL,不仅仅是在2001中。我尝试使用man -k hal命令,并找到了lshal,它列出了我电脑上的133个HAL设备。在其中一个鼠标的条目中,我发现了以下内容:

linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:0b.0/usb2/2-7/2-7:1.0/input/input6/event6'

结果发现它是文件系统中的一个目录。从那里开始探索,我发现了一个指向/dev/input/mouse3的参考。实际上,我所有的鼠标都在 /dev/input 中!

戴上我的超级用户披风,我能够读取 /dev/input/mouse3:

root@carl-ubuntu:/dev/input# od -t x1 -w6 mouse3
0000000 09 00 00 08 00 00
*

事实证明,左键点击是09 00 00 08 00 00,并且一直如此。

结论:我可以从/dev/input/mouseX读取鼠标点击。在这些文件上执行了chmod a+r之后,我甚至可以从普通用户帐户中读取它们。我需要想出一种方法来阻止4只鼠标在可能喝醉的人手中直接与GUI交互,但这是另一天的问题。


告诉X忽略它们。/dev/input/mice是所有鼠标的聚合设备,... /dev/input/mouse0是您的主要鼠标,因此编辑您的xorg.conf,完成。 - Tim Williscroft
呵呵,要是我能的话就好了!现在的 xorg.conf 中已经没有配置任何鼠标(事实上,任何输入设备)了。但我并不真的为此烦恼——我让我的应用程序覆盖整个屏幕,所以指针在哪里都无所谓。 - Carl Smotricz

3

多点触控和多鼠标在Linux下需要使用MPX,但是您需要使用xorg xserver 1.7才能获得“正确”的版本;通常情况下,这被认为是X11R7.5的一部分,该版本刚刚作为“稳定版”发布,尚未被各个发行版集成。(即使xorg-edgers也没有它,但如果您是Ubuntu的用户,则可以关注该网址。)

GTK+似乎已经进行了一些工作,允许您检测到哪个鼠标点击(GdkEvent.gdk_event_get_device),但我不知道将其纳入完整稳定版本的时间表。Qt4还有多少进展也不清楚。因此,总之,如果您愿意花时间抓取、编译和修复程序,那么它可以正常使用,但与主流Linux并不兼容。


好详细的信息,但它促使我寻求一个更简单的解决方案 :) - Carl Smotricz

2
我不是很确定从哪里开始,但这听起来很像让多点触控起作用。也许可以开始寻找适用于Linux的多点触控驱动程序?此外,luvieere提供的第一个链接可能会有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接