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.
4 years ago
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.
4 years ago
Pete Johanson
003db892ad
refactor(core): Extra position state change data struct.
...
* Separate header and data struct for the event.
* Remove duplicate struct in split code.
4 years ago
Pete Johanson
65e476df3e
fix(splits): Send pos notify from dedicated thread
...
* Avoid deadlocks by using a deadicated workqueue for sending
position state notifications from peripherals.
4 years ago
Pete Johanson
c11759bc79
fix(hid): Clear all matching usages, not just first.
...
* If various events get dropped, we can end up with duplicate
codes in our report, so tweak to ensure we look for all matches
and clear them when we have a keycode released.
4 years ago
Pete Johanson
a0c32bb47e
fix(bluetooth): improve LE param update logging
4 years ago
Pete Johanson
a5c39dfa76
fix(ble): Perform GATT notifies from dedicated queue.
...
* Zephyr BT stack frees TX buffers from system workqueue,
and to avoid blocking waiting to allocate, perform notify
from a dedicated queue.
4 years ago
Pete Johanson
4aa78a6f8d
fix(split): Use queue/work for peripheral events.
...
* Avoid corruption by using work to process
peripheral key position events on the main
work thread, like local kscan events are.
* Fixes #221
4 years ago
innovaker
1d18900a99
refactor(core): define usage page as uint16_t
...
Aligns with the HID specification.
Usage page values were sometimes declared as uint8_t and sometimes uint16_t. This commit aligns all instances with the HID specification for consistency.
PR: #521
4 years ago
Okke Formsma
feb0d5b90c
feat(combos): initial implementation
...
closes #45
4 years ago
KemoNine
6345bd5468
Remove setting the animation/effect when setting hsv ; some of the effects like glowing will use the hsv color specified
4 years ago
KemoNine
99f932a47d
(feat) Allow setting underglow color by key press
4 years ago
Pete Johanson
992cee1bac
feat(display): Show layer label in widget.
4 years ago
Pete Johanson
a55b1397c9
feat(keymap): API for retrieving label for a layer
4 years ago
Okke Formsma
319ce30270
chore(behavior): use ZMK_BEHAVIOR_OPAQUE in to-layer behavior
4 years ago
Okke Formsma
fa07ba9d32
refactor(behaviors): use ZMK_BEHAVIOR_OPAQUE and ZMK_BEHAVIOR_TRANSPARENT
...
Use these instead of the magic return values 0 and 1 for
behavior_driver_api return values.
4 years ago
Okke Formsma
caa285852a
refactor(events): return 'ZMK_EV_EVENT_BUBBLE' instead of magic number 0
4 years ago
Pete Johanson
d698847769
fix(power): Fix for 2.4 API changes.
4 years ago
KemoNine
d207c3c30f
(feature) Add &to keycode/behavior ( #489 )
...
feat(behaviors): Add `&to` behavior to switch to a layer.
4 years ago
Nick Winans
43f6d798be
feat(ext-power): Cut power when PM is sleeping
4 years ago
KemoNine
87dbd4ca28
Add uppermost, current layer status widget to oled ( #493 )
...
* Add uppermost, current layer status widget to oled
* Run clang format
* Fixup display widget source includes in CMakeLists
* Update layer widget to only be enabled on primary half of a split keyboard and shuffle some of the options specific to the widget to be enabled via the widget
* Update to latest lvgl/zmk/zephyr ; remove version text from oled per PR
* Fixup file names
* Remove last remenants of the version display text from the oled
* Fixup clang-format
Co-authored-by: KemoNine <mcrosson@kemonine.info>
4 years ago
innovaker
0e71dbc860
refactor(app): replace zmk_keymap_layers_state with zmk_keymap_layers_state_t
...
Aligns with typedef _t convention.
PR: #531
4 years ago
innovaker
87e7c04b00
refactor(app): replace zmk_mod_flags with zmk_mod_flags_t
...
Aligns with typedef _t convention.
PR: #531
4 years ago
innovaker
05b0d185a8
refactor(app): replace zmk_mod with zmk_mod_t
...
Aligns with typedef _t convention.
PR: #531
4 years ago
innovaker
87179698b4
refactor(app): replace zmk_key with zmk_key_t
...
Aligns with typedef _t convention.
PR: #531
4 years ago
Pete Johanson
4db5b169bf
refactor(splits): Ability to override split role.
...
* Move central/peripheral setting to Kconfig.defconfig
files to allow left/right .conf files to override
central/peripheral role for splits.
4 years ago
innovaker
842aa5a842
refactor: replace filename hyphens with underscores
...
Aligns *.h and *.c to underscore naming convention.
These were kept (with warnings) for backwards compatibility with external boards/shields:
- kscan-mock.h
- matrix-transform.h
They should be removed in the future.
PR: #523
4 years ago
innovaker
2233f457b2
chore(display): add header to CMakeLists.txt
...
PR: #533
4 years ago
innovaker
aa8efa7078
chore(display): add header to Kconfig
...
PR: #534
4 years ago
innovaker
0d52915756
chore(display): align status_screen copyright
...
PR: #535
4 years ago
innovaker
89532eadeb
fix(sticky keys): add 0xFF mask to usage_page
...
Aligns unpacking of usage_page with its equivalent line in keycode-state-changed.h
PR: #520
4 years ago
Okke Formsma
b115f16f4c
refactor(sticky keys): use DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) instead of DT_NODE_EXISTS(DT_DRV_INST(0))
4 years ago
Okke Formsma
1c2796d1c9
refactor(sticky keys): use pointer to avoid repetition in store_sticky_key
4 years ago
Okke Formsma
bc8803ba50
refactor(sticky keys): rename ZMK_BHV_STICKY_KEY_POSITION_NOT_USED to ZMK_BHV_STICKY_KEY_POSITION_FREE
4 years ago
Okke Formsma
26af11b390
refactor(sticky keys): rename timer_is_started to timer_started
4 years ago
Nick
ae63ce5ee7
fix(settings): Add missing err handlers on settings_register
4 years ago
Nick
2204a5dce4
refactor(settings): Debounce BLE/endpoint settings saves
4 years ago
Nick Winans
69d48c5715
refactor(settings): Only load used subtrees
4 years ago
Pete Johanson
b5e17e3b0f
feature(display): Blank display on idle/sleep.
...
* Set display blanking, and stop refresh timer for displays
when the activity state goes to idle/sleep, and resume
when transitioning to active again.
4 years ago
Pete Johanson
f7c16dfe69
refactor(power): Extract activity/idle detection.
...
* Refactor power to extract more general purpose
activity detection/events.
* Use activity state to implement PM callback.
4 years ago
Pete Johanson
5ec1eefb2c
refactor(display): Update to new LVGL v7.x API.
...
PR: #467
4 years ago
innovaker
0d4476d148
refactor(app): remove `_gatt_` infixes from BT DIS and BAS services
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
4 years ago
innovaker
f7d9d52221
refactor(app): replace `void` with `const struct device *dev` in ISR CBs
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
4 years ago
innovaker
00ca0d2f1c
refactor(app): replace `struct device *` with `const struct device *`
...
Replaced with RegExp: /(?<!const )(struct device \*)/g
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
4 years ago
innovaker
1411092a7b
refactor(app): replace `driver_data` with `data`
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
4 years ago
innovaker
3d7376d2e5
refactor(app): replace `config_info` with `config`
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
4 years ago
innovaker
bac1f17cf6
refactor(app): replace Zephyr integer types with C99 integer types
...
u8_t → uint8_t
u16_t → uint16_t
u32_t → uint32_t
u64_t → uint64_t
s8_t → int8_t
s16_t → int16_t
s32_t → int32_t
s64_t → int64_t
Prerequisite for #223
See: https://github.com/zephyrproject-rtos/zephyr/releases/tag/zephyr-v2.4.0
PR: #467
4 years ago
KemoNine
2427a4ab33
feature(keymaps): Keymap layer state event, highest layer API
...
* Fire an event w/ layer number, state, and timestamp
when a layer is activated/deactivated.
* Add `zmk_keymap_highest_layer_active()` query.
Co-authored-by: KemoNine <mcrosson@kemonine.info>
4 years ago
Pete Johanson
e6a27b15c1
fix(kscan): Fix building kscan for tests.
4 years ago
Pete Johanson
7ea1892bbb
fix(display): All display updates in work thread.
...
* Make sure all LVGL access is from main work thread.
4 years ago