summaryrefslogtreecommitdiff
path: root/quantum
AgeCommit message (Collapse)Author
2021-08-18Begin to carve out platform/protocol API - Single main loop (#13843)Joel Challis
* Begin to carve out platform/protocol API * Fix up after rebase
2021-08-18Add a toggle key for GUI On/Off in Magic feature (#13830)Drashna Jaelre
2021-08-18Digitizer HID interface : absolute coordinates for mouse cursor (#12851)a-chol
* Add digitizer HID interface for setting the mouse cursor position at absolute screen coordinates. Tested on Pro Micro, Proton C and Blackpill. * Update docs/feature_digitizer.md Co-authored-by: Ryan <fauxpark@gmail.com> * Update tmk_core/protocol/usb_descriptor.c Co-authored-by: Ryan <fauxpark@gmail.com> * Add missing copyrights Add V-USB support * Add support for digitizer dedicated endpoint for lufa and chibios. Fix formatting issues Move digitizer_task definition to the feature's base implementation file * Run cformat on modified files * Change digitizer report usage to Digitizer instead of Pen to avoid pointer disappearing on Windows. * Update tmk_core/protocol/vusb/vusb.c Co-authored-by: Ryan <fauxpark@gmail.com> * Run cformat from docker image * Remove send_digitizer from host_driver_t and instead rely on the declaration being the interface to the implementation in each HW-specific usb implementation. * Fix build : send_digitizer shouldn't be static in vusb and add weak-linkage implementation for tests without usb implementation * Change digitizer user interface to match pointing device's * Update documentation with new API Co-authored-by: a-chol <nothing@none.com> Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-18Steno combinedkeys (#12538)freqmod
* Add support for steno keys that press adjacent keys simultaniously * Add some docs for steno combined keys
2021-08-18Rgb matrix/enable modes explicitly (#13758)Drashna Jaelre
* Change animations to require explicet activation * Add support for legacy config * Make default for now * Add LED Matrix support * change LED Matrix docs
2021-08-15Fixup Audio startup and add to documents (#13606)Drashna Jaelre
* Fixup Audio startup and add to documents * fix doc descriptions
2021-08-15Fix ifdefs for OLED split sync code (#14017)Drashna Jaelre
2021-08-15Enable sync of OLED/ST7565 display on/off state on Splits (#13542)Drashna Jaelre
* Enable sync of OLED/ST7565 display on/off state on Splits * Only send if states are not matched Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-14Fix `combo_disable` (#13988)Pete Sevander
- 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.
2021-08-09Fix compilation issue. (#13926)Nick Brassel
2021-08-09Add support for STM32F407x MCUs. (#13718)thpoll83
* Add support for STM32F407x MCUs. * Removing STMF407 MCU variation * Update quantum/mcu_selection.mk Remove options for dfu flashing Co-authored-by: Ryan <fauxpark@gmail.com> * DISABLE STM32_USB_USE_OTG1 * Update platforms/chibios/GENERIC_STM32_F407XE/configs/mcuconf.h Co-authored-by: Drashna Jaelre <drashna@live.com> * Update platforms/chibios/GENERIC_STM32_F407XE/configs/mcuconf.h Co-authored-by: thomas.pollak <thomas.pollak@dynatrace.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-07Refactor `quantum/command.{c,h}` for code size & {read,maintain}ability (#11842)Liyang HU
* quantum/command.c: coalesce `print()`s in `command_common_help()` & `print_version()` Also undo some damage by clang-format in b624f32f94 * quantum/command.c: replace `print(…); print_{,val_}{dec,hex}*(…);` sequences with single `xprintf(…)` `print_{dec,hex}*(…)` are just `#define`s for `xprintf(…)` anyway. Each additional `xprintf(…)` costs ~8 bytes: the call instructions, plus an additional NUL terminator. This _really_ adds up: this commit saves 814 bytes on my ATmega32. * quantum/command.c: optimise `mousekey_console()` for size & legibility Made various tweaks to the interface, but still functionally identical. Assume `KC_1`…`KC_0` to be contiguous, and removed `numkey2num(…)` entirely. It was exported in `command.h` by 1a0bac8bcc for no obvious reason, before which it was `static`. I doubt anyone uses it. `mousekey_console()` is now enabled regardless of `MK_3_SPEED`. Needs fleshing out for things other than the X11 variant though. This commit saves 638 bytes on my ATmega32.
2021-08-06Remove Full Bootmagic (#13846)James Young
* disambiguate Bootmagic rules in keymaps The files edited by this commit were added at a point in time where `BOOTMAGIC_ENABLE = yes` enabled full Bootmagic. This commit edits the files to specify that full Bootmagic is intended. * remove BOOTMAGIC_ENABLE=full setting * unify commented BOOTMAGIC_ENABLE rules in keyboards Explicitly sets `BOOTMAGIC_ENABLE = no` in keyboards where the rule was commented out. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-zA-Z]\+\).*;\1 = no # Virtual DIP switch configuration;g' {} + ``` * remove commented Bootmagic rules from keymap/user level Command: ``` find keyboards/ layouts/ users/ -type f -name 'rules.mk' -exec sed -i -e '/#.*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*/d' {} + ``` * update keyboard BOOTMAGIC_ENABLE rule formatting Sets the formatting of BOOTMAGIC_ENABLE rules to `BOOTMAGIC_ENABLE = [value]`, without the inline comments (which will be replaced later). Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + ``` * update keyboards' BOOTMAGIC_ENABLE settings Updates keyboard `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = \)full;\1lite;g' '{}' + ``` * update keymap/user BOOTMAGIC_ENABLE settings Updates keymap/user `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used. Commands: ``` find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' + find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' + ``` * remove and replace inline comments in keyboards and keymap/user files Removes and replaces the inline comments, which have been updated to read `Enable Bootmagic Lite`. Commands: ``` find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = lite\);\1 # Enable Bootmagic Lite;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = yes\);\1 # Enable Bootmagic Lite;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = no\);\1 # Enable Bootmagic Lite;g' '{}' + ``` * rename improperly named makefiles Some files intended to be used as makefiles had improper names causing them to not be used as intended when building. This commit corrects the filenames of the affected files. * update renamed file with new rule formatting * update QMK's template files Updates QMK's `rules.mk` templates to use the new inline comment. * update QMK Docs - remove documentation of full Bootmagic - update links to Bootmagic Lite doc - add doc for Magic Keycodes * rules.mk patch for coarse/ixora and coarse/vinta
2021-08-06Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06Avoid name conflicts with usb_hid Arduino code (#13870)Joel Challis
* Avoid name conflicts with usb_hid Arduino code * Fix tests
2021-08-06Process combos earlier & overlapping combos (#8591)Pete Sevander
* 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>
2021-08-04Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-04Add bootloader section to keyboard template (#13774)Drashna Jaelre
* Add bootloader section to keyboard template * Apply suggestions from code review Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-03Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-04Fix overflows in WPM calculations (#13128)Joakim Tufvegren
* Fix overflow in WPM calculations. First, the "fresh" WPM calculation could end up being up to 12000 (with default `WPM_ESTIMATED_WORD_SIZE`) if keys were pressed more or less simultaneously. This value has now been clamped down to 255, in effect clamping WPM to its max value of 255. Second, with `WPM_ALLOW_COUNT_REGRESSION` enabled, it was possible to regress the WPM below 0 (i.e. to 255) by just repeatedly pressing backspace. * Fix WPM being limited to 235 due to float/int logic.
2021-08-03Move print/debug files to quantum (#12069)Joel Challis
* move print/debug files to quantum * Update comments
2021-08-03Unconditionally call led_init_ports (#12116)Joel Challis
* Unconditionally call led_init_ports * Another call to led_init_ports
2021-08-01[BUG] Fix Key Override includes (#13831)Drashna Jaelre
* [BUG] Fix Key Override includes * simplify includes
2021-07-28Minor tidy up of key overrides (#13747)Joel Challis
* Minor tidy up of key overrides * Update quantum/quantum.c * Update quantum/quantum.c
2021-07-28matrix_scan_x -> x_task (#13748)Joel Challis
2021-07-27Align AW20216 driver (#13712)Joel Challis
* Align AW20216 driver * Update drivers/awinic/aw20216.h Co-authored-by: Ryan <fauxpark@gmail.com> * Review comments * formatting fixes * stop if start failed? * review comments Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-25Haptic: driver-> feature (#13713)Joel Challis
2021-07-25Merge remote-tracking branch 'upstream/master' into developNick Brassel
2021-07-24Refactor some platform dependent logic (#13675)Joel Challis
2021-07-24Avoid LTO conficts on arm_atsam (#13676)Joel Challis
2021-07-24Disables rgblight twinkle by default. (#13677)Nick Brassel
This takes up about 700 bytes of space, and needs to be swapped to opt-in, rather than opt-out. Build failures in general on AVR due to the scarcity of available flash. People can re-enable it by adding to their keymap's config.h files: ``` #define RGBLIGHT_EFFECT_TWINKLE ```
2021-07-21Retain brightness with lighting layers (#13025)Patrick Stadler
Add guard `RGBLIGHT_LAYERS_RETAIN_VAL` to retain the currently used val when applying lighting layers.
2021-07-20Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-07-20Adds Swedish Mac ISO and ANSI keymaps (#13055)Carl-Fredrik Arvidson
* Adds Swedish Mac ISO and ANSI keymaps * Replaces NBSP with space * Adds missing keys * Remove duplicates * Remove duplicates * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Change case and remove whitespace * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Fix uppercase * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Add specific files for Swedish Pro * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Remove whitespace Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-19Switch Ergodox Infinity over to split_common (#13481)Joakim Tufvegren
2021-07-17Revert "Add rgblight to RGB Matrix VPATH" (#13559)Ryan
2021-07-17Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-07-17remove `RGBLIGHT_H_DUMMY_DEFINE` macro from rgblight.h (#13569)Takeshi ISHII
2021-07-16Move `SENDSTRING_BELL` code to `send_string.h` (#13566)Ryan
2021-07-16Fix LED Hit Counter for LED/RGB Matrix (#12674)Johannes Choo
2021-07-16Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-07-16remove `#include "rgblight.h"` when `defined(RGB_MATRIX_ENABLE)` from ↵Takeshi ISHII
quantum.h (#13555)
2021-07-15Dual RGB Matrix IS31FL3737 driver support to address #13442 (#13457)Chris Cullin
* initial commit * removed changes to write_pwm_buffer * backward compatbility added * fixed issue with backward compatibility * documentation update * removed unneccessary comment. branched from master * updated per comments #13457 * removed blank line * cformat on diff files
2021-07-13[Feature] Key Overrides (#11422)Jonas Gessner
2021-07-13Change the prototype of matrix_output_unselect_delay() (#13045)Takeshi ISHII
The prototype of matrix_output_unselect_delay() has been changed as follows. ```c void matrix_output_unselect_delay(uint8_t line, bool key_pressed); ``` Currently, no keyboard seems to be redefining `matrix_output_unselect_delay()`, so there is no change in the system behavior. With this change, the keyboard level code can get some optimization hints, for example, the following. ```c void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { /* If none of the keys are pressed, * there is no need to wait for time for the next line. */ if (key_pressed) { #ifdef MATRIX_IO_DELAY # if MATRIX_IO_DELAY > 0 wait_us(MATRIX_IO_DELAY); # endif #else wait_us(30); #endif } } ```
2021-07-12Fix two out of bounds accesses from #13330. (#13525)Joakim Tufvegren
Two occurrences of `MATRIX_ROWS` weren't properly changed to `ROWS_PER_HAND` in #13330, causing a crash during boot on at least my Ergodox Infinity (including #13481).
2021-07-11Unify matrix for split common and regular matrix (#13330)Drashna Jaelre
2021-07-06`keymap_extras`: Remove deprecated defines (#12949)Ryan
2021-07-05Allow invert of SPLIT_HAND_PIN logic (#13433)Jameson Thatcher
* added support for inverting the hand pin for split keyboards * Added docs about SPLIT_HAND_LOW_IS_LEFT * Update docs/feature_split_keyboard.md bring #define for split hand pin low for left half name in line with grid pin define Co-authored-by: Joel Challis <git@zvecr.com> * Update quantum/split_common/split_util.c update split hand pin low is left name to match split hand grid define Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Joel Challis <git@zvecr.com>
2021-07-03mousekey: expose current report to users (#13069)Thomas Weißschuh