summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06[Keyboard] Added 67mk_E PCB (#13869)kb-elmo
* added 67mk_E PCB * add layouts
2021-08-06[Keyboard] Modify key drive pins for mojo68 (#13863)bomb
2021-08-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06[Keyboard] Use new matrix_output_select_delay api (#13861)Alex Ong
* Use new matrix_output_select_delay api * Updated delay to 15 after more spamming
2021-08-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06[Keyboard] add handwired/oem_ansi_fullsize (#13857)Cian Johnston
* Add new keyboard oem_ansi_fullsize * clang-fmt * Update keyboards/handwired/oem_ansi_fullsize/rules.mk Co-authored-by: Joel Challis <git@zvecr.com> * Update keyboards/handwired/oem_ansi_fullsize/readme.md Co-authored-by: Joel Challis <git@zvecr.com> * update info.json using qmk c2json * update info.json * move diagram to readme * add matrix cols/rows to info.json * fixup! add matrix cols/rows to info.json * rename layout, fix block comment * s/ansi_fullsize/fullsize_ansi/g Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06[Keymap] JackKenney's keymap for GMMK Pro (#13853)Jack Kenney
2021-08-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06[Keyboard] Fix oled_task_user for chocolatebar (#13911)Drashna Jaelre
2021-08-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-07clean up CRLF instances (#13910)James Young
2021-08-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06[Keyboard] Add Fave87 (#13873)Moritz
Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06[Keyboard] Add MisonoWorks Chocolate Bar keyboard (#13798)misonoworks
Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: autumnisacutie <63772942+autumnisacutie@users.noreply.github.com>
2021-08-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06[Keyboard] Add Hex4B PCB (#13435)mechlovin
Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: vuhopkep <boy9x0@gmail.com>
2021-08-07Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06[Keyboard] Add owl8 keyboard (#13380)yfuku
* add owl8 * use DIRECT_PINS * fix encoder * Changed to use action_exec.
2021-08-07Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys (#9404)Sergey Vlasov
* Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys Implement an additional option for dual-role keys which converts the dual-role key press into a hold action immediately when another key is pressed (this is different from the existing PERMISSIVE_HOLD option, which selects the hold action when another key is tapped (pressed and then released) while the dual-role key is pressed). The Mod-Tap keys already behave in a similar way, unless the IGNORE_MOD_TAP_INTERRUPT option is enabled (but with some additional delays); the added option makes this behavior available for all other kinds of dual-role keys. * [Docs] Update tap-hold docs for HOLD_ON_OTHER_KEY_PRESS Document the newly added HOLD_ON_OTHER_KEY_PRESS option and update the documentation for closely related options (PERMISSIVE_HOLD and IGNORE_MOD_TAP_INTERRUPT). Use Layer Tap instead of Mod Tap in examples for PERMISSIVE_HOLD and HOLD_ON_OTHER_KEY_PRESS, because the effect of using these options with Mod Tap keys is mostly invisible without IGNORE_MOD_TAP_INTERRUPT. Add comments before return statements in sample implementations of `get_ignore_mod_tap_interrupt()`, `get_hold_on_other_key_press()` and `get_permissive_hold()`. Thanks to @Erovia and @precondition for comments and suggestions to improve the documentation.
2021-08-07Copy GMMK Pro screw specs to ISO readme (#13908)Gigahawk
2021-08-06Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-06Add replacement screw specifications to GMMK Pro readme (#13903)Gigahawk
2021-08-06Update ChibiOS-Contrib, mirroring script. (#13896)Nick Brassel
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-06Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-05Flehrad Tradestation Refactor (#13897)James Young
* add license headers Apache 2.0 per the included `license` file. * info.json: use human-friendly formatting * refactor keymaps - split `default` keymap into `default` and `tradestation` keymaps (one for each layout) - remove boilerplate functions - apply four-space indent * partial clean up of rules.mk - update section header comment blocks
2021-08-05[Keyboard] Remove console from keebio via keyboards (#13901)Drashna Jaelre
2021-08-06Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-05MetaMechs Timber Wolf Configurator Fixes (#13895)James Young
* info.json: use human-friendly formatting * info.json: fix key sequences for ISO layouts All the ISO layouts had the Enter key out-of-sequence, causing key-assignment mismatches in QMK Configurator.
2021-08-06Fix up builds after #8591 (#13900)Nick Brassel
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-06[Feature] Swap buttons on PS2 Mouse/Trackball (#9205)Juan Pablo Kutianski
* [Feature Request] Swap buttons on PS2 Mouse/Trackball * [Feature Request] Swap buttons on PS2 Mouse/Trackball * Added id: to the doc * Missing space * Solve comment https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783182 * Solve comments https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783182 & https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783884 * Format code more according to https://docs.qmk.fm/#/coding_conventions_c * change logic to LUT * WIP: Clean up * WIP: Solution with xor operators to mask the change * delete #endif & added the missed xor operator (ahhh) * Variable (mouse_report->buttons): avoid setting twice https://github.com/qmk/qmk_firmware/pull/9205#discussion_r430783884 * Update tmk_core/protocol/ps2_mouse.c Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: juank <juank@fktech.net> Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-06add yaml_build_options target (#10533)Takeshi ISHII
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-06Rework as per 9824 (#13898)Nick Brassel
2021-08-06Arm ps2 mouse interrupt (#6490)JohSchneider
* ps2_mouse on ARM: an interrupt-version of the ps2-mouse code ported to ARM/chibios * ps2_mouse on ARM: link EXT callback-channel selection to the user defined PS2_LINE_CLOCK * ps2_mouse on ARM: replace DELAY_X defines with hardware-agnostic wait_X * ps2_mouse on ARM: replace chibios-specific defines for the pins/lines with defines from quantum/config_common.h and drop the '_LINE' component from teh define name * ps2_mouse on ARM: expose the software-intterupt port as a user editable define * Update docs/feature_ps2_mouse.md Co-Authored-By: Hugo van Kemenade <hugovk@users.noreply.github.com> * Update feature_ps2_mouse.md * use a define to deduce the PS_DATA_PORT instead * reduce all-zero extcfg to oneliner * ps2_mouse: use generic wait instead of avr-delay * Update docs/feature_ps2_mouse.md * ps2_mouse: changes for new chibios version (17.6.0 -> 19.1.0) replacing the legacy externa-interrupt driver with pal-callbacks * ps2_mouse: use PLATFORM_KEY Co-Authored-By: Joel Challis <git@zvecr.com> * ps2_mouse: clang-format corrections * ps2_mouse: add systemlocks using the chibios equivalent to AVRs cli: chSys[Unl|L]ock Co-authored-by: Johannes <you@example.com> Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-05Bump gtest (#13885)Joel Challis
* Bump gtest * Pin to latest release
2021-08-05Tidy up rgbkb/mun (#13801)Joel Challis
* Tidy up rgbkb/mun
2021-08-04Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-04cKeys Handwire 101 Refactor (#13879)James Young
* update info.json - use human-friendly formatting - remove `key_count` key * rename LAYOUT to LAYOUT_ortho_4x4 * refactor default keymap - add license header - qmk cformat pass - keycode grid alignment * remove empty config.h file from default keymap * update Manufacturer and Product strings * tidy up handwire_101.c - add license header - remove boilerplate functions * tidy up handwire_101.h - add license header - remove instructive comment * minor rules.mk tidy-up - remove Bootloader selection sample comments * rewrite SEND_STRING() statements per fauxpark Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
2021-08-04[Keyboard] Fix knops keymaps (#13872)Dasky
2021-08-04[Keyboard] Switch Draculad to using WPM char hack (#13886)Drashna Jaelre
2021-08-04Merge remote-tracking branch 'origin/master' into developQMK Bot
2021-08-04BM65ISO: refactor layout macro (#13860)James Young
2021-08-04Merge remote-tracking branch 'origin/master' into developQMK Bot