summaryrefslogtreecommitdiff
path: root/app/src
AgeCommit message (Collapse)Author
2022-01-31feature(split): behavior locality support.Pete Johanson
* 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-30fix(behaviors): Capture mods for `&key_repeat`Peter Johanson
* When tracking the last keycode, also capture the currently held explicit modifiers to use when replaying the key later.
2022-01-30feat(behaviors): `&key_repeat` behavior + tests.Peter Johanson
* Add new `&key_repeat` behavior that captures and re-sends the most recently triggered keycode. Closes: #853
2022-01-30fix(ble): Restore BLE SC passkey entry for pairing.Peter Johanson
* Handle capturing numeric inputs while pairing and sending final passkey once six digits entered.
2021-12-02fix(hid): Implicit mods on non-key page eventsPeter Johanson
* Properly send the KEY usage page report for modifier changes when there are state changes to other usages pages that include implicit modifiers.
2021-11-28feat(behaviors): Add caps word (`&caps_word`).Peter Johanson
* Add new `&caps_word` behavior that acts like caps lock, but releases automatically when any "break" keycode is pressed.
2021-11-15feat(conditional-layers): Implement featureJonathan Rascher
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-09feat: hold/tap flavor tap-unless-interruptedjding
Implements new hold/tap flavor, tap-unless-interrupted Adds tests Adds docs
2021-11-04fix(split): Properly rediscover peripherals.Peter Johanson
* Handle disconnects of peripherals, and properly clean up and resume discovering for when the peripheral re-appears.
2021-11-01fix(behavior): Properly break in decision switch statement.jmding8
Co-authored-by: jding <jding@roblox.com>
2021-11-01feat(behaviors) Required keys for tap-hold behaviorsjmding8
* 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-10-20refactor(combos): Use ZMK_KEYMAP_EXTRACT_BINDINGJonathan Rascher
Now that PR #506 is merged, we can address this TODO.
2021-10-12fix(display): Increase char buffer size to fit all symbolsRichard Kjerstadius
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-10fix(underglow): Run clang-formatNick Winans
2021-10-10feat(underglow): Add support for configurable min/max brightnessSimon Malinge
Co-authored-by: jrhrsmit <jasper.770@gmail.com>
2021-10-04feat(hid): Kconfig for basic/full consumer usages.Peter Johanson
* 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-04feat(hid): Configurable NKRO HID report support.Pete Johanson
* 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-09-25refactor(display): Saner font selection/defaults.Peter Johanson
* Only select fonts for the default built in status screen * Leverage theme default fonts, instead of hardcoding theme details in each component.
2021-09-25refactor(display): Output/layer/battery thread safety.Peter Johanson
* Submit widget updates to display queue. * Use mutex to control access to shared state for widgets.
2021-09-25feat(display): Optional dedicated work queue.Peter Johanson
* 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-23fix(hog): use OR instead of AND for bitmapXudong Zheng
2021-09-18fix(hog): encrypt perm for HID report map/ref.Peter Johanson
* 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-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