diff options
author | Alexis Hovorka <[email protected]> | 2021-05-16 22:40:33 -0600 |
---|---|---|
committer | Alexis Hovorka <[email protected]> | 2021-05-16 22:40:33 -0600 |
commit | 2297530cb1149752445b586b337e5c8d3b7bb108 (patch) | |
tree | ffed174b8edff46ccdb533aa1b486e6c216695da /README.md | |
parent | e97ee92acc19b30c8e3c044049ea5951d8c45d63 (diff) |
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 84 |
1 files changed, 2 insertions, 82 deletions
@@ -1,83 +1,3 @@ -# node-exclusive-keyboard -Keylogger for NodeJS and Linux that grabs the input device exclusively. +# node-dotkey -Useful for capturing USB input devices that act like keyboards, so that their inputs do no pollute other processes like terminals. - -Based on [node-keylogger](https://github.com/taosx/node-keylogger/) and [node-ioctl](https://github.com/santigimeno/node-ioctl). - -## Installation -```bash -npm install --save exclusive-keyboard -``` - -## Usage - -Set access control right to device for user `username`: -```bash -sudo setfacl -m u:username:r /dev/input/by-id/usb-Logitech_Logitech_USB_Keyboard-event-kbd -``` - -```js -const ExclusiveKeyboard = require('exclusive-keyboard'); - -const keyboard = new ExclusiveKeyboard('by-id/usb-Logitech_Logitech_USB_Keyboard-event-kbd', true); -keyboard.on('keyup', console.log); -keyboard.on('keydown', console.log); -keyboard.on('keypress', console.log); -keyboard.on('close', console.log); -keyboard.on('error', console.error); -``` - -## API - -### `new ExclusiveKeyboard(dev, exclusive)` -* `dev` (string): Device name (part after '/dev/input/'). Example: 'event0' would use '/dev/input/event0' -* `exclusive` (boolean): If true, grab device exclusively using ioctl EVIOCGRAB (default: true) - -### `close()` -Releases the grabbed device and closes the file descriptor. Emits 'close' event when done. - -### ExclusiveKeyboard.Keys -Mapping of key codes to key ids, see `keycodes.js`. - -### Event `keyup(event)` -Example event: -```js -{ - timeS: 39234, - timeMS: 3812, - keyCode: 71, - keyId: 'KEY_KP7', - type: 'keyup', - dev: 'by-id/usb-SEM_Trust_Numpad-event-kbd' -} -``` - -### Event `keypress(event)` -Example event: -```js -{ - timeS: 39234, - timeMS: 3812, - keyCode: 71, - keyId: 'KEY_KP7', - type: 'keypress', - dev: 'by-id/usb-SEM_Trust_Numpad-event-kbd' -} -``` - -### Event `keydown(event)` -```js -{ - timeS: 39234, - timeMS: 3812, - keyCode: 71, - keyId: 'KEY_KP7', - type: 'keydown', - dev: 'by-id/usb-SEM_Trust_Numpad-event-kbd' -} -``` - -### Event `error(error)` - -### Event `close()` +Must not be touching touchpad when starting listener |