Caleb Goates
0d5bb100ba
feat(behavior): Add key toggle
3 years ago
Okke Formsma
c5922fae56
refactor(hid): add mask to HID_USAGE_PAGE macro
3 years ago
Okke Formsma
57fca34dc0
refactor(hid): Move hid logic into hid.c
...
Move the logic for picking the correct hid function into hid.c.
3 years ago
Peter Johanson
4f503246a3
refactor(split): cmake split clean up.
...
* Cleaner cmake setup for split build.
3 years ago
Peter Johanson
6539b3ae25
refactor(split): Clean up Kconfig organization.
...
* Seperated configs for split role (central/peripheral)
and transport (BLE only for now).
* Split the configs to align on structure.
3 years ago
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.
3 years ago
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.
3 years ago
Cem Aksoylar
25f89ee6ab
feat(battery): Add Kconfig setting for battery level report interval
3 years ago
Nick Winans
54747a52f9
fix(sleep): use pm_power_state_force for proper device power management
3 years ago
Andrew Rae
b5efc7a7eb
feat(behaviors): Add `global-quick-tap`
3 years ago
Nick Winans
2c7e5b9232
refactor(ble): Use auto phy/conn for split
3 years ago
Joel Spadin
f91472fbe5
fix(battery): Warn if using deprecated battery label
3 years ago
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
3 years ago
Nick Winans
d08463e483
fix(ble): Restore manual connection params
3 years ago
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.
3 years ago
DoctorNefario
20a72263b2
fix(behaviors): Prevent accidental transparent behavior return values.
...
Needed because k_work_reschedule can return positive success codes.
3 years ago
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.
3 years ago
Peter Johanson
af4753cae1
fix(behaviors): Missed refactor for PM callback.
3 years ago
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.
3 years ago
Peter Johanson
5015a88545
fix(split): Proper role checking in BT callbacks.
...
* Properly react to events only for connections
with the correct role.
3 years ago
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.
3 years ago
Peter Johanson
9203ae217b
fix(activity): Use proper PM state for sleep.
3 years ago
Peter Johanson
94ac100b6b
refactor: Move to Zephyr v3.0.0 + ZMK fixes.
3 years ago
Peter Johanson
4df83a9c0d
refactor: Move away from deprecated PM callback.
3 years ago
Peter Johanson
2c5d5fde51
refactor: `k_work_queue` API updates.
3 years ago
Peter Johanson
79ab60dfe5
refactor: Move to new PM API/Kconfig settings.
3 years ago
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
3 years ago
Peter Johanson
40d8470664
refactor: Handle HID macro/API changes in Zephyr.
3 years ago
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
3 years ago
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.
3 years ago
Kurtis Lew
32ebe2cfb5
feat(behaviors): Add Tap-Dance behavior
3 years ago
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
3 years ago
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
3 years ago
Peter Johanson
e2a90974e3
fix(lighting): Proper split backlight support.
...
Ensure the backlight behavior is run globally.
3 years ago
Alessandro Bortolin
13a4515300
feat(backlight): add command to cycle brightness
3 years ago
Alessandro Bortolin
2c0fe3934d
feat(backlight): add tests
3 years ago
Alessandro Bortolin
ce843825e8
refactor(backlight): code cleanup
3 years ago
ReFil
5614a8bb80
feat(backlight): initial split support
3 years ago
Alessandro Bortolin
85b2d30bd5
feat(lighting): add backlight behavior
3 years ago
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.
3 years ago
Peter Johanson
b8700eaaa1
fix(split): Fix an off-by-one error in split svc.
...
* Properly check end of behavior device string for null terminator.
3 years ago
Peter Johanson
dbefe92ea0
fix(split): Slightly improved logging on peripherals.
3 years ago
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.
3 years ago
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.
3 years ago
Peter Johanson
ce3471d4fe
fix(split): Add queue for running remote behaviors
3 years ago
Peter Johanson
d486304f79
fix(underglow): Handle cycling effects on splits.
...
* Convert relative effect cycling to absolute effect selection.
3 years ago
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.
3 years ago
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.
3 years ago
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.
3 years ago
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
3 years ago