summaryrefslogtreecommitdiff
path: root/app/src
AgeCommit message (Collapse)Author
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.
2021-01-20refactor(core): Extra position state change data struct.Pete Johanson
* Separate header and data struct for the event. * Remove duplicate struct in split code.
2021-01-15fix(splits): Send pos notify from dedicated threadPete Johanson
* Avoid deadlocks by using a deadicated workqueue for sending position state notifications from peripherals.
2021-01-15fix(hid): Clear all matching usages, not just first.Pete Johanson
* 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-15fix(bluetooth): improve LE param update loggingPete Johanson
2021-01-15fix(ble): Perform GATT notifies from dedicated queue.Pete Johanson
* Zephyr BT stack frees TX buffers from system workqueue, and to avoid blocking waiting to allocate, perform notify from a dedicated queue.
2021-01-15fix(split): Use queue/work for peripheral events.Pete Johanson
* 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-15refactor(core): define usage page as uint16_tinnovaker
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-13feat(combos): initial implementationOkke Formsma
closes #45
2021-01-08Remove setting the animation/effect when setting hsv ; some of the effects ↵KemoNine
like glowing will use the hsv color specified
2021-01-08(feat) Allow setting underglow color by key pressKemoNine
2021-01-04feat(display): Show layer label in widget.Pete Johanson
2021-01-04feat(keymap): API for retrieving label for a layerPete Johanson