来自4只不同老鼠的输入

时间:2009-11-12 17:34:08

标签: linux input hardware mouse

我需要构建一个简单的应用程序,除了笔记本电脑上的内置触摸板外,还连接4个USB鼠标(仅限点按)输入。我首选的操作系统是Linux。

任何想法我怎么能够在一个应用程序中辨别出点击鼠标来自哪个?我对C编程或任何需要的东西都很开放。这是一个简单的一次性项目,所以没有什么太复杂。

3 个答案:

答案 0 :(得分: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直接交互,但这是另一天的问题。

答案 1 :(得分:3)

MPX是Linux下多鼠标和多点触控的地方,但是您需要使用xorg xserver 1.7来获取它的“正确”版本;这通常被视为X11R7.5的一部分,xorg-edgers只是刚出现'稳定'而尚未被发行版整合。 (即使some work没有它,但如果你是Ubuntu的话,那就是你要关注的地方。)

GTK +似乎已经{{3}}允许您检测点击了哪个鼠标(GdkEvent.gdk_event_get_device),但我不知道将其变为完整稳定版本的时间表。我也不知道Qt4到底有多远。所以总的来说情况是:如果你愿意花时间去抓取,编译和修复东西,它就有用了,但是主流Linux还不顺利。

答案 2 :(得分:2)

我不太清楚从哪里开始这个,但对我来说这听起来很像,因为它类似于多点触控工作。也许开始为linux寻找多点触控驱动程序?

此外,luvieere的第一个链接可能会有所帮助。