summaryrefslogtreecommitdiffstats
path: root/quantum
Commit message (Collapse)AuthorAgeFilesLines
* Refactor `quantum/command.{c,h}` for code size & {read,maintain}ability (#11842)Liyang HU2021-08-072-317/+277
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Remove Full Bootmagic (#13846)James Young2021-08-065-267/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Merge remote-tracking branch 'origin/master' into developQMK Bot2021-08-061-1/+1
|\
| * Avoid name conflicts with usb_hid Arduino code (#13870)Joel Challis2021-08-061-1/+1
| | | | | | | | | | * Avoid name conflicts with usb_hid Arduino code * Fix tests
* | Process combos earlier & overlapping combos (#8591)Pete Sevander2021-08-064-112/+498
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-08-042-2/+17
|\|
| * Add bootloader section to keyboard template (#13774)Drashna Jaelre2021-08-042-2/+17
| | | | | | | | | | | | | | | | | | * 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>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-08-031-2/+12
|\|
| * Fix overflows in WPM calculations (#13128)Joakim Tufvegren2021-08-041-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Move print/debug files to quantum (#12069)Joel Challis2021-08-038-0/+444
| | | | | | | | | | * move print/debug files to quantum * Update comments
* | Unconditionally call led_init_ports (#12116)Joel Challis2021-08-031-3/+0
| | | | | | | | | | * Unconditionally call led_init_ports * Another call to led_init_ports
* | [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-284-34/+12
| | | | | | | | | | | | | | * Minor tidy up of key overrides * Update quantum/quantum.c * Update quantum/quantum.c
* | matrix_scan_x -> x_task (#13748)Joel Challis2021-07-2811-29/+25
| |
* | Align AW20216 driver (#13712)Joel Challis2021-07-271-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | Haptic: driver-> feature (#13713)Joel Challis2021-07-256-2/+543
| |
* | Merge remote-tracking branch 'upstream/master' into developNick Brassel2021-07-256-40/+7
|\|
| * Refactor some platform dependent logic (#13675)Joel Challis2021-07-246-40/+7
| |
* | Avoid LTO conficts on arm_atsam (#13676)Joel Challis2021-07-241-1/+1
| |
* | Disables rgblight twinkle by default. (#13677)Nick Brassel2021-07-241-1/+0
| | | | | | | | | | | | | | | | | | | | 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 ```
* | Retain brightness with lighting layers (#13025)Patrick Stadler2021-07-211-0/+7
| | | | | | | | Add guard `RGBLIGHT_LAYERS_RETAIN_VAL` to retain the currently used val when applying lighting layers.
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-07-204-0/+958
|\|
| * Adds Swedish Mac ISO and ANSI keymaps (#13055)Carl-Fredrik Arvidson2021-07-204-0/+958
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | Switch Ergodox Infinity over to split_common (#13481)Joakim Tufvegren2021-07-191-1/+1
| |
* | Revert "Add rgblight to RGB Matrix VPATH" (#13559)Ryan2021-07-171-1/+0
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-07-171-100/+96
|\|
| * remove `RGBLIGHT_H_DUMMY_DEFINE` macro from rgblight.h (#13569)Takeshi ISHII2021-07-171-100/+96
| |
* | Move `SENDSTRING_BELL` code to `send_string.h` (#13566)Ryan2021-07-162-3/+8
| |
* | Fix LED Hit Counter for LED/RGB Matrix (#12674)Johannes Choo2021-07-162-2/+2
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-07-161-4/+0
|\|
| * remove `#include "rgblight.h"` when `defined(RGB_MATRIX_ENABLE)` from ↵Takeshi ISHII2021-07-161-4/+0
| | | | | | | | quantum.h (#13555)
* | Dual RGB Matrix IS31FL3737 driver support to address #13442 (#13457)Chris Cullin2021-07-151-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* | [Feature] Key Overrides (#11422)Jonas Gessner2021-07-136-3/+714
| |
* | Change the prototype of matrix_output_unselect_delay() (#13045)Takeshi ISHII2021-07-133-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 } } ```
* | Fix two out of bounds accesses from #13330. (#13525)Joakim Tufvegren2021-07-121-2/+2
| | | | | | | | | | 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).
* | Unify matrix for split common and regular matrix (#13330)Drashna Jaelre2021-07-112-348/+125
| |
* | `keymap_extras`: Remove deprecated defines (#12949)Ryan2021-07-0623-925/+1
| |
* | Allow invert of SPLIT_HAND_PIN logic (#13433)Jameson Thatcher2021-07-051-0/+4
| | | | | | | | | | | | |