Age | Commit message (Collapse) | Author |
|
* feat(mouse): Add mouse move and scroll support
* Use Zephyr input subsystem for all pointers.
* Input processors for modifying events, e.g. scaling, swapping
codes, temporary (mouse) layers, etc.
* Mouse move/scroll behaviors.
* Infrastructure in place for physical pointer input devices.
* feat: Add input split support.
* docs: Add initial pointer docs.
---------
Co-authored-by: Cem Aksoylar <[email protected]>
Co-authored-by: Alexander Krikun <[email protected]>
Co-authored-by: Robert U <[email protected]>
Co-authored-by: Shawn Meier <[email protected]>
Co-authored-by: Chris Andreae <[email protected]>
Co-authored-by: Anant Thazhemadam <[email protected]>
Co-authored-by: Erik Tollerud <[email protected]>
Co-authored-by: Nicolas Munnich <[email protected]>
|
|
Ensure the set active physical layout RPC returns the full keymap
details including the available layers.
|
|
docs: Fix incorrect kconfig default values
fix(Kconfig): Added a name to EC11's trigger mode choice, allowing it to be set in device Kconfig.defconfig
refactor(Kconfig): Moved designer defaults out into new files
|
|
|
|
* Fix bug with setting keymap layer bindings when a non-stock layout
is selected.
|
|
|
|
* To avoid tons of migration, extra flash writes, etc, we keep
the keymaps and settings using a key position index that's tied
to the stock layout, and at runtime mapping key positions as
needed.
|
|
* Add tracking to see if we ever hit a configured status before
suspend, so we can properly track "is connected" even when
connected to a suspended/asleep host.
|
|
* Imply nanopb setting for reduced stack usage.
|
|
* Now that device init of kscan sideband is in POST_KERNEL stage,
use a separate SYS_INIT for auto enabling the device so processing
of early/initial presses from referenced toggle mode kscan devices
occurs at the proper time during init.
|
|
* More fine grained status reporting when saving changes. Needed to we
can notify the client if we've got errors saving settings due to
running out of space, etc.
* Return the max layer name lenght in the keymap payload, for the UI to
leverage.
|
|
* When building with ZMK Studio, assert that we have physical layouts,
and those layouts have key information set.
|
|
|
|
|
|
|
|
This allows for the device name to be set at runtime, possible uses for this include a custom display screen that lets you type it in using the keycode state event, future configuration in zmk studio, or altering it per profile as per #1169
|
|
|
|
* Ensure the split peripherals have the same selected physical
layout on connection and change.
|
|
|
|
|
|
|
|
TODO: Currently the source is hardcoded to central for source local behaviors
|
|
Co-authored-by: Tokazio <[email protected]>
|
|
|
|
|
|
* Instead of erroring out, simply ignore physical layouts if we
detect a chosen matrix transform, and warn instead.
|
|
|
|
|
|
This fixes the string leak when a layer name is changed to a longer one,
but is discarded and reverted to the original shorter one from ZMK Studio.
|
|
|
|
* When not building with runtime keymap support, make the keymap
const.
|
|
* If using a sideband kscan device to wrap a native kscan device,
ensure the inner kscan device is also wakeup enabled to it can
be waken from a deep sleep state by key press.
|
|
|
|
|
|
* Refactor broke the build when clearing bonds on start.
|
|
This reverts commit 03b5b38bc4b81b68787bb052613e771279fa049c.
|
|
The set brightness function in the backlighting code has a max of 100, as does the zephyr led-pwm driver https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/led/led_pwm.c
The range for the set brightness function should reflect this max
|
|
* Ensure the split peripherals have the same selected physical
layout on connection and change.
|
|
|
|
|
|
* Add keymap API for getting/setting a bindings
in keymap layers.
* Add layer move support via intemediary ordering array.
* Add settings storage for keymap changes.
|
|
Increase buffer size used for placing LVGL symbols on displays. This
prevents array overflow warnings as discussed in #2444.
Also convert one sprintf to snprintf to ensure the buffers are always
null terminated and never overflow.
Signed-off-by: Mike Szczys <[email protected]>
|
|
* New behavior allows unlocking the keyboard to allow ZMK Studio to
make changes.
Co-authored-by: Cem Aksoylar <[email protected]>
|
|
* UART and BLE/GATT transports for a protobuf encoded RPC
request/response protocol.
* Custom framing protocol is used to frame a give message.
* Requests/responses are divided into major "subsystems" which
handle requests and create response messages.
* Notification support, including mapping local events to RPC
notifications by a given subsystem.
* Meta responses for "no response" and "unlock needed".
* Initial basic lock state support in a new core section, and allow specifying
if a given RPC callback requires unlocked state or not.
* Add behavior subsystem with full metadata support and examples of
using callback to serialize a repeated field without extra stack space needed.
Co-authored-by: Cem Aksoylar <[email protected]>
|
|
|
|
* Add new Kconfig symbols to config max held sticky-keys/hold-taps
and for max captured events during hold-tap resolution.
|
|
* Other drivers properly disconnect/de-config pins now, so we need
to be sure the wakeup trigger connects the wake pin as input.
|
|
|
|
* Studio will use stable layer IDs to refer to layers, so that
layer reordering doesn't affect behavior bindings, so update to match.
* Fix a few layer metadata entries that missed being refactored.
|
|
* Because settings load is delayed now, enable external
power on init, and let it be disabled on settings load
later, to ensure power is on early for
other peripheral initialization.
Fixes: #2361
|