The kmonad project is the closest alternative for this project.
MacOS support(this is implemented now)- Different features
- Double-tapping a tap-hold key did not behave how I want it to
- Some key sequences with tap-hold keys didn't behave how I want:
(press lsft) (press a) (release lsft) (release a)
(a is a tap-hold key)- The above outputs
a
in kmonad, but I want it to outputA
- kmonad was missing mouse buttons
The issues listed are all fixable in kmonad and I hope they are one day! For me though, I didn't and still don't know Haskell well enough to contribute to kmonad. That's why I instead built kanata based off of the excellent work that had already gone into the keyberon, ktrl, and kbremap projects.
If you want to see the features that kanata offers, the configuration guide is a good starting point.
I dogfood kanata myself and it works great for my use cases. Though kanata is a younger project than kmonad, it now has more features. If you give kanata a try, feel free to ask for help in an issue or discussion, or let me know how it went 🙂.