This repo has been rode hard and put away wet.
Most recent changes have been made to build for Windows x64, but this has likely broken builds for Mac and Linux. This is because I had to change the setup-node version to v18, and node-gyp to v9. This required downgrading python which was done by switching runs-on to windows-2019.
Also note that there's likely a way to get Mac-arm64 but it would require using a larger macos for runs-on.
So! To fix this, make the matrix in ci.yml have macos-xlarge, macos-latest, windows-2019, ubuntu-latest.
Another option is to downgrade python manually and build using node 18 and node-gyp 9.
Node.js global native keyboard and mouse listener.
This module can handle keyboard and mouse events via native hooks inside and outside your JavaScript/TypeScript application.
Found a bug? Have an idea? Feel free to post an issue or submit a PR.
Check out the documentation.
- Versions >= 0.6.0 support only officially supported platforms versions.
- Versions 0.5.X are the last to support Electron < 4.0.0
- Versions 0.4.X are the last to support for Node < 8.0 and Electron < 2.0.0
iohook provides prebuilt version for a bunch of OSes and platforms.
# On Linux (including WSL) platform, you will need libxkbcommon-x11 installed
sudo apt-get install -y libxkbcommon-x11-0
npm install iohook --save # or yarn add iohook
Q. Does this module require Java ?
A. No, this module doesn't require Java (like jnativehook) or any other runtimes.
Q. Is iohook compatible with Node/Electron version X.Y.Z ?
A. We try to match the currently supported version of both Node and Electron.
Are you using iohook in your project ? Please tell us in a PR so we an add it to the list !
Thanks to kwhat for the libuiohook project and ayoubserti for the first iohook prototype.
- vespakoen (prebuild system implementation)
- matthewshirley (Windows prebuild fix)
- djiit (project & community help)
- ezain (add feature enable/disable mouse click propagation)
- anoadragon453 (electron 4+ support)
- ykhwong (node-gyp usage, electron 9+ support)
- All the other contributors. Feel free to extend this list !