summaryrefslogtreecommitdiff
path: root/quantum
AgeCommit message (Collapse)Author
2022-06-05Fix and add unit tests for Caps Word to work with Unicode Map, Auto Shift, ↵Pascal Getreuer
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>
2022-05-20Continue Caps Word when AltGr (right Alt) is held. (#17156)Pascal Getreuer
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.
2022-05-15Rename keymap_extras headers for consistency (#16939)Ryan
2022-05-15[Feature] Add support for multiple switchs/solenoids to Haptic Feedback ↵Drashna Jaelre
engine (#15657)
2022-05-14Enhancement and fixes of "Secure" feature (#16958)Drashna Jaelre
2022-05-14Revert "Fix kinetic mouse mode (#16951)" (#17095)Drashna Jaelre
2022-05-14[Core] Add Caps Word feature to core (#16588)Pascal Getreuer
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-14Fix kinetic mouse mode (#16951)Yorick Peterse
Co-authored-by: Jan Christoph Ebersbach <jceb@e-jc.de>
2022-05-14[Core] Add Reboot keycode to core (#15990)Drashna Jaelre
2022-04-28Remove ARM pgm_read_word workaround in rgblight (#16961)Joel Challis
2022-04-29Move disable_jtag to platforms (#16960)Joel Challis
2022-04-29Sendstring keycode overhaul (#16941)Ryan
2022-04-27Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-04-28Add Ukrainian keymap header (#16947)Ryan
* Add Ukrainian keymap header * Docs
2022-04-26Joystick: Simplify report descriptor and clean up error messages (#16926)Ryan
2022-04-25Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-04-25Add missing dead key LUTs for sendstring headers (#16929)Ryan
2022-04-22Fix AVR backlight breathing: low brightness limit & exceeding breathing ↵customMK
table max index (#16770) Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: David Hoelscher <infinityis@users.noreply.github.com>
2022-04-21Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-04-21rgblight: Fix rgblight_blink_layer when multiple layers are active (#16824)Simon Arlott
2022-04-19Add hacky via support for RGB Matrix (#16086)Drashna Jaelre
2022-04-19Fixes #16705 : digital rain follows val (#16716)KoenGoe
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-04-19[Core] Use a mutex guard for split shared memory (#16647)Stefan Kerkmann
2022-04-19Add support for multiple sensors to pmw3360 (#15996)uqs
2022-04-18Fix one-shot locked modifiers (#16114)Denis Savran
* Fix state updates of one-shot locked modifiers Activating additional one-shot locked modifiers removed previously enabled locked modifiers from the state. `get_oneshot_locked_mods` returned zero when two or more one-shot locked modifiers were enabled and then one was disabled. * Do not delete one-shot locked modifiers on a one-shot layer toggle Non-locked one-shot modifiers are not removed so this behavior adds inconsistency. Also the one-shot locked modifiers state was reset without unregistering any modifiers.
2022-04-18Add customizable snake and knight animation increments (#16337)Michał Szczepaniak
2022-04-17Fix #16859. (#16865)Nick Brassel
2022-04-17[QP] Check BPP capabilities before loading the palette (#16863)Stefan Kerkmann
2022-04-17rgblight: Add functions to stop blinking one or all but one layer (#16859)Simon Arlott
2022-04-16Heatmap incorrect matrix effect workaround (#16315)Albert Y
2022-04-16Add GET_TAPPING_TERM macro to reduce duplicate code (#16681)Jouke Witteveen
* 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>
2022-04-16Implement XAP 'secure' core requirements (#16843)Joel Challis
Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-04-16Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-04-16rgblight: Limit max repeat times in rgblight_blink_layer_repeat (#16860)Simon Arlott
2022-04-13Quantum Painter (#10174)Nick Brassel
* 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.
2022-04-09Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-04-09[Bug] Fix matrix scan reporting interval (#16825)Simon Arlott
2022-03-26Joystick feature updates (#16732)Ryan
* Joystick feature updates * Move new functions to joystick.h * Docs
2022-03-17[Core] Add compile/make macro to core (#15959)Drashna Jaelre
* [Core] Add KC_MAKE keycode to core fix linting fix testing error work around test idiocyncracies fix more lint something something stupid tests add doc * updates based on feedback * Add bad names * Fixup docs * semantics but cleaner Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Hide oneshot checks behind preprocessors * Move no-compile option around * Fix formatting * make shift optional * Make opt in * fix formatting * update send string function name Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: Joel Challis <git@zvecr.com>
2022-03-14Rename TICK to TICK_EVENT to prevent naming conflicts (#16649)Stefan Kerkmann
2022-03-13Mousekeys fix (#16640)jack
2022-03-14Fix oneshot toggle logic (#16630)Drashna Jaelre
* Fix oneshot toggle logic * Enable oneshots by default * Decrement eeconfig magic number due to eeconfig changes
2022-03-14[Core] Move `has_mouse_report_changed` function to `report.c` (#16543)Drashna Jaelre
* Move 'has_mouse_report_changed' checkto report.c * change mousekeys to use memcpy * fix linting issues
2022-03-11Fix flipped One Shot logic (#16617)Pascal Getreuer
2022-03-10Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-03-10Remove `matrix_key_count()` (#16603)Ryan
* Remove `matrix_key_count()` * Remove `matrix_bitpop()`
2022-03-10Missed some erroneous prints. (#16597)Nick Brassel
2022-03-09Fixup builds. (#16596)Nick Brassel
2022-03-09Fix missing definition for non-encoder case. (#16593)Nick Brassel
2022-03-09Add support for encoder mapping. (#13286)Nick Brassel