- Introduces support for modifier layers.
- Simplifies config format.
- Improves consistency/expected key behaviour.
This breaks existing configs. Moving forward the config format is expected to
remain backwards compatible.
When starting keyd the last key event gets dropped. This happens because
keyd grabs the keyboard before the key up event can get generated. In most
cases this is benign and remedied by hitting the last key that was held
(usually enter) but can cause pathological behaviour in certain libinput
configurations. This patch causes keyd to wait for a neutral keyboard
state before proceeding with initialization.
Most display servers ignore repeat events but VTs seem to require them.
For simplicity a repeat event is generated for each depressed virtual
key every time a repeat event is generated by hardware. This potentially
generates superfluous repeat events when multiple keys are held but is
mostly unnoticeable in practice (and only present on VTs).