Peter Johanson
16ab6df18d
feat(display): Add new peripheral status/display
...
* Add new API/status to track state of the
peripheral connection to the central.
* Add new peripheral status widget for displaying
the current status of the connection to
the central.
2022-05-17 13:09:21 -04:00
Peter Johanson
0a40f922b5
refactor(split): Seperate peripheral BLE handling.
...
* Move foundational BLE code for split
peripherals to a dedicated file to avoid
tons of conditionals and awkward code.
2022-05-17 13:09:21 -04:00
Cem Aksoylar
25f89ee6ab
feat(battery): Add Kconfig setting for battery level report interval
2022-05-17 12:03:57 -04:00
Nick Winans
54747a52f9
fix(sleep): use pm_power_state_force for proper device power management
2022-05-17 00:30:47 -04:00
Andrew Rae
b5efc7a7eb
feat(behaviors): Add global-quick-tap
2022-04-27 13:33:22 +01:00
Nick Winans
2c7e5b9232
refactor(ble): Use auto phy/conn for split
2022-04-24 18:29:18 -04:00
Joel Spadin
f91472fbe5
fix(battery): Warn if using deprecated battery label
2022-04-17 11:30:57 -04:00
Joel Spadin
388e345c28
feat(battery)!: Add chosen node for battery
...
battery.c now uses the zmk,battery chosen node to select a battery
sensor. Using the node labeled "BATTERY" is maintained for backwards
compatibility but is now deprecated. Custom boards should switch to
using the chosen node.
# Conflicts:
# app/boards/arm/bluemicro840/bluemicro840_v1.dts
# app/boards/arm/nice60/nice60.dts
# app/boards/arm/nrfmicro/nrfmicro_13.dts
# Conflicts:
# app/boards/arm/bluemicro840/bluemicro840_v1.dts
2022-04-17 11:30:57 -04:00
Nick Winans
d08463e483
fix(ble): Restore manual connection params
2022-04-15 12:25:15 -04:00
Peter Johanson
40cd8da743
fix(usb): Split HID from core USB, logging fix.
...
* Split core USB init from USB HID init.
* Tweak logging to avoid "log loop" causing
spurious buffer messages on startup.
2022-04-13 13:07:59 -04:00
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