Aligns *.h and *.c to underscore naming convention.
These were kept (with warnings) for backwards compatibility with external boards/shields:
- kscan-mock.h
- matrix-transform.h
They should be removed in the future.
PR: #523
* Fire an event w/ layer number, state, and timestamp
when a layer is activated/deactivated.
* Add `zmk_keymap_highest_layer_active()` query.
Co-authored-by: KemoNine <mcrosson@kemonine.info>
Key release events released keys on the wrong layer if the 'top layer'
was not &trans above the &mo key.
base <&mo 1>
layer 1 <&kp B>
This was caused by overwriting
`zmk_keymap_active_behavior_layer[position]` after the &mo key was
handled.
* Add timestamps to position events and behaviors.
- Take original event timestamps into consideration so nested tap-holds have proper timing.
- Add position and timestamp to keycode state changed event so the one-shot behavior can properly identify other keypresses and timings.
- Add timestamp to position events received from peripheral
* reduce number of arguments to behaviors
* If you press a key with a layer active, then
deactivate the layer (e.g. releasing a `&mo`,
then release the key, we currently may send
the wrong key release event.
* Fixes#67.
* Add initial event manager implementation,
roughly mimicking Nordic's API.
* Add `position_state_changed` and
`keycode_state_changed` events.
* Hook up HID and keymap to new events
instead of using behaviour global event
crazy.
* Refactor Kyria into separate left/right "revisions"
of the Kyria shield, and include central
kyria.dtsi file with common definition.
* Fixes for keymaps to work fully with matrix
transforms that override effective rows/columns.
* Add ability for matrix transform to do row/col
offsets, which is needed for split keyboards.
* Use extra comptible = "zmk,behavior-global" to add
behaviors to global bindings for event notification.
* Implement mod-tap, as a keymap binding and global one
to skip tap if other keycode pressed while held.
* Allows "gaps" for keyboards like Kyra.
* Allows keyboards with matrixes that don't map the logical key
locations to have normal looking keymaps when defined.