Animeshz / keyboard-mouse-kt

A lightweight multiplatform library for interacting with global keyboard and mouse events and states from Kotlin, Java and NodeJS.
https://animeshz.github.io/keyboard-mouse-kt
MIT License
52 stars 2 forks source link

Mac OS support #13

Open Animeshz opened 3 years ago

Animeshz commented 3 years ago

Need collaborators / contributors for testing and working on extending the library to support Mac OS.

Unfortunately I have zero experience with Apple products and don't have access to a Mac right now, so I couldn't test the library either way.

The codebase is organized to easily integrate the support, one can work on either Java, C++ (JNI side) or Kotlin (K/Native side) whichever is more familiar to him/her. The keyboard-kt/src/jvmMain/jni/{platform}-{arch}/ is where the platform specific JNI code reside, and the Kotlin/Native code is present in keyboard-kt/src/{platform}{arch}Main/ as usual.

To cross-build for the JVM packaging we can use multiarch/crossbuild, and gradle to automate the build process as we've did for Windows and Linux currently.

If somebody has any idea or suggestions drop it below! A small contribution may help the project to pick up the momentum to get ready for the complete implementation.

grsky360 commented 3 years ago

You may want to check this https://chromium.googlesource.com/chromium/src/+/master/chrome/browser/extensions/global_shortcut_listener_mac.mm