Files
komorebi/docs/dev
LGUG2Z 8f5d4a32ef feat(hotkeys): plan the bindings and write the plain ones as KDE shortcut files
A binding can reach KDE in two ways. A `.desktop` file in a kglobalaccel
directory is a static shortcut that KDE runs by itself: it shows in System
Settings and survives a dead komorebi, but it is one combo that runs one
command. Modes, chord chains, release bindings, per-application bindings, a
blacklist and a pause binding need the engine, where komorebi registers the keys
and decides what each press does. `plan::plan` sorts a keymap into the two: a
binding is static when it is in the default mode, a single combo, unscoped and
pressed, in a file with no modes, blacklist or pause binding. Notes say why each
other binding goes through the engine.

The static shortcut was meant to be the default unless it proved slow, and it
did: on KWin 6.8.1 a static shortcut ran its command 233 ms after the key at the
median, while the engine heard of it after 3 ms. `PlanMode::Engine` is therefore
the default, and `Auto` and `Static` (no engine; what needs it is left out with
a warning) stay selectable.

`kde` is the skhdrc exporter of the first KDE prototype, moved: the same file
names, the same `Exec` quoting for the desktop entry specification (`%%`
included), the same `X-KDE-GlobalAccel-CommandShortcut` and `X-KDE-Shortcuts`
keys, and `write` and `diff`, which replace the generated files and leave every
other file alone. For the sample configuration the files are byte for byte the
prototype's; its tests come along, and the corpus test checks that the sample
plans into the same 50 files from each format.
2026-10-28 07:20:57 -07:00
..
2026-10-28 07:20:57 -07:00
2026-10-28 07:20:57 -07:00