Libuiohook
A multi-platform C library to provide global keyboard and mouse hooks from userland.
Install / Use
/learn @kwhat/LibuiohookREADME
libUIOHook: Cross-platform keyboard and mouse hooking from userland.
Compiling
Prerequisites:
- cmake
- gcc, clang or msvc
- x11 dependencies:
- libx11-dev
- libxtst-dev
- libxt-dev
- libxinerama-dev
- libx11-xcb-dev
- libxkbcommon-dev
- libxkbcommon-x11-dev
- libxkbfile-dev
$ git clone https://github.com/kwhat/libuiohook
$ cd libuiohook
$ mkdir build && cd build
$ cmake -S .. -D BUILD_SHARED_LIBS=ON -D BUILD_DEMO=ON -DCMAKE_INSTALL_PREFIX=../dist
$ cmake --build . --parallel 2 --target install
Configuration
| | option | description | default | | --------- | ----------------------------- | ---------------------- | ------- | | all | BUILD_DEMO:BOOL | demo applications | OFF | | | BUILD_SHARED_LIBS:BOOL | shared library | ON | | | ENABLE_TEST:BOOL | testing | OFF | | OSX | USE_APPLICATION_SERVICES:BOOL | framework | ON | | | USE_IOKIT:BOOL | framework | ON | | | USE_OBJC:BOOL | obj-c api | ON | | | USE_CARBON_LEGACY:BOOL | legacy framework | OFF | | Win32 | | | | | Linux | USE_EVDEV:BOOL | generic input driver | ON | | *nix | USE_XF86MISC:BOOL | xfree86-misc extension | OFF | | | USE_XINERAMA:BOOL | xinerama library | ON | | | USE_XKB_COMMON:BOOL | xkbcommon extension | ON | | | USE_XKB_FILE:BOOL | xkb-file extension | ON | | | USE_XRANDR:BOOL | xrandt extension | OFF | | | USE_XRECORD_ASYNC:BOOL | xrecord async api | OFF | | | USE_XT:BOOL | x toolkit extension | ON | | | USE_XTEST:BOOL | xtest extension | ON |
Usage
- Hook Demo
- Async Hook Demo
- Event Post Demo
- Properties Demo
- Public Interface
- Please see the man pages for function documentation.
