summaryrefslogtreecommitdiff
path: root/app/tests
AgeCommit message (Collapse)Author
2021-11-15test(conditional-layers): Add tests for edge casesJonathan Rascher
2021-11-15test(conditional-layers): Add interleaved up/downsJonathan Rascher
2021-11-15test(conditional-layers): Add multi-config testsJonathan Rascher
2021-11-15test(conditional-layers): Add basic unit testsJonathan Rascher
2021-11-09feat: hold/tap flavor tap-unless-interruptedjding
Implements new hold/tap flavor, tap-unless-interrupted Adds tests Adds docs
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-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-08test(combo): Add unit test for complete long comboJonathan Rascher
2021-06-08refactor(combos): Rename existing long combo testJonathan Rascher
This test doesn't test a long combo that completes, but rather one that's incomplete (so the combo doesn't trigger). Renaming to avoid confusion when we add more long combo tests.
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-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): pretty print decision_momentOkke Formsma
2021-02-24refactor(hold-tap): split hold state into interrupt and timerOkke Formsma
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-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-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-25fix(behaviors): Updated grsec snapshots for new log format.Pete Johanson
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-23feat: Add WPM calculator and display widgetAlly Parker
2021-01-22feat(grave-escape): implement grave-escapeOkke Formsma
closes #85
2021-01-13feat(combos): initial implementationOkke Formsma
closes #45
2020-12-29(feature) Add &to keycode/behavior (#489)KemoNine
feat(behaviors): Add `&to` behavior to switch to a layer.
2020-12-28refactor: replace filename hyphens with underscoresinnovaker
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-28chore(tests): remove useless &cp testOkke Formsma
2020-12-06fix(sticky keys): fix tapping-sticky-keys bug.Okke Formsma
Sticky keys should be cleared when they were tapped in rapid succession before the timer runs out.
2020-11-29bugfix(sticky keys): release active sticky keys properlyOkke Formsma
see https://github.com/zmkfirmware/zmk/issues/445
2020-11-28feat(sticky keys): initial implementationOkke Formsma
2020-11-16fix momentary layer bug when top layer is not &transOkke Formsma
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-05refactor(keys): Unify usage page.Pete Johanson
* Remove need for separate `&cp` behavior, but keep it for now for backward compat. * Refactor sensor inc/dec as well.
2020-11-03test: Replace superseded key names in test keymapsinnovaker
Replace deprecated key names (LSFT, LCTL, RCTL, M_NEXT). Replace abbreviated names with fully qualified names (LSFT, LCTL, LALT, LGUI, RGUI). Follow-up to #21.
2020-11-03initial implementation for modifiersOkke Formsma
https://github.com/zmkfirmware/zmk/issues/86
2020-10-10Add timestamps to position and behavior events (#147)Okke Formsma
* 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-09-08fix(tests): pending tests pass nowCody McGinnis
2020-09-02some fixes based on feedbackOkke Formsma
2020-09-02rename testsOkke Formsma
2020-09-01Initial implementation of hold-tapOkke Formsma
2020-08-28feat(tests): allow tests to be marked as pendingCody McGinnis
pending tests will not fail the build
2020-08-28fix(docs): move testing docs to website docsCody McGinnis
2020-08-28feat(test): create simple docs for creating testsCody McGinnis
2020-08-28feat(test): add testing for transparentCody McGinnis
2020-08-28feat(test): add tests for toggle layerCody McGinnis
2020-08-28feat(test): add tests for none behaviorCody McGinnis
2020-08-28fix(test): fix normal momentary-layer test snapshotCody McGinnis
2020-08-28fix(test): use a smaller value for mock key intervalsCody McGinnis
2020-08-28feat(test): add tests for momentary layersCody McGinnis
2020-08-28fix(test): change the layoutCody McGinnis