DoctorNefario
20a72263b2
fix(behaviors): Prevent accidental transparent behavior return values.
...
Needed because k_work_reschedule can return positive success codes.
2022-04-06 11:00:01 -04:00
Kurtis Lew
7e844bc269
fix(behaviors): Remove behavior_hold_tap_data
...
Related to discussion during development of tap-dance behavior:
https://github.com/zmkfirmware/zmk/pull/1139#discussion_r810564682
This PR suggests to remove the `struct behavior_hold_tap_data` because is not used to store data for each hold tap.
2022-04-06 09:27:39 -04:00
Peter Johanson
af4753cae1
fix(behaviors): Missed refactor for PM callback.
2022-04-03 04:37:42 +00:00
Peter Johanson
953f5212a8
refactor(tests): Move to native_posix_64 target.
...
* Allows removing multilib from docker images
* Run properly in aarch64 host docker
containers for testing on Rasberry Pi.
* Small sticky-keys fix to initialize w/ correct
constant for max uin32_t value.
2022-04-03 00:10:29 -04:00
Peter Johanson
5015a88545
fix(split): Proper role checking in BT callbacks.
...
* Properly react to events only for connections
with the correct role.
2022-04-03 00:10:29 -04:00
Peter Johanson
917c6a0660
fix(power): Fix ext power generic driver.
...
* Adjust for device API changes to fetch
ext power driver instance from settings
callback.
* New PM action callback API.
2022-04-03 00:10:29 -04:00
Peter Johanson
9203ae217b
fix(activity): Use proper PM state for sleep.
2022-04-03 00:10:29 -04:00
Peter Johanson
94ac100b6b
refactor: Move to Zephyr v3.0.0 + ZMK fixes.
2022-04-03 00:10:29 -04:00
Peter Johanson
4df83a9c0d
refactor: Move away from deprecated PM callback.
2022-04-03 00:10:29 -04:00
Peter Johanson
2c5d5fde51
refactor: k_work_queue
API updates.
2022-04-03 00:10:29 -04:00
Peter Johanson
79ab60dfe5
refactor: Move to new PM API/Kconfig settings.
2022-04-03 00:10:29 -04:00
Peter Johanson
6287819fcc
refactor: Move to USB_DEVICE_STACK symbol.
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.7.html#changes-in-this-release
2022-04-03 00:10:29 -04:00
Peter Johanson
40d8470664
refactor: Handle HID macro/API changes in Zephyr.
2022-04-03 00:10:29 -04:00
Peter Johanson
53dae35710
refactor: Move to k_work_delayable
API.
...
* Move to new `k_work_delayable` APIs introduced in Zephyr 2.6.
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.6.html#api-changes
2022-04-03 00:10:29 -04:00
Peter Johanson
3a6a249ad0
feat(behaviors): Add macro support.
...
* Fine grainted press/release/tap actions.
* TIming between actions can be controlled.
* Processed async, to avoid blocking.
2022-03-23 23:42:54 -04:00
Kurtis Lew
32ebe2cfb5
feat(behaviors): Add Tap-Dance behavior
2022-03-16 01:08:42 -04:00
okke
ad5a12a7bc
fix(behaviors): Fix bug in nested sticky keys
...
If multiple sticky keys with quick release were nested, only the first one
was properly released. This fix makes sure all of them are released properly.
Fixes https://github.com/zmkfirmware/zmk/issues/1149
2022-03-15 23:04:45 -04:00
okke
cfd0d3d81a
Behaviors: Add 'ignore-modifiers' option to sticky keys
...
To combine multiple sticky modifiers, the sticky keys must ignore
other (sticky) modifier keypresses.
This behavior is important for "callum-style mods", where all modifiers
are sticky mods.
Fixes #829
2022-02-07 14:45:07 -05:00
Peter Johanson
e2a90974e3
fix(lighting): Proper split backlight support.
...
Ensure the backlight behavior is run globally.
2022-02-06 21:04:42 -05:00
Alessandro Bortolin
13a4515300
feat(backlight): add command to cycle brightness
2022-02-05 23:40:18 -05:00
Alessandro Bortolin
2c0fe3934d
feat(backlight): add tests
2022-02-05 23:40:18 -05:00
Alessandro Bortolin
ce843825e8
refactor(backlight): code cleanup
2022-02-05 23:40:18 -05:00
ReFil
5614a8bb80
feat(backlight): initial split support
2022-02-05 23:40:18 -05:00
Alessandro Bortolin
85b2d30bd5
feat(lighting): add backlight behavior
2022-02-05 23:40:18 -05:00
Peter Johanson
7430750428
refactor(splits): Minor cleanups to periph invocation
...
* Add strlcpy from public domain version.
* Leverage strlcpy to detect truncation of behavior dev strs, and log.
* Use `offsetof` for cleaner detection on peripheral side.
2022-01-31 23:03:34 -05:00
Peter Johanson
b8700eaaa1
fix(split): Fix an off-by-one error in split svc.
...
* Properly check end of behavior device string for null terminator.
2022-01-31 23:03:34 -05:00
Peter Johanson
dbefe92ea0
fix(split): Slightly improved logging on peripherals.
2022-01-31 23:03:34 -05:00
Peter Johanson
fa110488b0
fix(split): Add define for local source.
...
* Add `ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL` and use
it consinstently to fix bug w/ local `&reset`, `&bootloader`, etc.
2022-01-31 23:03:34 -05:00
Peter Johanson
9297c5f2b4
refactor(splits): Use index for event source.
...
* Track peripherals by indexes slot, with all appropiate peripheral
state stored in the slot.
* Event sources tracked by peripheral slot index.
2022-01-31 23:03:34 -05:00
Peter Johanson
ce3471d4fe
fix(split): Add queue for running remote behaviors
2022-01-31 23:03:34 -05:00
Peter Johanson
d486304f79
fix(underglow): Handle cycling effects on splits.
...
* Convert relative effect cycling to absolute effect selection.
2022-01-31 23:03:34 -05:00
Pete Johanson
0febaa142a
refactor(split): Clean up split GATT discovery.
...
* Use Zephyr auto CCC discovery instead of doing it ourselves.
* Split service versus characteristic discovery into dedicated
steps in the flow.
* Fix for not searching properly when connecting to a peripheral
a second time.
2022-01-31 23:03:34 -05:00
Pete Johanson
47f873b038
feature(split): behavior locality support.
...
* GATT characteristic allowing passng data + behavior
label to invoke the behavior on the peripheral side.
* Behaviors have a locality setting to specify where they run.
* Build reset/power/RGB on peripheral.
2022-01-31 23:03:34 -05:00
Peter Johanson
52b1fd5dd3
fix(behaviors): Capture mods for &key_repeat
...
* When tracking the last keycode, also capture the currently held
explicit modifiers to use when replaying the key later.
2022-01-30 22:47:34 -05:00
Peter Johanson
70bb7c9334
feat(behaviors): &key_repeat
behavior + tests.
...
* Add new `&key_repeat` behavior that captures and re-sends
the most recently triggered keycode.
Closes : #853
2022-01-30 22:47:34 -05:00
Peter Johanson
ed48d1ae89
fix(ble): Restore BLE SC passkey entry for pairing.
...
* Handle capturing numeric inputs while pairing and sending
final passkey once six digits entered.
2022-01-30 22:41:41 -05:00
Peter Johanson
6ef1e7034f
fix(hid): Implicit mods on non-key page events
...
* Properly send the KEY usage page report for modifier changes
when there are state changes to other usages pages that
include implicit modifiers.
2021-12-02 07:18:25 -05:00
Peter Johanson
54dabffd0d
feat(behaviors): Add caps word (&caps_word
).
...
* Add new `&caps_word` behavior that acts like caps lock, but
releases automatically when any "break" keycode is pressed.
2021-11-28 22:41:35 -05:00
Jonathan Rascher
e9140b2da9
feat(conditional-layers): Implement feature
...
This is a generalization of the existing concept of tri-layer support
that's already well known. Essentially, a conditional-layer
configuration activates a particular layer (the then-layer) when one or
more other layers (the if-layers) are activated.
This is commonly used on ortho keyboards to activate a third "adjust"
layer while the primary two layers ("lower" and "raise") are active.
2021-11-15 05:49:23 -05:00
jding
4e62319982
feat: hold/tap flavor tap-unless-interrupted
...
Implements new hold/tap flavor, tap-unless-interrupted
Adds tests
Adds docs
2021-11-09 01:07:05 -05:00
Peter Johanson
0b0b49d626
fix(split): Properly rediscover peripherals.
...
* Handle disconnects of peripherals, and properly clean up
and resume discovering for when the peripheral re-appears.
2021-11-04 22:31:56 -04:00
jmding8
73fd4b9230
fix(behavior): Properly break in decision switch statement.
...
Co-authored-by: jding <jding@roblox.com>
2021-11-01 13:51:12 -04:00
jmding8
19ee7849f8
feat(behaviors) Required keys for tap-hold behaviors
...
* Add optional `hold-trigger-key-positions` hold-tap configuration
* Leverage configuration for decision making around when to trigger
hold decision in hold-taps.
* Add docs for new configuration.
* Tests for the new config/decision logic.
2021-11-01 12:37:20 -04:00
Jonathan Rascher
e3eb77dfc6
refactor(combos): Use ZMK_KEYMAP_EXTRACT_BINDING
...
Now that PR #506 is merged, we can address this TODO.
2021-10-20 23:36:31 -04:00
Richard Kjerstadius
a774ce8555
fix(display): Increase char buffer size to fit all symbols
...
Recent refactoring of the font handling seems to have broken the display
of the last symbol of the output status widget. From my analysis the
last symbol is truncated because the buffer simply is too small.
Increasing the buffer size to 9 fits all three possible symbols.
2021-10-12 12:00:21 -04:00
Nick Winans
f23f427cae
fix(underglow): Run clang-format
2021-10-10 17:43:57 -07:00
Simon Malinge
c5b8dd85fd
feat(underglow): Add support for configurable min/max brightness
...
Co-authored-by: jrhrsmit <jasper.770@gmail.com>
2021-10-10 17:43:57 -07:00
Peter Johanson
bc179b1030
feat(hid): Kconfig for basic/full consumer usages.
...
* Add ZMK_HID_CONSUMER_REPORT_USAGES choice to allow choosing
between full consumer usage range, with poor OS compat,
or basic consumer usage range, with broader compat.
2021-10-04 23:01:39 -04:00
Pete Johanson
91ba034896
feat(hid): Configurable NKRO HID report support.
...
* Add Kconfig settings for NKRO or HKRO (boot compatible), HID
report types for keyboard page.
* Updated report storage and set/unset for each config.
2021-10-04 23:01:39 -04:00
Peter Johanson
3e6a3758ed
refactor(display): Saner font selection/defaults.
...
* Only select fonts for the default built in status screen
* Leverage theme default fonts, instead of hardcoding theme
details in each component.
2021-09-25 19:43:20 -04:00