Commit Graph

17163 Commits (383fae55c5d53626eda210298f15fa6810510d5e)

Author SHA1 Message Date
Liyang HU 383fae55c5
Refactor `quantum/command.{c,h}` for code size & {read,maintain}ability (#11842)
* 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-07 17:12:57 +10:00
James Young a03aa301de
Remove Full Bootmagic (#13846)
* 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-06 23:59:56 -07:00
QMK Bot 0bc9090b1f Merge remote-tracking branch 'origin/master' into develop 2021-08-07 06:52:44 +00:00
kb-elmo 85c32da989
[Keyboard] Added 67mk_E PCB (#13869)
* added 67mk_E PCB

* add layouts
2021-08-06 23:52:39 -07:00
bomb a9b0750f7b
[Keyboard] Modify key drive pins for mojo68 (#13863) 2021-08-06 23:52:18 -07:00
QMK Bot 7b709aaecc Merge remote-tracking branch 'origin/master' into develop 2021-08-07 06:52:11 +00:00
Alex Ong 8a9688bc64
[Keyboard] Use new matrix_output_select_delay api (#13861)
* Use new matrix_output_select_delay api

* Updated delay to 15 after more spamming
2021-08-06 23:51:38 -07:00
QMK Bot 1f94e99565 Merge remote-tracking branch 'origin/master' into develop 2021-08-07 06:51:32 +00:00
Cian Johnston 9d88786b6f
[Keyboard] add handwired/oem_ansi_fullsize (#13857)
* 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-06 23:51:03 -07:00
QMK Bot 07a7724f2b Merge remote-tracking branch 'origin/master' into develop 2021-08-07 06:50:18 +00:00
Jack Kenney e4342f8630
[Keymap] JackKenney's keymap for GMMK Pro (#13853) 2021-08-06 23:49:25 -07:00
QMK Bot 58bb1dbde7 Merge remote-tracking branch 'origin/master' into develop 2021-08-07 06:07:10 +00:00
Drashna Jaelre 9c03d41f6a
[Keyboard] Fix oled_task_user for chocolatebar (#13911) 2021-08-06 23:06:39 -07:00
QMK Bot e8112e49cd Merge remote-tracking branch 'origin/master' into develop 2021-08-07 05:59:33 +00:00
James Young 95fed3bfcf
clean up CRLF instances (#13910) 2021-08-07 15:59:03 +10:00
QMK Bot e2ac8d5f3e Merge remote-tracking branch 'origin/master' into develop 2021-08-07 05:48:48 +00:00
Moritz a3cb3e139a
[Keyboard] Add Fave87 (#13873)
Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-06 22:48:17 -07:00
QMK Bot b38fdc0a57 Merge remote-tracking branch 'origin/master' into develop 2021-08-07 04:48:50 +00:00
misonoworks d917bfb277
[Keyboard] Add MisonoWorks Chocolate Bar keyboard (#13798)
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-06 21:48:19 -07:00
QMK Bot 36b2f06d9e Merge remote-tracking branch 'origin/master' into develop 2021-08-07 00:03:19 +00:00
mechlovin 744019c032
[Keyboard] Add Hex4B PCB (#13435)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: vuhopkep <boy9x0@gmail.com>
2021-08-06 17:02:46 -07:00
QMK Bot 25425dc9bc Merge remote-tracking branch 'origin/master' into develop 2021-08-07 00:02:28 +00:00
yfuku 6721825df5
[Keyboard] Add owl8 keyboard (#13380)
* add owl8

* use DIRECT_PINS

* fix encoder

* Changed to use action_exec.
2021-08-06 17:01:52 -07:00
Sergey Vlasov 610035dce8
Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys (#9404)
* 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-07 09:16:26 +10:00
Gigahawk 13b94b468d
Copy GMMK Pro screw specs to ISO readme (#13908) 2021-08-07 08:11:17 +10:00
QMK Bot 9e7bfdf6c6 Merge remote-tracking branch 'origin/master' into develop 2021-08-06 11:55:12 +00:00
Gigahawk bdf86c4cbd
Add replacement screw specifications to GMMK Pro readme (#13903) 2021-08-06 04:54:43 -07:00
Nick Brassel f24bca5bb3
Update ChibiOS-Contrib, mirroring script. (#13896) 2021-08-06 16:40:12 +10:00
QMK Bot 538d9d7890 Merge remote-tracking branch 'origin/master' into develop 2021-08-06 05:54:10 +00:00
Joel Challis c588d232cb
Avoid name conflicts with usb_hid Arduino code (#13870)
* Avoid name conflicts with usb_hid Arduino code

* Fix tests
2021-08-06 15:53:38 +10:00
QMK Bot 3ba2ce40a5 Merge remote-tracking branch 'origin/master' into develop 2021-08-06 05:18:45 +00:00
James Young b9a1b61f6a
Flehrad Tradestation Refactor (#13897)
* 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 22:18:17 -07:00
Drashna Jaelre ea5d778f90
[Keyboard] Remove console from keebio via keyboards (#13901) 2021-08-05 21:29:29 -07:00
QMK Bot 293168f444 Merge remote-tracking branch 'origin/master' into develop 2021-08-06 04:28:58 +00:00
James Young 28b59c30d2
MetaMechs Timber Wolf Configurator Fixes (#13895)
* 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-05 21:28:26 -07:00
Nick Brassel 0dafd83f72
Fix up builds after #8591 (#13900) 2021-08-06 09:57:09 +10:00
Pete Sevander 7e983796e1
Process combos earlier & overlapping combos (#8591)
* 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 09:44:57 +10:00
Juan Pablo Kutianski 07553b41f0
[Feature] Swap buttons on PS2 Mouse/Trackball (#9205)
* [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-06 09:09:58 +10:00
Takeshi ISHII 339675693b
add yaml_build_options target (#10533)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-06 08:18:32 +10:00
Nick Brassel 6aaf3e84e9
Rework as per 9824 (#13898) 2021-08-06 08:14:43 +10:00
JohSchneider bcb6e23387
Arm ps2 mouse interrupt (#6490)
* 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-06 07:51:24 +10:00
Joel Challis 5bbc527460
Bump gtest (#13885)
* Bump gtest

* Pin to latest release
2021-08-05 10:46:14 +10:00
Joel Challis bdaea259af
Tidy up rgbkb/mun (#13801)
* Tidy up rgbkb/mun
2021-08-05 00:59:50 +01:00
QMK Bot cb4d91f85f Merge remote-tracking branch 'origin/master' into develop 2021-08-04 21:33:19 +00:00
James Young f4c55db8dd
cKeys Handwire 101 Refactor (#13879)
* 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 22:32:27 +01:00
Dasky 3917fd5639
[Keyboard] Fix knops keymaps (#13872) 2021-08-04 12:10:31 -07:00
Drashna Jaelre 3568eafd65
[Keyboard] Switch Draculad to using WPM char hack (#13886) 2021-08-04 11:30:49 -07:00
QMK Bot 6525b82f5f Merge remote-tracking branch 'origin/master' into develop 2021-08-04 12:25:28 +00:00
James Young 4445455c1f
BM65ISO: refactor layout macro (#13860) 2021-08-04 22:24:54 +10:00
QMK Bot d9f30d366a Merge remote-tracking branch 'origin/master' into develop 2021-08-04 10:35:54 +00:00