summaryrefslogtreecommitdiff
path: root/app/src
AgeCommit message (Collapse)Author
2021-08-27fix(display): Add proper LVGL label dep.Peter Johanson
2021-08-03fix(display): Update output status on endpoint selection change.Peter Johanson
2021-08-03feat(endpoints): Add endpoint select changed event.Peter Johanson
2021-08-03fix(usb): USB state changes in system thhread.Peter Johanson
* Use a `k_work` to send usb status events from the system workqueue thread, not the USB work thread.
2021-08-02fix(power): Manually trigger pm_low_power_devices() before sleepNick Winans
2021-08-02feat(power): Update device power management KconfigNick Winans
2021-07-17fix(display): Avoid fault w/ LVGL API usage.Peter Johanson
* 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-17refactor(core): Move away from deprecated DT API.Pete Johanson
* 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-17refactor(core): update power API to Zephyr v2.5.0innovaker
See: https://github.com/zephyrproject-rtos/zephyr/pull/29410 PR: https://github.com/zmkfirmware/zmk/pull/736
2021-06-13fix(behaviors): Fix timing of delayed hold-tap triggerOkke Formsma
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-08fix(combos): Check each combo key, not just lastJonathan Rascher
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-08fix(ble): Ignore out of range profilesJoel Spadin
Don't allow selecting a BLE profile that is out of range to avoid reading/writing past the end of the profiles array.
2021-05-09fix(behaviors): Fix sticky keys quick-release for normal keypressesOkke Formsma
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-03-11fix(combos): Fix stuck keys when pressing long combos.Okke Formsma
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-10refactor(core): make the event manager a bit easier to readOkke Formsma
2021-03-10fix(logging): remove unnecessary newlineOkke Formsma
2021-03-10added battery.h, last_state_of_charge to uint8_tJP Bonn
2021-03-10fixed order of setting state_of_chargeJP Bonn
2021-03-10only send zmk_battery_state_changed on changeJP Bonn
2021-02-27fix(behaviors): Add missing hold-tap triggerOkke Formsma
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-24feature(hold-tap): no-hold-flash for retro tapsOkke Formsma
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-24feature(hold-tap): Retro tappingOkke Formsma
2021-02-24refactor(hold-tap): improve switch statementsOkke Formsma
2021-02-24refactor(hold-tap): pretty print decision_momentOkke Formsma
2021-02-24refactor(hold-tap): create press_binding and release_binding functionsOkke Formsma
2021-02-24refactor(hold-tap): split hold state into interrupt and timerOkke Formsma
2021-02-24refactor(hold-tap): use enum for hold-tap statusOkke Formsma
2021-02-24refactor(hold-tap): simplify flavor enumOkke Formsma
2021-02-16refactor(ext-power): Add init-delay-ms optionNick Winans
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2021-02-16fix(ext-power): Initialize as soon as settings are availableNick Winans
2021-02-16fix(display): Check for display in idle handler.Pete Johanson
* Closes #679
2021-02-10style(hold-tap)!: Write hold-tap params with dashesOkke Formsma
tapping_term_ms -> tapping-term-ms quick_tap_ms -> quick-tap-ms The old style works, although it's deprecated.
2021-02-09feat(underglow): Convert HSB changes to absolute.Pete Johanson
* 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-09refactor(behaviors): Convert state dependent params.Pete Johanson
* Allow each behavior to map a relative binding, e.g. "toggle", to an absolute one, e.g. "on", before being invoked.
2021-02-09refactor(rgb): Expose explicit on/off command/API.Pete Johanson
2021-02-04refactor(core): Use /omit-if-no-ref/ for behaviors.Pete Johanson
* 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-03Feat combo layers (#661)KemoNine
feat(combos): add layer filtering Co-authored-by: KemoNine <mcrosson@kemonine.info>
2021-02-02behaviors(hold-tap): Implement quick_tap_ms (TAPPING_FORCE_HOLD)Okke Formsma
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-02fix(core): Assert BLE device name is correct lengthNick Winans
2021-02-02refactor(behaviors): simplify hold-taps by not using _TRANSFORM_ENTRYOkke Formsma
2021-02-02refactor(behaviors): factor out multiple uses of _TRANSFORM_ENTRYOkke Formsma
2021-01-30Add a missing log_strdup()Jeff Rizzo
2021-01-28feature(sticky_keys): add quick-releaseOkke Formsma
when quick-release is enabled, the sticky key is released immediately after another key is pressed
2021-01-24feature(modifiers): add explicit modifiersOkke Formsma
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-24refactor(modifiers): define is_mods functionOkke Formsma
2021-01-24refactor(hid_listener): pass event struct instead of parametersOkke Formsma
2021-01-23feat: Add WPM calculator and display widgetAlly Parker
2021-01-22feat(grave-escape): implement grave-escapeOkke Formsma
closes #85
2021-01-20refactor(core): Combine `is_` and `cast_` event functions.Pete Johanson
* Use a single `as_foo` generated function to conditionally return a certain event type from a generic `zmk_event_t*` pointer.
2021-01-20refactor(core): Extra event payloads to own types, refactor API.Pete Johanson
* 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.