feat(shields): Add tester_xiao layouts
Added two layouts for the XIAO tester shield:
- Keys arranged to match the XIAO pinout, viewed from the front
- Single row of eleven keys
These layouts are abstractions since the tester_xiao shield may be
used in a situation where the "keys" are actually jumper wires on a
breadboard or the like.
feat(shields): Add tester_pro_micro layouts
Added two layouts for the Pro Micro tester shield:
- Keys arranged to match the Pro Micro pinout, viewed from the front
- Single row of eighteen keys
fix(pointing): Temp layer threading protection.
Ensure all layer operations occur on the system work queue thread.
Fixes: #2719
fix(pointing): Handle layer events to disable events
Make the temp layer input processor propely handle layers getting
deactivated externally before the temp layer timeout.
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
test(behaviors): Add same position sticky key tests
fix(behaviors): Make multiple sticky keys work on same key position
refactor(behaviors): Remove unused param2 in sticky keys
refactor(behaviors): Add max-held tap-dance config
Add new `CONFIG_ZMK_BEHAVIOR_TAP_DANCE_MAX_HELD` config for reducing RAM
usage on more constrained devices.
refactor(behaviors): Move defaults to Kconfig.defaults
docs: Inline simple physical layouts in new shield guide
docs: Fix broken anchor in module creation
docs: Make physical layout transform label consistent and comment
Zephyr is still working on the plan upstream for generically controlling
display "backlight" pins with GPIO/PWM, so in the meantime, add our
own chosen property `zmk,display-led` that is set to an LED device child
to allow blanking/unblanking of devices that use a dedicated backlight
control pin.
fix(display): Do LVGL task processing in main on POSIX.
An SDL/Zephyr bug prevents proper display when SDL calls are
made from anything but the main thread, so add task handling
in our simple main function when on POSIX.
fix(usb): Compilation fix for 64-bit targets
Properly handle differences in the size of `size_t` on 64-bit
architectures.
fix(display): Imply, but don't force, LVGL mono theme
Some targets may be using color displays, so instead of forcing
on the mono theme, merely imply it to default it
When building for ZMK Studio, we can use the constant stock keymap
for init of the in-memory keymap, to avoid duplicate flash usage
for the keymap from the devicetree.
To be able to save on flash space, for layouts on space constrained
devices that don't require rotation, make key rotation props
optional behind a new Kconfig flag.
Save a tiny bit of RAM by properly marking our device config
struct instances const consistently, and also add missing static
modifiers to properly isolate config/data for drivers.
docs: Move battery sensing hardware integration to new page
docs: Refactor lighting hardware integrations to new category
docs: Link to pin control page from lighting pages
docs: Consolidate lighting feature pages
docs: Remove incorrect redirect
docs: Consolidate lighting config pages
test(pointing): Add mock input device.
New mock input device to generate input events for tests.
test(split): Add peripheral input test.
Test event propagation from peripheral input devices.
fix(split): Proper scoping for local within switch.
Minor compile fix.
chore: Fix up test snapshots after logging changes.
Adjust the test snapshots after logging changes to the central.
fix(kscan): Don't fire last mock event twice.
Fix a bug where the kscan mock would raise the last mock event
twice before halting processing.
test(sensors): Add mock encoder sensor
Add a new mock sensor driver for generating mock encoder sensor channel
data.
test(split): Add a peripheral sensor split test
Test BLE split logic for peripheral sensors (encoders).
docs: Add missing code fence languages in pointing
docs: Fix default msc exponent in example
docs: Make pointing hardware integration follow semantic structure
When building a unibody or central warnings get thrown for the backslash newlines at EOF in combos.h and input_listeners.h. Adding a trailing newline to the affected files rectifies this