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
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.
2021-01-20 07:06:11 -05:00
Pete Johanson
95acbd8859
fix(shields): Unflip left Microdox OLED.
2021-01-19 15:57:26 -05:00
innovaker
5978990e6d
chore(core): replace Pete Johanson
with The ZMK Contributors
...
Does not include boards and shields.
2021-01-16 11:30:37 -05:00
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.
2021-01-15 13:50:36 -05:00
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.
2021-01-15 13:50:36 -05:00
Pete Johanson
a0c32bb47e
fix(bluetooth): improve LE param update logging
2021-01-15 13:50:36 -05:00
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.
2021-01-15 13:50:36 -05:00
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
2021-01-15 13:50:36 -05:00
Pete Johanson
969e5568af
fix(boards): Define but don't enable uart0.
...
* Set pro-micro TX/RX pins, but don't enable the UART
by default.
2021-01-15 01:51:44 -05:00
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
2021-01-15 01:48:39 -05:00
Okke Formsma
feb0d5b90c
feat(combos): initial implementation
...
closes #45
2021-01-13 21:07:41 -05:00
Nick Winans
002a89765f
refactor(Kconfig): Set USB default based on hardware capabilities
...
Removes the USB default under every split right half in favor of a default based on hardware capabilities in the main app Kconfig.
2021-01-08 16:51:50 -05:00
KemoNine
6345bd5468
Remove setting the animation/effect when setting hsv ; some of the effects like glowing will use the hsv color specified
2021-01-08 16:08:13 -05:00
KemoNine
99f932a47d
(feat) Allow setting underglow color by key press
2021-01-08 16:08:13 -05:00
Nick Winans
97ed0cc733
feat(core): Add USB logging Kconfig option
2021-01-08 13:03:39 -05:00
KemoNine
5880a284c1
feat(tg4x): Reconcile with official keymap and tidy-up
2021-01-08 10:14:43 +00:00
KemoNine
28bec8541b
style(tg4x): Convert Kconfig spaces to tabs
2021-01-08 10:14:43 +00:00
KemoNine
7fd8561b45
fix(tg4x): Add tg4x.conf to mirror other shield setups
2021-01-08 10:14:43 +00:00
innovaker
7fc28328d0
refactor(tg4x): Cleanup tg4x overlay
...
Tidies pin definitions and map.
2021-01-08 10:14:43 +00:00
innovaker
de6ce05391
chore(tg4x): fix copyright header
2021-01-08 10:14:43 +00:00
KemoNine
185ff462d6
docs(tg4x): Add readme for tg4x
2021-01-08 10:14:43 +00:00
KemoNine
cd8567071b
fix(tg4x): Fix tg4x keyboard name in Kconfig
2021-01-08 10:14:43 +00:00
KemoNine
3e4f2a3dc3
feat(tg4x): Add underglow support for tg4x + nice_nano
2021-01-08 10:14:43 +00:00
innovaker
561e535a58
refactor(shields): standardize README.md filenames
...
Renames instances of `readme.md` to `README.md` so that it's easily noticed.
PR: #561
2021-01-07 00:34:04 -05:00
innovaker
f17584ca0e
chore: standardize # style headers
...
Changes made with regex plus some manual tweaks.
Find:
/(?:(?<!#!\/bin\/sh\n)(?:^#\n))*^#.*?[Cc]opyright.*?(\d{4}) *([0-9A-z,_\- ]+).*?\n(?:^#\n)*^#.*?SPDX-License-Identifier:? *(.+) *?\n(?:^#\n)*/gm
Replace:
# Copyright (c) $1 $2
# SPDX-License-Identifier: $3
PR: #564
2021-01-06 17:00:44 -05:00
KingCoinless
5c11962d98
feat(shields): add helix shield
...
PR: #429
2021-01-05 18:56:47 +00:00
Nick Winans
e5b1f1e1be
fix(shield): BFO9000 uses USB on right
2021-01-04 14:08:00 -05:00
Pete Johanson
992cee1bac
feat(display): Show layer label in widget.
2021-01-04 13:02:38 -05:00
Pete Johanson
a55b1397c9
feat(keymap): API for retrieving label for a layer
2021-01-04 13:02:38 -05:00
pbz
dcd665999a
feat(shields): add bfo9000 shield
...
PR: #472
2021-01-02 18:52:50 +00:00
Okke Formsma
319ce30270
chore(behavior): use ZMK_BEHAVIOR_OPAQUE in to-layer behavior
2021-01-02 08:08:51 -05:00
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.
2021-01-01 23:07:54 -05:00
Okke Formsma
caa285852a
refactor(events): return 'ZMK_EV_EVENT_BUBBLE' instead of magic number 0
2021-01-01 23:07:54 -05:00
innovaker
5a72662898
chore: standardize C style headers
...
Changes made with regex plus some manual tweaks.
Find:
/^\/\*.*\n(?:^\*.*\n)*^.*\*.*?[Cc]opyright.*?(\d{4}) *([0-9A-z,_\- ]+).*?\n(?:^.*\*.*\n)*^.*\*.*?SPDX-License-Identifier:? *(.+) *?\n(?:^.*\*.*\n)*.*\*\//gm
Replace:
/*
* Copyright (c) $1 $2
*
* SPDX-License-Identifier: $3
*/
PR: #565
2021-01-01 23:06:41 -05:00
innovaker
61893e453b
refactor(app): format with prettier ( #563 )
...
prettier --write .
PR: #563
2021-01-01 22:55:52 -05:00
KemoNine
a3ac0cb5be
feat(shields): add ws2812 underglow support to lily58 (nice_nano)
2021-01-01 21:29:22 +00:00
Mango The Fourth
5752b4fbda
feat(shields): add eek shield
...
PR: #529
2021-01-01 14:33:19 +00:00
Pete Johanson
39490552f2
feat(boards): Add BDN9 Rev2 board.
...
* Onboard stm32f072.
* 3 possible encoder positions.
* Underglow/per-key not yet support.
2020-12-31 14:46:15 -05:00
Pete Johanson
5072590af5
fix(sensors): Use status filter on sensors node.
2020-12-31 14:46:15 -05:00
Pete Johanson
d698847769
fix(power): Fix for 2.4 API changes.
2020-12-30 09:29:57 -05:00
Pete Johanson
1c822754c0
fix(west): Restore atmel west module.
2020-12-29 23:30:30 -05:00
KemoNine
d207c3c30f
(feature) Add &to keycode/behavior ( #489 )
...
feat(behaviors): Add `&to` behavior to switch to a layer.
2020-12-29 11:57:49 -05:00
Nick Winans
43f6d798be
feat(ext-power): Cut power when PM is sleeping
2020-12-29 08:30:57 -05:00
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>
2020-12-28 20:17:32 -05:00
innovaker
0e71dbc860
refactor(app): replace zmk_keymap_layers_state with zmk_keymap_layers_state_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
innovaker
87e7c04b00
refactor(app): replace zmk_mod_flags with zmk_mod_flags_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
innovaker
05b0d185a8
refactor(app): replace zmk_mod with zmk_mod_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
innovaker
87179698b4
refactor(app): replace zmk_key with zmk_key_t
...
Aligns with typedef _t convention.
PR: #531
2020-12-28 10:20:12 -05:00
Pete Johanson
4fc17e0b3a
fix(shields): Enable USB by default on right side.
...
* Ensures USB power detection for sleep/charging
is properly detected on the right side by deafult.
2020-12-28 10:16:24 -05:00
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.
2020-12-28 10:16:24 -05:00
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
2020-12-28 01:15:35 -05:00
Okke Formsma
6927abee6e
chore(tests): remove useless &cp test
2020-12-28 00:39:53 -05:00
innovaker
2233f457b2
chore(display): add header to CMakeLists.txt
...
PR: #533
2020-12-21 23:42:55 -05:00
innovaker
f8e43932ba
refactor(app): remove zmk_action
...
zmk_action isn't referenced anywhere.
PR: #530
2020-12-21 23:34:40 -05:00
innovaker
aa8efa7078
chore(display): add header to Kconfig
...
PR: #534
2020-12-21 23:30:25 -05:00
innovaker
1f5680f0df
refactor(app): remove handlers.h
...
handlers.h isn't referenced elsewhere.
PR: #526
2020-12-21 23:26:52 -05:00
innovaker
0d52915756
chore(display): align status_screen copyright
...
PR: #535
2020-12-21 23:15:53 -05:00
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
2020-12-17 16:52:15 -05:00
innovaker
e2aef89d99
refactor(endpoints): rename usage_report parameter to usage_page
...
Aligns zmk_endpoints_send_report function declaration with its definition.
PR: #522
2020-12-17 16:40:59 -05:00
KemoNine
565a72bf95
feat(shields): add tidbit and tidbit_19key shields
2020-12-17 10:57:06 +00:00
Okke Formsma
b115f16f4c
refactor(sticky keys): use DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) instead of DT_NODE_EXISTS(DT_DRV_INST(0))
2020-12-15 13:59:03 -05:00
Okke Formsma
1c2796d1c9
refactor(sticky keys): use pointer to avoid repetition in store_sticky_key
2020-12-15 13:59:03 -05:00
Okke Formsma
bc8803ba50
refactor(sticky keys): rename ZMK_BHV_STICKY_KEY_POSITION_NOT_USED to ZMK_BHV_STICKY_KEY_POSITION_FREE
2020-12-15 13:59:03 -05:00
Okke Formsma
26af11b390
refactor(sticky keys): rename timer_is_started to timer_started
2020-12-15 13:59:03 -05:00
Nick
ae63ce5ee7
fix(settings): Add missing err handlers on settings_register
2020-12-14 22:46:49 -05:00
Nick
2204a5dce4
refactor(settings): Debounce BLE/endpoint settings saves
2020-12-14 22:46:49 -05:00
Nick Winans
69d48c5715
refactor(settings): Only load used subtrees
2020-12-14 22:46:49 -05:00
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.
2020-12-14 15:31:10 -05:00
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.
2020-12-14 15:31:10 -05:00
innovaker
95a2927098
fix(tests): convert ZMK_CONFIG to an absolute path
...
Zephyr 2.4.0 requires ...
set(DTS_ROOT)
list(APPEND DTS_ROOT)
... to use absolute paths.
And therefore ZMK_CONFIG as well.
See: zephyrproject-rtos/zephyr#28180
PR: #467
2020-12-14 12:41:25 -05:00
Pete Johanson
5ec1eefb2c
refactor(display): Update to new LVGL v7.x API.
...
PR: #467
2020-12-14 12:41:25 -05:00
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
2020-12-14 12:41:25 -05:00
innovaker
250cc07749
refactor(app): replace LVGL_VER_RES
with LVGL_HOR_VER_MAX
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
edba0d44a3
refactor(app): replace LVGL_HOR_RES
with LVGL_HOR_RES_MAX
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
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
2020-12-14 12:41:25 -05:00
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
2020-12-14 12:41:25 -05:00
innovaker
1411092a7b
refactor(app): replace driver_data
with data
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
33c959d031
refactor(app): replace driver_api
with api
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
3d7376d2e5
refactor(app): replace config_info
with config
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
090b5d4c13
feat(app): upgrade to Zephyr v2.4.0 + ZMK fixes
...
PR: #467
2020-12-14 12:41:25 -05:00
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
2020-12-14 12:41:25 -05:00
Okke Formsma
b4c0967645
fix(west) test command should not swallow errors.
2020-12-10 11:41:42 -05:00
Joel Spadin
77c16b020e
improvement: upgrade default keymaps
...
Ran all the default keymaps through the keymap upgrader and manually adjusted
alignment.
2020-12-10 12:05:21 +00:00
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>
2020-12-09 09:35:57 -05:00
Pete Johanson
e6a27b15c1
fix(kscan): Fix building kscan for tests.
2020-12-08 22:20:12 -05:00
ReFil
b0c525df72
feat(shields): add CRBN shield
...
Co-authored-by: innovaker <66737976+innovaker@users.noreply.github.com>
PR: #483
2020-12-07 16:49:37 +00:00
Pete Johanson
7ea1892bbb
fix(display): All display updates in work thread.
...
* Make sure all LVGL access is from main work thread.
2020-12-06 22:47:21 -05:00
Pete Johanson
0d80220e14
fix(ble): Raise profile events from work thread.
...
* Make sure we don't raise events from BLE
host thread.
2020-12-06 22:47:21 -05:00
Okke Formsma
e00eceb508
fix(sticky keys): fix tapping-sticky-keys bug.
...
Sticky keys should be cleared when they were tapped in rapid succession before the timer runs out.
2020-12-06 00:33:20 -05:00
Okke Formsma
f86e0fff14
fix(sticky keys): always clear sticky key when releasing the behavior
2020-12-06 00:33:20 -05:00
Okke Formsma
2ba16c2f3d
fix(sticky keys): use correct timestamp when clearing sticky key in timer
2020-12-06 00:33:20 -05:00
Okke Formsma
37946ff57b
fix(sticky keys): simplify timer management
2020-12-06 00:33:20 -05:00
innovaker
a5bddcedbe
build(west): migrate to zmkfirmware/zephyr fork
...
Replaces `petejohanson` with `zmkfirmware` for ZMK's fork of Zephyr (branch `zmk-v2.3.0-with-fixes`)
PR: #468
2020-12-04 17:00:38 -05:00
innovaker
82625c6bb5
build(cmake): remove unnecessary SYSCALL_INCLUDE_DIRS for drivers
...
PR: #406
2020-12-04 16:53:52 -05:00
Pete Johanson
ca38894e07
fix(drivers): Remove conditional from directories.
2020-12-04 16:25:32 -05:00
innovaker
8d9ae1fdf3
refactor: Align drivers with Zephyr file system conventions
...
PR: #400
2020-12-03 21:06:01 -05:00
Nick
177b28f01d
refactor(settings): Add Kconfig option for settings debounce
2020-12-02 19:54:48 -05:00
Pete Johanson
8b91918352
refactor(shields): Cradio to use interrupts now.
2020-12-02 16:46:05 -05:00