2014-07-07 64 views
4

我有一臺無頭Debian ARM機器,我正在運行Node。該設備具有使用gpio-keys映射到正常鍵盤事件的硬按鈕。使用NodeJS在Linux上捕獲全局鍵盤事件

我的目標是從硬按鈕以及Node中任何連接的鍵盤捕獲全局事件。我需要一個可以捕獲keydown/keyup事件的解決方案,而不依賴於它運行的終端(它將通過SSH會話運行)。它不一定是跨平臺的,只要它在ARM Debian上運行,我會接受它。

我想象的是直接從任何sysfs屬性讀取的東西,但這不是必需的。

任何人都可以幫助我嗎?我被困了一段時間。

回答

1

其中一個設備文件/dev/input/event*將代表gpio-keys設備。你可以通過多種方式來確定哪一個;一個簡單的方法是查看設備的uevent文件的內容,例如, /sys/class/input/event0/device/uevent。它將包含許多有用的鍵值屬性。

一旦你確定了你想要的設備,你可以打開並從中讀取。它將返回struct input_event s的流,如<linux/input.h>中所定義。這些事件將對應於每個按鈕的按下和釋放。

您可能還想要查看現有解決方案是否存在至少部分問題,如節點鍵盤:https://github.com/Bornholm/node-keyboard