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
Peter Johanson
0b0b49d626
fix(split): Properly rediscover peripherals.
...
* Handle disconnects of peripherals, and properly clean up
and resume discovering for when the peripheral re-appears.
2021-11-04 22:31:56 -04:00
jmding8
73fd4b9230
fix(behavior): Properly break in decision switch statement.
...
Co-authored-by: jding <jding@roblox.com>
2021-11-01 13:51:12 -04:00
jmding8
19ee7849f8
feat(behaviors) Required keys for tap-hold behaviors
...
* Add optional `hold-trigger-key-positions` hold-tap configuration
* Leverage configuration for decision making around when to trigger
hold decision in hold-taps.
* Add docs for new configuration.
* Tests for the new config/decision logic.
2021-11-01 12:37:20 -04:00
Jonathan Rascher
e3eb77dfc6
refactor(combos): Use ZMK_KEYMAP_EXTRACT_BINDING
...
Now that PR #506 is merged, we can address this TODO.
2021-10-20 23:36:31 -04:00
Richard Kjerstadius
a774ce8555
fix(display): Increase char buffer size to fit all symbols
...
Recent refactoring of the font handling seems to have broken the display
of the last symbol of the output status widget. From my analysis the
last symbol is truncated because the buffer simply is too small.
Increasing the buffer size to 9 fits all three possible symbols.
2021-10-12 12:00:21 -04:00
Nick Winans
f23f427cae
fix(underglow): Run clang-format
2021-10-10 17:43:57 -07:00
Simon Malinge
c5b8dd85fd
feat(underglow): Add support for configurable min/max brightness
...
Co-authored-by: jrhrsmit <jasper.770@gmail.com>
2021-10-10 17:43:57 -07: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
3e6a3758ed
refactor(display): Saner font selection/defaults.
...
* Only select fonts for the default built in status screen
* Leverage theme default fonts, instead of hardcoding theme
details in each component.
2021-09-25 19:43:20 -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
Xudong Zheng
212a05feb3
fix(hog): use OR instead of AND for bitmap
2021-09-23 20:47:40 -04:00
Peter Johanson
a7908a94de
fix(hog): encrypt perm for HID report map/ref.
...
* Workaround for ensuring macOS pairing happens early enough,
for their stack, we require encryption for the hids report map and
report ref characteristics as well, to trigger pairing ealier in the
connection process for macOS.
2021-09-18 15:43:26 -04:00
Peter Johanson
e491c282e7
fix(display): Add proper LVGL label dep.
2021-08-27 23:06:28 -04:00
Peter Johanson
08687b1709
fix(display): Update output status on endpoint selection change.
2021-08-03 00:19:05 -04:00
Peter Johanson
d05d7ec2d2
feat(endpoints): Add endpoint select changed event.
2021-08-03 00:19:05 -04:00
Peter Johanson
9d34cf561e
fix(usb): USB state changes in system thhread.
...
* Use a `k_work` to send usb status events from the system
workqueue thread, not the USB work thread.
2021-08-03 00:19:05 -04:00
Nick Winans
1cafbd8069
fix(power): Manually trigger pm_low_power_devices() before sleep
2021-08-02 21:48:42 -04:00
Nick Winans
2b9deb824b
feat(power): Update device power management Kconfig
2021-08-02 21:48:42 -04:00
Peter Johanson
65ff995033
fix(display): Avoid fault w/ LVGL API usage.
...
* Increment the tick from within the ISR itself.
* Don't call task handler until in the display callback.
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Pete Johanson
2a69f31eb0
refactor(core): Move away from deprecated DT API.
...
* Move to `DEVICE_DT_INST_DEFINE` everywhere.
See: https://docs.zephyrproject.org/2.5.0/releases/release-notes-2.5.html#deprecated-in-this-release
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
innovaker
ad981c3bbd
refactor(core): update power API to Zephyr v2.5.0
...
See: https://github.com/zephyrproject-rtos/zephyr/pull/29410
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Okke Formsma
efa497c69b
fix(behaviors): Fix timing of delayed hold-tap trigger
...
A hold-tap timer event would be triggered too soon if the hold-tap
was delayed for longer than its tapping-term. This may cause
accidental hold behavior when the correct behavior would be tap.
By queuing the timer event instead of executing it immediately,
other delayed events get a chance to be processed properly.
2021-06-13 10:44:18 -04:00
Jonathan Rascher
4e69a32103
fix(combos): Check each combo key, not just last
...
The current combo completion check only makes sure the last key in the
combo is set. This works when the combo is typed correctly initially, or
when reraising events in a combo of length two. However, it fails for
longer combos since the last event in pressed_keys might be set, but the
first (or subsequent) event in pressed_keys can be NULL thanks to
release_pressed_keys.
Also added a regression test.
2021-06-08 20:35:58 -04:00
Joel Spadin
0a9efbf85d
fix(ble): Ignore out of range profiles
...
Don't allow selecting a BLE profile that is out of range to avoid
reading/writing past the end of the profiles array.
2021-06-08 20:33:43 -04:00
Okke Formsma
de4979bf58
fix(behaviors): Fix sticky keys quick-release for normal keypresses
...
Quick release for sticky keys failed for non-layer keys. The sticky key
was released just before the key that was supposed to be modified was
handled.
The issue was caused by an error in the sticky key logic, which released
the sticky key before handling the key up event.
Fixes #696 .
2021-05-09 07:52:41 -04:00
Okke Formsma
0df7110058
fix(combos): Fix stuck keys when pressing long combos.
...
To properly retrigger hold-taps when a combo is not activated, some
position down events are reraised instead of released. The corresponding
position up events were never reraised, causing a potential stuck key.
2021-03-11 16:23:45 -05:00
Okke Formsma
8ebe0cd0c8
refactor(core): make the event manager a bit easier to read
2021-03-10 20:12:23 -05:00
Okke Formsma
c01243d1c6
fix(logging): remove unnecessary newline
2021-03-10 18:08:22 -05:00
JP Bonn
c643f1cd96
added battery.h, last_state_of_charge to uint8_t
2021-03-10 18:07:18 -05:00
JP Bonn
b8a8ecd59d
fixed order of setting state_of_charge
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
Okke Formsma
32008825fe
fix(behaviors): Add missing hold-tap trigger
...
A hold-tap trigger was missing in the scenario where a hold-tap behavior
was queued for a while and it's timer should've run out.
2021-02-27 09:20:20 -05:00
Okke Formsma
0c1940bb79
feature(hold-tap): no-hold-flash for retro taps
...
This is an improvement on retro-tap, solving the 'flashing hold' issue
users people experience.
When the tapping-term expires, the hold key is normally pressed. When
retro-tap is enabled, this is undesirable; only an interrupted hold-tap
should trigger the hold behavior.
This change disables the hold behavior for the 'STATUS_HOLD_TIMER'
state when retro-tap is enabled, and makes sure the
'STATUS_HOLD_INTERRUPT' state will be triggered when appropriate.
2021-02-24 07:24:27 -05:00
Okke Formsma
89ed816c67
feature(hold-tap): Retro tapping
2021-02-24 07:24:27 -05:00
Okke Formsma
62ae157c0b
refactor(hold-tap): improve switch statements
2021-02-24 07:24:27 -05:00
Okke Formsma
9c4c266b17
refactor(hold-tap): pretty print decision_moment
2021-02-24 07:24:27 -05:00
Okke Formsma
0ebf440de8
refactor(hold-tap): create press_binding and release_binding functions
2021-02-24 07:24:27 -05:00
Okke Formsma
abc60fc7cb
refactor(hold-tap): split hold state into interrupt and timer
2021-02-24 07:24:27 -05:00
Okke Formsma
200c6cabea
refactor(hold-tap): use enum for hold-tap status
2021-02-24 07:24:27 -05:00
Okke Formsma
6b7026cdd1
refactor(hold-tap): simplify flavor enum
2021-02-24 07:24:27 -05:00
Nick Winans
57661362ea
refactor(ext-power): Add init-delay-ms option
...
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2021-02-16 14:51:32 -05:00
Nick Winans
b43fb8502e
fix(ext-power): Initialize as soon as settings are available
2021-02-16 14:51:32 -05:00
Pete Johanson
ff7891c097
fix(display): Check for display in idle handler.
...
* Closes #679
2021-02-16 14:21:46 -05:00
Okke Formsma
af9d6e9b05
style(hold-tap)!: Write hold-tap params with dashes
...
tapping_term_ms -> tapping-term-ms
quick_tap_ms -> quick-tap-ms
The old style works, although it's deprecated.
2021-02-10 07:55:12 -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
Pete Johanson
b84d29c384
refactor(core): Use /omit-if-no-ref/ for behaviors.
...
* Use lesser-known DT features to skip behaviors not referenced
in the user keymap
* Update the behaviors to skip code if no nodes found.
* Remove some empty config/data structs where unused in
behaviors.
2021-02-04 00:52:25 -05:00
KemoNine
cd503ed17b
Feat combo layers ( #661 )
...
feat(combos): add layer filtering
Co-authored-by: KemoNine <mcrosson@kemonine.info>
2021-02-03 23:33:09 -05:00
Okke Formsma
9a7908b632
behaviors(hold-tap): Implement quick_tap_ms (TAPPING_FORCE_HOLD)
...
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.
This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.
Implements #288 .
2021-02-02 15:28:16 -05:00
Nick Winans
82173f354e
fix(core): Assert BLE device name is correct length
2021-02-02 00:59:17 -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
Jeff Rizzo
4f040fecdf
Add a missing log_strdup()
2021-01-30 00:31:07 -05:00
Okke Formsma
c925cf02dd
feature(sticky_keys): add quick-release
...
when quick-release is enabled, the sticky key is released immediately after another key is pressed
2021-01-28 17:10:04 -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
Okke Formsma
df4a5c8613
refactor(hid_listener): pass event struct instead of parameters
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
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
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
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
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
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
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
Pete Johanson
d698847769
fix(power): Fix for 2.4 API changes.
2020-12-30 09:29:57 -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
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
innovaker
2233f457b2
chore(display): add header to CMakeLists.txt
...
PR: #533
2020-12-21 23:42:55 -05:00
innovaker
aa8efa7078
chore(display): add header to Kconfig
...
PR: #534
2020-12-21 23:30:25 -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
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
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
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
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
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
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
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
Nick
177b28f01d
refactor(settings): Add Kconfig option for settings debounce
2020-12-02 19:54:48 -05:00
Pete Johanson
b3f3362b50
feat(display): Initial widget/status screen work.
...
* Battery and output status widgets
* Built in status screen combining them.
* Ability to define a custom status screen factory
function.
2020-12-02 16:04:56 -05:00
Pete Johanson
d5ea426975
refactor(battery): Fire event on battery event.
2020-12-02 16:04:56 -05:00
innovaker
7b3a55cf50
refactor(ble): silence warning `auth_passkey_display` not used
...
Silences the following build warning ...
../src/ble.c:407:13: warning: 'auth_passkey_display' defined but not used [-Wunused-function]
407 | static void auth_passkey_display(struct bt_conn *conn, unsigned int passkey) {
2020-12-01 07:21:45 -05:00
Okke Formsma
3bf770a364
bugfix(sticky keys): release active sticky keys properly
...
see https://github.com/zmkfirmware/zmk/issues/445
2020-11-29 20:16:51 -05:00
Nick
093719a3b8
feat: Add settings support for external power
...
fix: clang-format and setting state variable
fix: Fix startup settings configuration
fix(ext_power): Add static to state
fix(ext_power): Set default settings value
Use driver data status instead of global file state
2020-11-28 01:44:35 -05:00
Okke Formsma
76a6d7b4c5
feat(sticky keys): initial implementation
2020-11-28 00:58:24 -05:00
Okke Formsma
bee45f9b3a
feat(events): add timestamp to keycode_state_changed and sensor_event
...
These timestamps are necessary to correctly deal with delayed events due to hold-tap shenanigans.
2020-11-28 00:58:24 -05:00
Nick
248b360f47
fix(ug): Start tick without settings state available
2020-11-23 12:42:27 -05:00
Nick
076fcc1f70
fix(underglow): Fix error on release of rgb_ug
2020-11-22 21:23:29 -05:00
Nick
a1d3230eef
feat(underglow): RGB toggle controls ext_power
...
fix(ug): Don't return if finding ext power fails
fix(ug): Move ext_power to a static variable
Add #if defs
2020-11-22 21:23:29 -05:00
innovaker
ae924b3594
refactor(hid): replace `kp_report` with `keyboard_report`
...
Aligns with other existing conventions.
2020-11-22 10:04:35 -05:00
innovaker
3ac1a11a37
refactor: change `keypad` to `keyboard`
...
The application usage used by report 1 is `HID_USAGE_GD_KEYBOARD`. Moreover, the `keys` usage page (0x07) that primarily feeds into this report is predominantly keyboard codes. The rest of the system should align with this naming convention.
2020-11-21 15:52:16 -05:00
Okke Formsma
e48a6b659c
fix momentary layer bug when top layer is not &trans
...
Key release events released keys on the wrong layer if the 'top layer'
was not &trans above the &mo key.
base <&mo 1>
layer 1 <&kp B>
This was caused by overwriting
`zmk_keymap_active_behavior_layer[position]` after the &mo key was
handled.
2020-11-16 17:19:27 -05:00
Xudong Zheng
51ca4fbc18
Fix connection to incorrect peripheral
2020-11-11 13:16:31 -05:00
Pete Johanson
7d16186b7a
fix(ble): Remove unpair combo code.
...
* Favor the settings reset images for this.
2020-11-10 14:53:03 -05:00
innovaker
348a44a8a3
refactor(app): Remove obsolete include's of `hid_usage_pages.h`
...
This should've been done in eff1b8223b .
2020-11-10 14:22:53 -05:00
Pete Johanson
eff1b8223b
refactor(keys): Unify usage page.
...
* Remove need for separate `&cp` behavior, but
keep it for now for backward compat.
* Refactor sensor inc/dec as well.
2020-11-05 14:55:40 -05:00
innovaker
d748d8a749
refactor: Replace superseded key names
...
Replace deprecated key names (LCTL, NUM_0, NUM_1).
Replace abbreviated names with fully qualified names (LCTL, RGUI, NUM_0, NUM_1).
Follow-up to #21 .
2020-11-03 23:50:54 -05:00
innovaker
e925319e4c
refactor(hid): Replace deprecated HID usage page references
...
Deprecate `USAGE_KEYPAD` and replace with `HID_USAGE_KEY`.
Deprecate `USAGE_CONSUMER` and replace with `HID_USAGE_CONSUMER`.
Closes #217 .
2020-11-03 23:50:54 -05:00
Nick
1af4221908
feat(underglow): Debounce state settings save
2020-11-03 22:08:20 -05:00
Pete Johanson
32e7159373
refactor(hid): Mod defines in dedicated header.
2020-11-03 00:21:20 -05:00
Okke Formsma
4f258efbf1
initial implementation for modifiers
...
https://github.com/zmkfirmware/zmk/issues/86
2020-11-03 00:19:37 -05:00
Nick Winans
89b8bfc95d
fix(battery): Only log if finding battery device failed
...
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2020-11-01 23:00:54 -05:00
Nick
953de71646
feat(battery): Add BAS GATT reporting
2020-11-01 23:00:54 -05:00
Pete Johanson
2d31e1d05f
Merge pull request #269 from joelspadin/endpoint-selection
...
feat: only send HID reports to one endpoint
2020-10-31 00:09:47 -04:00
Joel Spadin
821f054071
feat(endpoints): remove redundant connection check
2020-10-28 18:15:05 -05:00
Joel Spadin
440d09fd45
feat(endpoints): simplify behavior constants
2020-10-28 18:15:05 -05:00
Joel Spadin
2fe1fbb526
feat(endpoints): rename behavior to outputs
...
"Outputs" is probably easier for most people to understand than "endpoints".
2020-10-28 18:15:05 -05:00
Joel Spadin
600bba25f0
feat(endpoints): add preferred endpoint setting
...
Added a new setting to remember the user's preferred endpoint. When both USB and
BLE are connected, the preferred endpoint will be used.
Added a new behavior to control this setting. It supports commands:
&end END_USB - Prefer USB output
&end END_BLE - Prefer BLE output
&end END_TOG - Toggle between USB and BLE
2020-10-28 18:15:05 -05:00
Joel Spadin
b538e60532
feat(endpoints): update on BLE profile change
...
Added zmk_ble_active_profile_is_connected() to allow code outside ble.c to check
the status of the active profile, and changed the ble_active_profile_changed
event to also notify when the active profile connects or disconnects.
Changed endpoint selection to to also update when the active profile changes,
connects, or disconnects.
2020-10-28 18:15:05 -05:00
Joel Spadin
8f666cecc9
feat(endpoints): clear HID report on endpoint change
...
This prevents stuck keys when switching endpoints by clearing
everything in the HID report and sending one last report before
switching to the new endpoint.
2020-10-28 18:15:05 -05:00
Joel Spadin
1d369ffa73
feat: only send HID reports to one endpoint
...
Added some utility functions and an event for tracking the state of the
USB connection.
Updated endpoints.c to select a single endpoint to send HID reports to
based on the status of the USB and BLE connections. Partially fixes #206 .
Future commits will add a user setting to control which endpoint is used if
both USB and BLE are ready.
2020-10-28 18:15:05 -05:00
innovaker
c402e953f6
feat(hid): Make keypad report boot friendly
...
Add missing byte to make keypad report boot friendly.
2020-10-27 22:55:40 +00:00
innovaker
8ce7d8de01
refactor(hid): Refactor consumer report to a configurable size
2020-10-27 22:36:26 +00:00
innovaker
f4596fc784
refactor(hid): Refactor keypad report to use a configurable integer array
...
Replace NKRO bit array with configurable integer (DV) array.
2020-10-27 22:36:26 +00:00
innovaker
9c4b766bc6
feat(kscan_mock): Increase max number of events
...
This is necessary for testing a large number of events (e.g. every key code) within a single build/pass.
The u8_t limitation became apparent during end-to-end testing of #21 .
2020-10-25 20:36:03 +00:00
Pete Johanson
ef37f17796
Merge pull request #109 from Nicell/underglow/state-persistence
...
Add RGB underglow state Kconfig and settings
2020-10-18 22:29:55 -04:00
Pete Johanson
9d512eaef0
fix(bluetooth): Add adv data in non-peripherals.
2020-10-16 09:49:28 -04:00
Pete Johanson
b07475b7d4
fix(bluetooth): Stop adv on connected profile.
2020-10-16 00:56:05 -04:00
Pete Johanson
818f0a1f91
fix(bluetooth): Advertise name + appearance.
...
* Properly put device name and GAP appearance
in advertising packets, for proper display in
macOS, Android, etc.
* Closes #124
2020-10-16 00:48:53 -04:00
Pete Johanson
204d1300ba
fix(ble): Only advertise when needed.* Once we have a peer connected to for the active profile, don't continue advertising.
2020-10-15 00:51:21 -04:00
Pete Johanson
f35d9f8f69
Merge pull request #258 from megamind4089/dev/ext-power-behavior
...
New behavior for ext power control
2020-10-13 00:01:32 -04:00
Pete Johanson
6d9aa4f5ea
fix: Updated copyright headers to single author file.
2020-10-12 13:03:10 -04:00
Mega Mind
2e649b7fd4
Fix compilation errors and minor tweaks
2020-10-13 00:09:57 +08:00
Mega Mind
4adcb396ff
Rebased and fixed nasty code
2020-10-12 23:54:56 +08:00
Mega Mind
5d1c083959
Added toggle and removed a param
2020-10-12 23:42:01 +08:00
Mega Mind
b5e1c8a7ad
New behavior for ext power control
2020-10-12 23:42:01 +08:00
Joel Spadin
7798c974f6
fix: don't leak bt_conn refs
...
bt_conn_lookup_addr_le() gives us a new reference that must be released
with bt_conn_unref()
2020-10-11 17:04:34 -05:00
Okke Formsma
d38740cebf
Add timestamps to position and behavior events ( #147 )
...
* Add timestamps to position events and behaviors.
- Take original event timestamps into consideration so nested tap-holds have proper timing.
- Add position and timestamp to keycode state changed event so the one-shot behavior can properly identify other keypresses and timings.
- Add timestamp to position events received from peripheral
* reduce number of arguments to behaviors
2020-10-10 17:32:53 -04:00
Mega Mind
4d81b10ba7
Added driver to control the external power output
...
This PR adds support to control the external power output from controllers like nice!nano, nRFMicro etc
I have implemented based on my understanding of Pete suggestion on this feature.
Testing done:
Tested by enabling and disabling the ext_power from application and verified
Verified the application does not crash with boards that does not have ext_power support
Note:
I did not test this in nice!nano since I don't have the boards. Will get help from others once the behavior PR is up
Next Steps:
Create a behavior PR to control enable/disable ext_power
2020-10-10 08:11:46 +08:00
Pete Johanson
12b9a37005
Merge pull request #211 from petejohanson/core/keymap-port-event-exploration
...
Use PORT events for kscan matrix interrupts, add option for deep sleep.
2020-10-06 17:32:35 -04:00
Pete Johanson
a7496ab064
feat(power): Initial deep sleep work.
...
* New ZMK_SLEEP Kconfig symbol to enable the functionality.
* Switch to PORT events that allows wake from deep sleep.
* Initial basic power management policy, with idle ms,
and ignoring deep sleep if we detect a USB connection.
2020-10-06 17:24:36 -04:00
Pete Johanson
7d222e1553
Merge pull request #237 from ChaosinaCan/direct-gpio-fix
...
Fix direct GPIO when using interrupts
2020-10-04 23:04:16 -04:00
Pete Johanson
bbf5a5905a
refactor(usb): Report USB status w/o HID output.
2020-10-04 21:56:09 -04:00
Joel Spadin
fc5915b200
improvement(kscan): use ARRAY_SIZE macro
2020-10-04 14:07:14 -05:00
Pete Johanson
307a8d09db
feat(usb): Function to access latest USB status.
...
* To be leveraged by upcoming power
management work.
2020-10-01 17:18:01 -04:00
Nick
608ae0df6d
fix lint with clang-format
2020-09-15 14:47:19 -05:00
Nick
18d21b0362
Merge remote-tracking branch 'upstream/main' into underglow/state-persistence
2020-09-15 14:41:59 -05:00
Pete Johanson
191a2d755a
chore: clang-format the codebase.
...
* Use the LLVM style
* Override indent width (8) and column limit (100)
* Fixes #142 .
2020-09-14 00:10:34 -04:00
Pete Johanson
4658999e31
fix(bluetooth): Reject pairing to taken profiles.
2020-09-13 22:33:31 -04:00
Pete Johanson
6c8b0b53f0
refactor(bluetooth): More concise names.
2020-09-13 22:33:31 -04:00
Pete Johanson
39f980a06d
feat(bluetooth): Add back profiles, split fixes.
...
* Add back in profiles, not using Zephyr
BT identity infrastructure.
* Restore additional `&bt` commands for profile
operations.
* Fix for split pairing and subscriptions, since
Zephyr persists subscriptions across connects.
* Remove keymap from peripheral builds, reduces
firmware size, and avoids unneeded attempts
to send HID data.
2020-09-13 22:33:29 -04:00
Pete Johanson
e88d0833c5
fix(bluetooth): Log when clearing on start.
2020-09-13 22:33:05 -04:00
Pete Johanson
b103eb4b05
fix(bluetooth): Delete any previously stored name.
2020-09-13 22:33:05 -04:00
Pete Johanson
13842a8a1e
fix(bluetooth): Kconfig to clear bonds on start
2020-09-13 22:33:05 -04:00
Pete Johanson
fc0812bd2e
fix(bluetooth): Remove identity, minimal `bt`.
...
* Simplify the `bt` behavior to one current command
`BT_CLEAR_BONDS_CMD`.
* Simplify BLE code for split and non-split keyboards.
* Remove keymap processing from split peripheral side.
2020-09-13 22:33:05 -04:00
Pete Johanson
cf970efb98
feat(bluetooth): Proper bond management, identity support for non-splits
...
* Add `bt` behavior that can be used to perform certain actions,
such as next/prev identity, reset identity, etc.
NOTE: Multiple identities is only supported for non-split shields,
due to missing Zephyr identity functionality for dual
central/peripheral devices.
* Proper bond reset tied to action, that honors peripheral bonds,
so folks can reset and pair to other hosts, without breaking
bonds between splt halves.
2020-09-13 22:33:05 -04:00
Pete Johanson
68e72f9275
fix: Switch to single AUTHORS file.* Closes #164
2020-09-10 10:24:23 -04:00
Okke Formsma
c9a82d71d0
fixes for feedback round 2
2020-09-02 16:41:39 +02:00
Okke Formsma
c5ca664411
some fixes based on feedback
2020-09-02 15:26:06 +02:00
Okke Formsma
c33931c72c
Initial implementation of hold-tap
2020-09-01 19:41:08 +02:00
Cody McGinnis
639a338c2d
fix(core): track layer state with keypress
2020-09-01 09:49:21 -04:00
Cody McGinnis
033bb7bfc4
fix(behavior): add logging to toggle layer for tests
2020-08-28 16:21:31 -04:00
Cody McGinnis
5b21f15a0a
fix(test): off by one error with kscan processing
2020-08-28 16:21:31 -04:00
Cody McGinnis
f02fa01e9a
fix(test): change the layout
2020-08-28 16:21:31 -04:00
Cody McGinnis
cbea2d5bed
fix(behavior): none should not be transparent
2020-08-27 23:12:56 -04:00
Nick
979a5bffff
fix(rgb): check if settings enabled
2020-08-23 15:56:18 -05:00
Nick
c5c21022a2
Move settings load
2020-08-23 10:33:19 -05:00
Okke Formsma
ebc3542aa6
fix bug in modtap bahavior which cleared the wrong keycode events
2020-08-23 14:46:52 +02:00
Pete Johanson
805ea77005
feat(behaviors): Add `&bootloader` behavior.
...
* Allow reset behavior to have a type property.
* Add `bootloader` node that triggers DFU UF2
bootloader mode using the AdaFruit nrf52
bootloader.
2020-08-21 11:23:45 -04:00
Nick
74fd4fc997
fix(rgb): fix underglow settings location
2020-08-20 21:13:17 -05:00
Nick
3ee2d1196b
feat(rgb): underglow state Kconfig and settings
2020-08-20 00:07:04 -05:00
Pete Johanson
6ca8e673ac
fix(bluetooth): Typo for closed conditional.
2020-08-20 00:01:59 -04:00
Pete Johanson
a65b746a86
fix(bluetooth): Add unpair combo if DT node exists
2020-08-19 23:34:34 -04:00
Pete Johanson
0d3cfa8596
Merge pull request #99 from petejohanson/core/bluetooth-unpair-magic-combo
...
Add magic combo for unpairing BT devices on start.
2020-08-18 19:21:43 -04:00
Pete Johanson
66c4b7ebb0
fix(usb): Restore write semaphore, release it on write failures.
2020-08-18 17:13:32 -04:00
Pete Johanson
05235ca96d
fix(bluetooth): Stop peripheral half advertising once connected.
2020-08-18 16:18:16 -04:00
Pete Johanson
c054feb3c9
Merge pull request #100 from petejohanson/behaviors/add-none
...
Add `&none` behavior.
2020-08-18 14:31:20 -04:00
Pete Johanson
63e02d60dc
feat(behaviors): Add &none behavior
2020-08-18 14:28:11 -04:00
Cody McGinnis
50643b2c56
fix(keymap): add brackets around if statement body
2020-08-18 14:21:39 -04:00
Cody McGinnis
7facb6eee8
fix(keymap): move the toggle layer logic to keymap.c
2020-08-18 14:02:25 -04:00
Cody McGinnis
a82f990d4c
feat(keymap): allow users to toggle layers
2020-08-18 14:02:24 -04:00
Pete Johanson
4402e4fbc7
feeature(bt): Add "unpair combo" on startup.
...
* Especially for splits, we need the ability to
unpair all paired devices as sledgehammer
if we need to "reset things", and doing so via
keymaps isn't suitable.
* Allows shields to define a collection of key
positions that if all held 2 seconds after
startup, will unpair all existing pairs for the
device.
2020-08-18 13:17:10 -04:00
Pete Johanson
d7dee20e8d
Add missing license header.
2020-08-18 09:56:25 -04:00
Pete Johanson
e5ba03f088
Revert "Merge pull request #93 from careyk007/main"
...
This reverts commit 8cd8933c87 , reversing
changes made to 3f1dfbaad1 .
2020-08-17 23:23:30 -04:00
Pete Johanson
24836cdde8
Merge pull request #94 from Nicell/split/default-conn-fix
...
Create proper fix for split default connection bug
2020-08-16 23:00:19 -04:00
Nick
087574f607
Create proper fix for split default conn bug
2020-08-16 15:36:43 -05:00
Kellen Carey
5b4e5a30c4
remove unnecessary include
2020-08-16 12:51:06 -07:00
Kellen Carey
25c8a26998
wait before sending HID report
2020-08-16 12:49:08 -07:00
Pete Johanson
7e8a07e693
Remove use of printk.
2020-08-14 16:45:05 -04:00
Pete Johanson
3127192720
Invoke called behavior after layer change.
...
* If you press a key with a layer active, then
deactivate the layer (e.g. releasing a `&mo`,
then release the key, we currently may send
the wrong key release event.
* Fixes #67 .
2020-08-09 12:30:47 -04:00
Pete Johanson
01b8b724c1
Remove debugging line that snuck in.
2020-08-06 23:54:18 -04:00
Pete Johanson
0460631729
Refactor to simpler keymaps.
2020-08-06 23:28:34 -04:00
Pete Johanson
fd381e8117
Merge pull request #70 from Nicell/split/2m-phy
...
Split connection parameter adjustments and 2M PHY added
2020-08-06 11:11:48 -04:00
Nick
370cfcc59f
Add if block and param req callback comment
2020-08-05 22:38:40 -05:00
Nick
cfea5cceb1
Remove updated callback
2020-08-03 17:22:11 -05:00
Nick
f23ca9d7ee
Add two solutions to param updates
2020-08-02 15:51:38 -05:00
Nick
880c6e0601
Fix variable name in peripheral PHY update
2020-08-02 15:01:32 -05:00
Nick
f26bd495ea
Fix interval update, add PHY update
2020-08-02 14:51:42 -05:00
Pete Johanson
cd30f440d9
Fix for the right start index for event releases.
2020-08-02 14:10:56 -04:00
Pete Johanson
8a07938d9b
Minor cleanup.
2020-07-31 23:29:32 -04:00
Pete Johanson
8bba1fb738
Major mod-tap improvements.
...
* Track active mods when mods or keycode
events occur.
* Use the tracked mods when releasing or
generating keycode events.
* Track pending/used status in one array, for
improved storage efficency.
2020-07-31 14:38:10 -04:00
Pete Johanson
f548f2a87c
Initial stab at mod-tap improvements.
...
* Not working: Roll over + mod-tap with multiple
mod-tap bindings!
2020-07-31 00:07:16 -04:00
Pete Johanson
cf8c7856ff
Add the ability to capture event and release later
2020-07-30 00:13:32 -04:00
Pete Johanson
4e5a819f3a
Merge pull request #64 from Nicell/feature/rgb_underglow
...
Initial RGB Underglow implementation
2020-07-26 21:43:43 -04:00
Nick
dc8c7011b1
If LED strip can't be found, behaviors return err
2020-07-26 12:49:43 -05:00
Pete Johanson
d1cb3969f0
Remove extra '#'.
2020-07-25 23:17:19 -04:00
Pete Johanson
c34472bf3f
Fixes for loading without encoder drivers.
...
* Build fixes.
2020-07-25 23:10:40 -04:00
Pete Johanson
d80063ff51
Initial display support.
2020-07-25 23:10:40 -04:00
Nick
6956094ac0
Add missing return To brightness up
2020-07-25 15:39:01 -05:00
Nick
564f787280
Add suggested changes
2020-07-25 14:53:42 -05:00
Nick
ca569c8143
Initial RGB Underglow implementation
2020-07-24 22:37:00 -05:00
Nick
bb09707bd2
Add base files and configuration for RGB underglow
2020-07-24 01:06:56 -05:00
Pete Johanson
b1bc5b4c82
Switch printk to LOG_DBG.
2020-07-23 22:21:38 -04:00
Pete Johanson
34ff6190bd
Initial behavior for key presses on encoder rotate
2020-07-22 14:54:18 -04:00
Pete Johanson
4d73938cb5
More sensor keymap work.
2020-07-22 10:10:04 -04:00
Pete Johanson
adfa1b5443
Initial work on sensor bindings.
2020-07-22 02:13:52 -04:00
Pete Johanson
5896c3032b
Fixes for BLE host connections w/ split support.
2020-07-21 22:10:37 -04:00
Pete Johanson
c4d3c03eb0
Improved function naming for central functions.
2020-07-20 23:02:27 -04:00
Pete Johanson
542a9de48a
Replace magic 16 with sane constant.
2020-07-20 22:52:37 -04:00
Pete Johanson
fd407c4876
Update connectin params once we're connected to.
2020-07-19 22:40:49 -04:00
Pete Johanson
2a6b9ec86e
Fixed min/max.
2020-07-19 22:33:15 -04:00
Pete Johanson
879fd5b8e7
Connection params tweaks.
2020-07-19 22:20:42 -04:00
Pete Johanson
6701b7babc
Working BT settings.
2020-07-17 22:43:40 -04:00
Pete Johanson
d4afd989f3
More split implementation.
...
* Propogate key position state changes on central.
* Various BLE tweaks.
2020-07-17 22:43:40 -04:00
Pete Johanson
d1a5c7ee5a
Swtich to SYS_INIT.
2020-07-17 22:43:40 -04:00
Pete Johanson
be537d0656
Lots of work on split peripheral/central logic.
2020-07-17 22:43:40 -04:00
Pete Johanson
a165db6358
Initial work on split central support.
2020-07-17 22:43:40 -04:00
Pete Johanson
3796f76c56
Initial exploration of split BLE service.
...
* Service for split peripheral to report
position state to split central.
* Updated advertising info.
* Behavior for split BT until we have a proper
event system.
2020-07-17 22:43:40 -04:00
Pete Johanson
7c5fb7adb5
Use SYS_INIT for BLE and USB init.
2020-07-07 10:20:23 -04:00
Pete Johanson
7bf8621d5b
Whitespace fix.
2020-06-30 16:39:29 -04:00
Pete Johanson
a62a2f8c5c
Cleanup, license headers.
2020-06-30 16:13:03 -04:00
Pete Johanson
57e061ac91
Lots of cleanup of old events/behavior mash.
2020-06-30 15:21:42 -04:00