Why This Matters
keyd is a powerful, flexible daemon that addresses the longstanding challenge of key remapping on Linux, offering system-wide, kernel-level remapping capabilities. Its modular design, support for custom layers, and compatibility across different display servers make it a significant advancement for users seeking personalized keyboard configurations. This development enhances user productivity and customization, especially for power users and developers who require tailored input setups.
Key Takeaways
- Provides system-wide, kernel-level key remapping for Linux, improving flexibility over traditional tools.
- Supports advanced features like custom layers, key overloading, and Unicode, enabling extensive customization.
- Designed to be simple, fast, and modular, adhering to the Unix philosophy for easier integration and scripting.
Impetus
Linux lacks a good key remapping solution. In order to achieve satisfactory results a medley of tools need to be employed (e.g xcape, xmodmap) with the end result often being tethered to a specified environment (X11). keyd attempts to solve this problem by providing a flexible system wide daemon which remaps keys using kernel level input primitives (evdev, uinput).
Note on v2
The config format has undergone several iterations since the first release. For those migrating their configs from v1 it is best to reread the man page ( man keyd ).
See also: changelog.
Goals
Speed (a hand tuned input loop written in C that takes <<1ms)
Simplicity (a config format that is intuitive)
Consistency (modifiers that play nicely with layers by default)
Modularity (a UNIXy core extensible through the use of an IPC mechanism)
... continue reading