将USB键盘专门绑定到特定的应用程序

我拥有的:

  • Linux机器(debian稳定)没有显示器,键盘,没有X运行
  • 充当USB键盘的USB设备(如许多条码阅读器[1])

我(不)要的是:

  • 我只想为一个特定的应用程序使用此设备。
  • 我不想让这个设备干扰,例如引导后的login过程或其他任何东西 – 除了一个应用程序。
  • 无论如何,我希望能够插入一个简单的旧USB键盘使用它 – 独立于上面提到的其他USB设备可以连接或不连接。

我(不)知道:

  • 我发现了一些示例代码,关于如何直接从事件设备中读取,如果需要,可以在我的应用程序中使用它。
  • 我不知道,除了这个特定的应用程序,如何禁用整个系统的特定键盘? 这甚至有可能吗?

感谢任何提示…!

[1]当设备读取条形码时,它会将检测到的代码作为单键按下并返回

    一个充满挑战和有趣的问题

    我认为udev可能会做到这一点。 创build一个文件/etc/udev/rules.d/99-barcode-reader.rules并把类似这样的东西:

     ACTIONS!="add", GOTO="barcode_end" SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="dead", ATTRS{idProduct}=="beef", PROGRAM="/bin/sh -c 'logger -p user.info Hey, I see a new device $env{BUSNUM} $env{DEVNUM}'", RUN+="/bin/sh -c '/usr/local/bin/your_barcode_application &'" LABEL="barcode_end" 

    将“dead”和“beef”replace为您使用lsusb获取idVendor和idProduct的值。

    重新启动udevd或只是你的服务器,看看会发生什么。