# v2.4.3 ## Summary (non exhaustive) - Introduces a new layout type - Improves application based remapping suport for wayland/X - Adds `swap` support for toggled layers - Adds support for chording - Numerous bugfixes and stability improvements ## New Actions: - togglem (#270) - clear() (#253) - overloadt (#309) - overloadt2 ## New Commands: - listen command (#294, #217) - reload - do - input ## New timeout and modifier knobs: - disable_modifier_guard (#257) - oneshot_timeout option - overload_tap_timeout - macro_sequence_timeout (#255) See the manpage for details. # v2.4.2 - Add include directive to the config syntax - Ship includable common layouts - Allow comments in the ids section (#245) - Create virtual pointer on initialization (#249) - Misc bug fixes # v2.4.1 - Route button presses through the virtual keyboard (#162) - Improve mouse support - Fix VT repeat bug - Allow overload to accept an arbitrary action (#199) - Add support for full key serquences to swap() - Misc bugfixes # v2.4.0 - Fix macro timeouts - Allow timeouts to be used in conjunction with + (#181) - Add macro2() to allow for per-macro timeout values (#176) - Add command() to allow for command execution - Add [global] section - Improve unicode support - Add support for older kernels (#163) - Clear oneshot on click - Various bugfixes and enhancements # v2.3.1-rc - Add unicode support - Add noop - Fix keyd-application-mapper hotswapping # v2.3.0-rc This is a **major release** which breaks **backward compatibility** with non trivial configs. It is best to reread the man page. Minimal breaking changes are expected moving forward. - Introduce composite layers - Add timeout() - Simplify layer model - Layer entries are now affected by active modifiers (current layer modifiers excepted) - Eliminate layer types - Eliminate -d See [DESIGN.md](DESIGN.md) for a more thorough description of changes. # v2.2.7-beta - Fix support for symlinked config files (#148) - Improve out of the box handling of alt and meta overloading (#128) - Add unicode support to keyd-application-mapper - Various bugfixes and stability improvements # v2.2.5-beta - Eliminate udev as a dependency - Permit mapping to modifier key codes (still discouraged) - Support for nested swapping - Improve app detection - Various bug fixes # v2.2.4-beta - Add support for application mapping by title - Fix macro timeouts - Forbid modifier keycodes as lone right hand values in favour of layers # v2.2.3-beta - Enable hot swapping of depressed keybindings via -e - Improve support for application remapping # v2.2.2-beta - Change panic sequence to `backspace+enter+escape` (#94) - Fix overload+modifer behaviour (#95) # v2.2.1-beta - Move application bindings into ~/.config/keyd/app.conf. - Add -d to keyd-application-mapper. - Fix broken gnome support. # v2.2.0-beta - Add a new IPC mechanism for dynamically altering the keymap (-e). - Add experimental support for app specific bindings. # v2.1.0-beta NOTE: This might break some configs (see below) - Change default modifier mappings to their full names (i.e `control = layer(control)` instead of `control = layer(C)` in an unmodified key map)`. - Modifier names are now syntactic sugar for assigning both associated key codes. E.G `control` corresponds to both `leftcontrol` and `rightcontrol` when assigned instead of just the former. (Note: this also means it is no longer a valid right hand value) - Fixes v1 overload regression (#74) # v2.0.1-beta - Add + syntax to macros to allow for simultaenously held keys. # v2.0.0-beta Major version update. This breaks 1.x configs. The format may ~~change slightly~~ (see [2.3.0-rc](#v230-rc)) before leaving beta, but once it does should remain backwards compatible for the foreseeable future. A non exhaustive list of changes can be found below. It is best to forget everything you know and read man page anew. - Eliminate layer inheritance in favour of simple types. (layouts are now defined with `:layout` instead of `:main`) - Macros are now repeatable. - Overload now accepts a hold threshold timeout. - Config files are now vendor/product id oriented. - SIGUSR1 now triggers a config reload. - Modifiers are layers by default and can be extended directly. - Config files now end in `.conf`. - `layert()` is now `toggle()`. - All layers are 'modifier layers' (terminological change) - Eliminate the dedicated modifer layout. - Modifiers no longer apply to key sequences defined within a layer. (Layer entries are now always executed verbatim.) The old behaviour was unintuitive and can be emulated using nested layers if necessary. For most old configs transitioning should be a simple matter of changing the file extension from `.cfg` to `.conf`, replacing `layert` with `toggle`, changing `:main` to `:layout` and adding ``` [ids] * [main] ``` to the top of the file. More involved configs may need additional changes, but should be possible to replicate using the new rules. If not, please file an issue on [github](https://github.com/rvaiya/keyd/issues). # v1.1.1 - Make layert behaviour more intuitive when combined with oneshot() and layer(). # v1.1.0 - Add layert() to facilitate semipermanent-activation of occluding layers. - Resolve layer conflicts by picking the one which was most recently activated. # v1.0.0 Major version update: - Introduce support for modifier layers. - Simplify the config format. - Improve consistency/expected key behaviour. - Symbols can now be assigned directly place of their names (e.g `&` instead of `S-7`). - Macro support. *This breaks existing configs*. Moving forward the config format is expected to remain backwards compatible. Main Config Changes: - Modifiers are now just treated as layers - The default layer is now called main - The modifier layout is distinct from the key layout Config migration map: ``` mods_on_hold(C, esc) = overload(C, esc) layer_on_hold(layer, esc) = overload(layer, esc) layer_toggle(layer) = layout(layer) layer(layer) = layer(layer) oneshot(mods) = oneshot(mods) oneshot_layer(layer) = oneshot(layer) [dvorak:default] = [dvorak:main] ``` See the [manpage](man.md) for details.