Short version of what I want to accomplish:我有一个脚踏板(INFINITY-IN-USB-1,如果有兴趣的话),它是作为一个通用的HID设备实现的,我希望它在Linux上可以作为Ctrl和Alt键.我在寻找X级别的东西,也就是说,不仅仅是单个程序.
Longer version:我在Windows XP中通过调用DLL函数RegisterRawInputDevices和GetRawInputData,并在一个隐藏窗口中监听输入,实现了这个设置.所有这些都是通过一个相当简单的AutoHotkey脚本完成的(如果有人感兴趣,我可以在这里发布).关键是,不需要额外的司机等等.;只需要本机Windows DLL文件.
我希望这个设置可以在Linux上运行(更具体地说,是在Ubuntu下的GNOME,但我偶尔也会使用其他发行版/窗口管理器,因此我们非常欣赏X级别的解决方案).该脚踏板本身不注册为键盘或操纵杆,而是注册为HID设备,用途第12页,用法3.
我注意到最新的Ubuntu可以检测并使用Microsoft Natural Keyboard上最喜欢的按键,这也注册为HID设备*.我在Windows上使用这些键的方法与使用脚踏板的方法相同(即,不使用Bundle 软件).所以我假设这个踏板也可以在Linux上工作,但问题是如何工作?
(我对Linux上较低级别的东西还不熟悉,所以请随时提供介绍或教程的链接.)
*对于不知情的用户,Microsoft Natural键盘注册为常规键盘和通用HID设备.如果某些应用程序(例如Bundle 应用程序)不知道如何解释HID输入,常规键就可以工作,但常用键和特殊功能键是无用的
为了澄清这一点,Linux将脚踏板视为输入.它确实能识别USB设备,但xev不会为踏板按压提供任何输出.我曾看到有报道称,有人成功地将Wine以下的踏板用于转录软件,但这必须以Windows方式工作,不能满足我的要求(这使得踏板看起来像是所有本机Linux应用程序的键盘).是否需要一些低级Linux键盘驱动程序?
这里有更多信息:如果我在终端发布
cat /dev/usb/hiddev0
(dev/usb/hiddev0
是我的踏板),我得到对应于我的踏板压力的原始代码.这是一个开始.我知道这些原始代码是什么意思:在二进制中,0001、0010、0dev/usb/hiddev0
分别对应于每个踏板,踏板按压的组合发送这些二进制数的组合,并释放踏板触发输入(如果所有踏板都向上,则发送0000).
我怎样才能让X听dev/usb/hiddev0
并将原始代码翻译成一个特殊的键码,这样我就可以用xmodmap或其他东西来映射它们?