From 902a639a1ad85fe973190354b6da02ca3586b725 Mon Sep 17 00:00:00 2001 From: Nicholas Tay Date: Sat, 28 May 2022 00:17:51 +1000 Subject: Update README with some more details and targets --- README.md | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index f9571cd..b2662f5 100644 --- a/README.md +++ b/README.md @@ -14,24 +14,31 @@ That's it. - [ ] Cross-platform - [x] Windows + - Keyboard hook: Low-level win32 hook + - Audio: PlaySound (async mode) win32 - [ ] Linux - - Half complete. Would like to clean up and even not use SDL if possible + - Keyboard hook: X11 + XInput2 extensions (Limitation: don't think Wayland is possible at the moment due to keyboard hook perms) + - Audio: Half complete. Would like to clean up and even not use SDL if possible - looking to use ALSA (just play it as separate streams, let the system mix with dmix/pipewire/etc) - kinda sucks, might see if can mix ourselves but adds quite some complication - [ ] macOS + - Keyboard hook: Planned - IOKit (on higher versions of macOS, need to turn on accessibility when prompted) + - Audio: Planned - TBD, thinking of trying out ObjC from C with NSSound - if we go our own mixer route could even look into CoreAudio (unlikely though) + - [ ] BSD + - All TBD (never really used) + - [ ] SerenityOS + - All TBD (not sure how to hook in with their C++ APIs) - [ ] Dynamically extensible - - Load plugins via dll/so/dylib -- [ ] Allow passing of keystrokes in standard format + - Load 'board'/plugins via .dll/.so/.dylib +- [ ] Allow passing of keystrokes in standard format (example usage: TTS) - [ ] Warn user if we are capturing keystrokes to the plugin ## Requirements -Should work on Windows and Linux. - -For Linux, specific requirements are: - -- Xlib (Fedora: `libX11`) -- XI2 (Fedora: `libXi`) -- SDL2 (Fedora: `SDL2`) -- SDL\_mixer 2 (Fedora: `SDL2_mixer`) +- Windows: should work right away +- Linux: specific requirements below + - Xlib (Fedora: `libX11`) + - XI2 (Fedora: `libXi`) + - SDL2 (Fedora: `SDL2`) + - SDL\_mixer 2 (Fedora: `SDL2_mixer`) ## Building @@ -43,7 +50,7 @@ You need: - make - xxd -For Windows: +For Windows specifically: - (Might have other ways, but I've only tested this way) - MinGW-w64 (via MSYS2) @@ -51,7 +58,7 @@ For Windows: - `mingw-w64-x86_64-gcc` - Note to use `mingw32-make` in place of just `make` -For Linux, also: +For Linux specifically: - Xlib (Fedora: `libX11-devel`) - XI2 dev (Fedora: `libXi-devel`) @@ -61,8 +68,10 @@ For Linux, also: ### Compiling ```sh -$ git clone https://git.windblume.net/pub/nick/clak +# deps copy-paste for fedora $ dnf install libX11-devel libXi-devel SDL2-devel SDL2_mixer-devel + +$ git clone https://git.windblume.net/pub/nick/clak $ make ``` -- cgit