It's a shame that the title doesn't say what the s/w is : keyd.
I actually use keyd on my laptops because it seems to do everything I need and is easy to get going without any fuss. So thank you Raheman Vaiya.
> a hand tuned input loop written in C that takes <<1ms
Yes, I would certainly expect much less than 1ms. Perhaps 1µs should be the goal?
This is fantastic!
I wish window/app selection in Wayland was better. On my Mac I use a combination of Phoenix and Hyperkey to capture capslock + key combinations, (e.g. cap+f for Firefox) which when pressed, either open an app of my choice it not already open, or bring it to the front of the stack.
Last time I looked into it window and app selection in Wayland just didn’t work.
I find this kind of keyboard remapping essential when using a laptop now that I'm used to using an external keyboard with QMK firmware at my desk (though these days I use Kmonad).
I use Karabiner-Elements on macOS, and finding keyd was a godsend on Linux. I cannot deal with standard keyboard mappings and the lack of hold/tap keys.
I use it to remap my mouse keys. Works like a charm on Fedora Silverblue.
I've done nearly the same thing and have called it 'keyd' as well.
It's a little more inspired by a "djb" style design. Instead of having a configuration file, the program takes a single argument which is meant to be a directory. Then, if code 113 is pressed, it looks for an executable file named '113' in the given directory and if it exists will execute it. If not found it then tries '113+', then on release it will try '113-'.
This is fantastic. Works perfectly right off the bat. I have so much trouble just getting capslock to be control consistently in Linux, and this made it easy.
I used this to remap the space key to be a modifier key and thought it might be useful for some.
Now I can finally reimplement spacebar heating!
What are the differences between this and https://github.com/sezanzeb/input-remapper ?
Thanks keyd! You replaced a number of utterly shameful and janktacular python scripts.
This is one of many things that used to be easier before wayland
You can get pretty far with just the xkbd definions though, although you need root to reconfigure it.
A bit ironically, the easiest way I've found to create xkbd definions is to start an X11 server, reconfigure your xmodmap+xcompose, and export the current xkbd settings. Xmodmap is much easier to edit than editing xkbd directly.