Commit graph

169 commits

Author SHA1 Message Date
Will Schaller
d0e6abef94
Merge pimoroni branch 2022-03-20 13:34:32 +01:00
Alessandro Bortolin
13a4515300 feat(backlight): add command to cycle brightness 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
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
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
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
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
Cedric VINCENT
e907e03271 feat(pim447): Add support for a lot of new driver properties. 2021-11-21 11:03:58 +01:00
Peter Johanson
f8018b22d0 fix(hid): Basic consumer code fixes for signed logical max.
* Logical max values are signed, so for the report descriptor, use a two
  byte logical max descriptor item to impart proper 0xFF max logical
  value.
2021-11-09 10:38:49 -05:00
Alexander Krikun
5021a842cd clang-format 2021-11-02 01:04:38 +03:00
krikun98
775117d590 Cleanup and acceleration fixes 2021-11-02 01:01:27 +03:00
krikun98
30581f7207 Added dedicated mouse work queue option 2021-11-02 01:01:23 +03:00
Okke Formsma
35eef63fa9 feat(mouse keys): add events, smoothing and acceleration 2021-11-02 00:59:03 +03:00
Okke Formsma
c55bd0fa27 Simplify binary arithmetic 2021-11-02 00:59:02 +03:00
krikun98
2d3f0e1d92 Report refactor (added macros) 2021-11-02 00:59:00 +03:00
krikun98
8e6fbdcc25 Reverted mouse buttons 9-16 2021-11-02 00:57:49 +03:00
krikun98
fdcd7241e3 Mouse movement coordinate signedness consistency 2021-11-02 00:57:48 +03:00
krikun98
33518ef5c9 Review edits: macro, event override fix, cosmetics 2021-11-02 00:57:47 +03:00
krikun98
a29ee0033a Added new mouse movement macros 2021-11-02 00:57:46 +03:00
krikun98
b27b8e35ec clang-format 2021-11-02 00:56:28 +03:00
Dmitry Tsykunov
5083b31296 Add mouse behaviour documentation 2021-11-02 00:54:40 +03:00
Dmitry Tsykunov
3eebe8657b Continuous mouse movement prototype 2021-11-02 00:54:38 +03:00
Dmitry Tsykunov
400e24608b Add mouse movement event 2021-11-02 00:54:37 +03:00
Dmitry Tsykunov
aefbd5edc9 Mouse-related behaviours 2021-11-02 00:54:35 +03:00
Alexander Krikun
e585af2aa1 Bluetooth tuning, mouse wheel and movement backend 2021-11-02 00:54:34 +03:00
Alexander Krikun
9b09974734 Fine-tuning report, 16 buttons 2021-11-02 00:54:32 +03:00
Alexander Krikun
d8d8b96992 Preliminary work for mouse click 2021-11-02 00:54:31 +03: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
2128b2b55f refactor(display): Output/layer/battery thread safety.
* Submit widget updates to display queue.
* Use mutex to control access to shared state for widgets.
2021-09-25 17:17:04 -04:00
Peter Johanson
063d98e3df feat(display): Optional dedicated work queue.
* Add new Kconfig settingsx to allow selecting system or dedicated
  work queue for performing UI updates.
* Allow UI updates to not block other system tasks when display is
  updating, especially important for e-ink displays.
2021-09-25 17:17:04 -04:00
Peter Johanson
d05d7ec2d2 feat(endpoints): Add endpoint select changed event. 2021-08-03 00:19:05 -04:00
Dom H
4c1a71551b feat(keys): Add LSHIFT and RSHIFT aliases
Using LSHIFT or RSHIFT instead of LSHFT or RSHFT was a common error.
2021-06-08 20:57:40 -04:00
JP Bonn
c643f1cd96 added battery.h, last_state_of_charge to uint8_t 2021-03-10 18:07:18 -05:00
JP Bonn
df4ec51f96 only send zmk_battery_state_changed on change 2021-03-10 18:07:18 -05:00
Pete Johanson
2af794eed3 feat(underglow): Convert HSB changes to absolute.
* Public type for HSB led color.
* New API for calculating "next" HSB based on current
  state.
* Update behavior to convert the increment/decrement
  commands to absolute command as well.
2021-02-09 01:27:50 -05:00
Pete Johanson
e6f168d6df refactor(behaviors): Convert state dependent params.
* Allow each behavior to map a relative binding, e.g. "toggle",
  to an absolute one, e.g. "on", before being invoked.
2021-02-09 01:27:50 -05:00
Pete Johanson
bb2c478af9 refactor(rgb): Expose explicit on/off command/API. 2021-02-09 01:27:50 -05:00
Okke Formsma
4e20bf5de1 refactor(behaviors): simplify hold-taps by not using _TRANSFORM_ENTRY 2021-02-02 00:43:26 -05:00
Okke Formsma
84d19fe79b refactor(behaviors): factor out multiple uses of _TRANSFORM_ENTRY 2021-02-02 00:43:26 -05:00
Okke Formsma
7b7701ae90 feature(modifiers): add explicit modifiers
this makes LS(LEFT_CONTROL) work as if shift and control were both
pressed explicitly. Previously, the left shift would have been released
as soon as another key was pressed. The implicit behavior is useful in
case of LS(NUMBER_1) when rolling over to other keys.

Also see #361.
2021-01-24 23:30:41 -05:00
Okke Formsma
0c30b49063 refactor(modifiers): define is_mods function 2021-01-24 23:30:41 -05:00
Ally Parker
a4aaa73f06 feat: Add WPM calculator and display widget 2021-01-23 18:38:31 -05:00
Okke Formsma
5eeb310b2f feat(grave-escape): implement grave-escape
closes #85
2021-01-22 19:27:18 -05:00
Pete Johanson
3368a81057 refactor(core): Combine is_ and cast_ event functions.
* Use a single `as_foo` generated function to conditionally
  return a certain event type from a generic `zmk_event_t*`
  pointer.
2021-01-20 07:06:11 -05:00
Pete Johanson
3fe2acc2d1 refactor(core): Extra event payloads to own types, refactor API.
* Make it easier to use *just* event payloads by defining the data,
  and then having event manager macros generate "wrapper structs"
* Improve is_*/cast_* APIs to hide details of full event struct.
* Create `zmk_event_t` typedef to pass to event handlers.
* Bring event names inline w/ consistent `zmk_` prefix.
2021-01-20 07:06:11 -05:00