aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Tay <nick@windblume.net>2022-05-28 00:17:51 +1000
committerNicholas Tay <nick@windblume.net>2022-05-28 00:17:51 +1000
commit902a639a1ad85fe973190354b6da02ca3586b725 (patch)
treea6a9ac34d599c091c9ee2dff81a67de4b7c22624
parent229d43bd90283c5925a9f6972f97d44022c768ed (diff)
downloadclak-902a639a1ad85fe973190354b6da02ca3586b725.tar.gz
clak-902a639a1ad85fe973190354b6da02ca3586b725.tar.bz2
clak-902a639a1ad85fe973190354b6da02ca3586b725.zip
Update README with some more details and targets
-rw-r--r--README.md37
1 files 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
```