kmk_firmware/docs/modules.md
xs5871 a62d39a252
make TapDance a module (#281)
* extract tapdance logic into a module

* clean out old tapdance code

* canonicalize key variable names

* split _process_tap_dance into td_pressed and td_released

* implement consistent argument order

* update documentation

* implement Module.process_key for key interception and modification

* fix tapdance realesing instead of pressing

* fix: default parameters in key handler

* cleanup holdtap

* add error handling to modules process_key

* fix: key released too late

Tapped keys didn't release on a "key released" event, but waited for a
timeout. Resulted in, for example, modifiers applying to keys after the
modifier was released.

* fix lint/formatting

* fix tap_time reference in modtap + minimal documentation

* fix lint
2022-01-18 05:21:05 +00:00

816 B

Modules

Modules, unlike extensions, change how your keyboard works. These are meant to have the ability to alter the core code in any way. Unlike extensions, these are not in a sandbox, and can make massive changes to normal operation.

Core Modules

These modules are proveded in all builds and can be enabled. Currently offered modules are

  • Layers: Adds layer support (Fn key) to allow many more keys to be put on your keyboard
  • ModTap: Adds support for augmented modifier keys to act as one key when tapped, and modifier when held.
  • Power: Power saving features. This is mostly useful when on battery power.
  • Split: Keyboards split in two. Seems ergonomic!
  • TapDance: Different key actions depending on how often it is pressed.