summaryrefslogtreecommitdiffstats
path: root/quantum/process_keycode
Commit message (Collapse)AuthorAgeFilesLines
* Allow for RGB actions to take place on Keydown instead of Keyup (#16886)CoffeeIsLife2022-07-021-0/+4
| | | | | * Allow for switch on keydown * add docs
* Fix and add unit tests for Caps Word to work with Unicode Map, Auto Shift, ↵Pascal Getreuer2022-06-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Retro Shift. (#17284) * Fix Caps Word and Unicode Map * Tests for Caps Word + Auto Shift and Unicode Map. * Fix formatting * Add additional keyboard report expectation macros This commit defines five test utilities, EXPECT_REPORT, EXPECT_UNICODE, EXPECT_EMPTY_REPORT, EXPECT_ANY_REPORT and EXPECT_NO_REPORT for use with TestDriver. EXPECT_REPORT sets a gmock expectation that a given keyboard report will be sent. For instance, EXPECT_REPORT(driver, (KC_LSFT, KC_A)); is shorthand for EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_A))); EXPECT_UNICODE sets a gmock expectation that a given Unicode code point will be sent using UC_LNX input mode. For instance for U+2013, EXPECT_UNICODE(driver, 0x2013); expects the sequence of keys: "Ctrl+Shift+U, 2, 0, 1, 3, space". EXPECT_EMPTY_REPORT sets a gmock expectation that a given keyboard report will be sent. For instance EXPECT_EMPTY_REPORT(driver); expects a single report without keypresses or modifiers. EXPECT_ANY_REPORT sets a gmock expectation that a arbitrary keyboard report will be sent, without matching its contents. For instance EXPECT_ANY_REPORT(driver).Times(1); expects a single arbitrary keyboard report will be sent. EXPECT_NO_REPORT sets a gmock expectation that no keyboard report will be sent at all. * Add tap_key() and tap_keys() to TestFixture. This commit adds a `tap_key(key)` method to TestFixture that taps a given KeymapKey, optionally with a specified delay between press and release. Similarly, the method `tap_keys(key_a, key_b, key_c)` taps a sequence of KeymapKeys. * Use EXPECT_REPORT, tap_keys, etc. in most tests. This commit uses EXPECT_REPORT, EXPECT_UNICODE, EXPECT_EMPTY_REPORT, EXPECT_NO_REPORT, tap_key() and tap_keys() test utilities from the previous two commits in most tests. Particularly the EXPECT_REPORT macro is frequently useful and makes a nice reduction in boilerplate needed to express many tests. Co-authored-by: David Kosorin <david@kosorin.net>
* Continue Caps Word when AltGr (right Alt) is held. (#17156)Pascal Getreuer2022-05-201-1/+4
| | | | | | | | | | | This is a minor bug fix for Caps Word. Currently, Caps Word turns off whenever a non-shift mod becomes active. This is done to avoid interfering with hotkeys. This commit makes an exception to continue Caps Word when AltGr (right Alt) is held. Outside the US, the AltGr key is used to type additional symbols (https://en.wikipedia.org/wiki/AltGr_key). Depending on the language, these may include symbols used within words like accented letters where it would be desirable to continue Caps Word.
* Enhancement and fixes of "Secure" feature (#16958)Drashna Jaelre2022-05-141-2/+8
|
* [Core] Add Caps Word feature to core (#16588)Pascal Getreuer2022-05-142-0/+197
| | | | Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
* Add GET_TAPPING_TERM macro to reduce duplicate code (#16681)Jouke Witteveen2022-04-163-17/+3
| | | | | | | | | | | | | * Add GET_TAPPING_TERM macro to reduce duplicate code The macro gives the right tapping term depending on whether per-key tapping terms and/or dynamic tapping terms are enabled. Unnecessary function calls and variable resolution are avoided. Fixes #16472. * Use GET_TAPPING_TERM for Cirque trackpads Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
* Implement XAP 'secure' core requirements (#16843)Joel Challis2022-04-162-0/+54
| | | | Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
* Quantum Painter (#10174)Nick Brassel2022-04-131-29/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Install dependencies before executing unit tests. * Split out UTF-8 decoder. * Fixup python formatting rules. * Add documentation for QGF/QFF and the RLE format used. * Add CLI commands for converting images and fonts. * Add stub rules.mk for QP. * Add stream type. * Add base driver and comms interfaces. * Add support for SPI, SPI+D/C comms drivers. * Include <qp.h> when enabled. * Add base support for SPI+D/C+RST panels, as well as concrete implementation of ST7789. * Add support for GC9A01. * Add support for ILI9341. * Add support for ILI9163. * Add support for SSD1351. * Implement qp_setpixel, including pixdata buffer management. * Implement qp_line. * Implement qp_rect. * Implement qp_circle. * Implement qp_ellipse. * Implement palette interpolation. * Allow for streams to work with either flash or RAM. * Image loading. * Font loading. * QGF palette loading. * Progressive decoder of pixel data supporting Raw+RLE, 1-,2-,4-,8-bpp monochrome and palette-based images. * Image drawing. * Animations. * Font rendering. * Check against 256 colours, dump out the loaded palette if debugging enabled. * Fix build. * AVR is not the intended audience. * `qmk format-c` * Generation fix. * First batch of docs. * More docs and examples. * Review comments. * Public API documentation.
* Joystick feature updates (#16732)Ryan2022-03-261-26/+10
| | | | | | | * Joystick feature updates * Move new functions to joystick.h * Docs
* Add support for encoder mapping. (#13286)Nick Brassel2022-03-091-9/+2
|
* Remove `send_unicode_hex_string()` (#16518)Ryan2022-03-042-34/+0
|
* Format code according to conventions (#16322)QMK Bot2022-02-1221-131/+239
|
* Pass in the keyrecord_t of the dual-role/tapping key when calling per-key ↵precondition2022-02-111-1/+1
| | | | | | | tap hold functions (#15938) * Replace keyp by &tapping_key in the record arg of per-key tap hold funcs * Replace NULL by &(keyrecord_t){} in 2nd arg of get_tapping_term
* [Bug] Fix layer_state restoration at end of dynamic macro feature (#16230)Desprez Jean-Marc2022-02-061-1/+1
|
* Combo `TAP_CODE_DELAY` and `clear_weak_mods` (#15866)Pete Sevander2022-01-281-0/+13
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2022-01-251-2/+3
|\
| * Fix joystick button off-by-one error (#16037)Ryan2022-01-251-2/+3
| |
* | Rip out old macro and action_function system (#16025)Ryan2022-01-241-3/+0
| | | | | | | | | | | | | | * Rip out old macro and action_function system * Update quantum/action_util.c Co-authored-by: Joel Challis <git@zvecr.com>
* | Rename some Quantum keycodes (#15968)Ryan2022-01-221-2/+2
| | | | | | | | | | * Rename some Quantum keycodes * Tweak EEPROM clear and debug keycode short aliases
* | New combo configuration options (#15083)Pete Sevander2022-01-091-1/+38
| | | | | | Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
* | Unify the key up/down behaviour of RGB keycodes (#15730)Joel Challis2022-01-061-5/+1
| |
* | Migrate serial_uart usages to UART driver (#15479)Ryan2021-12-152-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Migrate Thermal Printer feature to UART driver * Migrate 40percentclub UT47 to UART driver * Migrate Centromere to UART driver * Migrate Chimera Ergo to UART driver * Migrate Chimera Let's Split to UART driver * Migrate Chimera Ortho to UART driver * Migrate Chimera Ortho Plus to UART driver * Migrate Comet46 to UART driver * Migrate Palm USB converter to UART driver * Migrate Sun USB converter to UART driver * Migrate Dichotomy to UART driver * Migrate Honeycomb to UART driver * Migrate Mitosis to UART driver * Migrate Redox W to UART driver * Migrate Uni660 to UART driver * Migrate Telophase to UART driver
* | added missing audio_off_user() callback (#15457)Dipl.-Ing. Raoul Rubien, BSc2021-12-112-0/+2
| | | | | | Co-authored-by: Raoul Rubien <raoul.rubienr@gmail.com>
* | Implement MAGIC_TOGGLE_CONTROL_CAPSLOCK (#15368)Joel Challis2021-11-301-0/+4
| |
* | Added cancel_key_lock function (#15321)wheredoesyourmindgo2021-11-292-0/+6
|/
* New feature: `DYNAMIC_TAPPING_TERM_ENABLE` (#11036)precondition2021-11-262-0/+76
| | | | | | | | | * New feature: `DYNAMIC_TAPPING_TERM_ENABLE` 3 new quantum keys to configure the tapping term on the fly. * Replace sprintf call in tapping_term_report by get_u16_str * Replace tab with 4 spaces
* Add Retro Shift (Auto Shift for Tap Hold via Retro Tapping) and Custom Auto ↵Isaac Elenbaas2021-11-252-95/+346
| | | | | | | Shifts (#11059) * Add Retro Shift and Custom Auto Shifts * Fix compilation errors with no RETRO_SHIFT value
* Format code according to conventions (#15195)QMK Bot2021-11-171-5/+5
|
* Merge remote-tracking branch 'origin/master' into developDrashna Jael're2021-11-131-0/+1
|\
| * add wait to unicode for win (#15061)Markus Fritsche2021-11-121-0/+1
| | | | | | Co-authored-by: Markus Fritsche <fritsche.markus@gmail.com>
* | Basic keycode overhaul (#14726)Ryan2021-11-0310-93/+93
| |
* | haptic: Feature to disable it when usb port is not configured or suspended. ↵Purdea Andrei2021-11-021-1/+2
| | | | | | | | | | | | | | (#12692) This also add support for specifying a LED pin to indicate haptic status, and also adds support for a haptic-enable pin, which is useful to turn off the boost converter on the solenoid driver.
* | define to AUTO_SHIFT_DISABLED_AT_STARTUP (#14201)Woody2021-11-021-1/+7
| | | | | | Co-authored-by: agodinhost <agodinhost@globo.com>
* | Manually format develop (#15003)Joel Challis2021-11-013-96/+101
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-10-201-1/+1
|\|
| * Fix type of Tap Dance max index variable (#14887)Drashna Jaelre2021-10-191-1/+1
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-10-201-0/+1
|\|
| * Make the MAGIC_TOGGLE_GUI keycode work (#14886)Sergey Vlasov2021-10-191-0/+1
| |
* | Add LM() keys to the list of keys disabled by NO_HAPTIC_MOD (#14181)Purdea Andrei2021-10-031-0/+1
| |
* | Add ability to use numpad digits for unicode mode UC_WIN (#14496)Marcus van Houdt2021-09-211-10/+37
| | | | | | Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
* | Add Support for USB programmable buttons (#12950)Thomas Weißschuh2021-09-152-0/+54
|/
* Apply `TAP_CODE_DELAY` to Tap Dance key sequences (#14412)Drashna Jaelre2021-09-131-0/+2
| | | | | * Add support to tap dances * Move default tap code defines to header file
* [Bug] Fix build error when enabling NO_HAPTIC_MOD (#14178)Purdea Andrei2021-08-301-0/+1
| | | | | Without this build would fail, if a keyboard had haptic feedback enabled, TAPPING_TOGGLE was not overridden in a config.h, and if NO_HAPTIC_MOD was defined in config.h.
* Add a toggle key for GUI On/Off in Magic feature (#13830)Drashna Jaelre2021-08-181-0/+3
|
* Steno combinedkeys (#12538)freqmod2021-08-181-0/+15
| | | | | * Add support for steno keys that press adjacent keys simultaniously * Add some docs for steno combined keys
* Rgb matrix/enable modes explicitly (#13758)Drashna Jaelre2021-08-181-3/+3
| | | | | | | | | | | * Change animations to require explicet activation * Add support for legacy config * Make default for now * Add LED Matrix support * change LED Matrix docs
* Fix `combo_disable` (#13988)Pete Sevander2021-08-141-8/+10
| | | | | | - Dump key buffer when combos are disabled. - Recursive calls to `dump_key_buffer` need to start dumping the buffer from index i+1 to avoid possible infinite loops. - Handle combo key releases even though combo processing is disabled.
* Process combos earlier & overlapping combos (#8591)Pete Sevander2021-08-062-108/+476
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Combo processing improvements. Now it is possible to use ModTap and LayerTap keys as part of combos. Overlapping combos also don't trigger all the combos, just exactly the one that you press. New settings: - COMBO_MUST_HOLD_MODS - COMBO_MOD_TERM - COMBO_TERM_PER_COMBO - COMBO_MUST_HOLD_PER_COMBO - COMBO_STRICT_TIMER - COMBO_NO_TIMER * Remove the size flags from combo_t struct boolean members. This in the end actually saves space as the members are accessed so many times. The amount of operations needed to access the bits uses more memory than setting the size saves. * Fix `process_combo_key_release` not called correctly with tap-only combos * Fix not passing a pointer when NO_ACTION_TAPPING is defined. * Docs for `COMBO_ONLY_FROM_LAYER` * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update quantum/process_keycode/process_combo.c Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Add `EXTRA_SHORT_COMBOS` option. Stuff combo's `disabled` and `active` flags into `state`. Possibly can save some space. * Add more examples and clarify things with dict management system. - Simple examples now has a combo that has modifiers included. - The slightly more advanced examples now are actually more advanced instead of just `tap_code16(<modded-keycode>)`. - Added a note that `COMBO_ACTION`s are not needed anymore as you can just use custom keycodes. - Added a note that the `g/keymap_combo.h` macros use the `process_combo_event` function and that it is not usable in one's keymap afterwards. * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Change "the" combo action example to "email" example. * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Fix sneaky infinite loop with `combo_disable()` No need to call `dump_key_buffer` when disabling combos because the buffer is either being dumped if a combo-key was pressed, or the buffer is empty if a non-combo-key is pressed. * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
* [BUG] Fix Key Override includes (#13831)Drashna Jaelre2021-08-011-1/+1
| | | | | * [BUG] Fix Key Override includes * simplify includes
* Minor tidy up of key overrides (#13747)Joel Challis2021-07-283-29/+11
| | | | | | | * Minor tidy up of key overrides * Update quantum/quantum.c * Update quantum/quantum.c