Commit Graph

2770 Commits

Author SHA1 Message Date
Ryan
273d8d6a1a
qmk docs: restore --port and --browser arguments (#24623)
* `qmk docs`: restore `--port` and `--browser` arguments

* Make docs command args always a list
2025-02-01 21:19:30 +11:00
Pascal Getreuer
544ddde113
[Core] Add Chordal Hold, an "opposite hands rule" tap-hold option similar to Achordion, Bilateral Combinations. (#24560)
* Chordal Hold: restrict what chords settle as hold

* Chordal Hold: docs and further improvements

* Fix formatting.

* Doc rewording and minor edit.

* Support Chordal Hold of multiple tap-hold keys.

* Fix formatting.

* Simplification and additional test.

* Fix formatting.

* Tighten tests.

* Add test two_mod_taps_same_hand_hold_til_timeout.

* Revise handing of pairs of tap-hold keys.

* Generate a default chordal_hold_layout.

* Document chordal_hold_handedness().

* Add license notice to new and branched files in PR.

* Add `tapping.chordal_hold` property for info.json.

* Update docs/reference_info_json.md

* Revise "hand" jsonschema.

* Chordal Hold: Improved layout handedness heuristic.

This commit improves the heuristic used in generate-keyboard-c for
inferring key handedness from keyboard.json geometry data.

Heuristic summary:

1. If the layout is symmetric (e.g. most split keyboards), guess the
   handedness based on the sign of (x - layout_x_midpoint).

2. Otherwise, if the layout has a key of >=6u width, it is probably the
   spacebar. Form a dividing line through the spacebar, nearly vertical
   but with a slight angle to follow typical row stagger.

3. Otherwise, assume handedness based on the widest horizontal
   separation.

I have tested this strategy on a couple dozen keyboards and found it to
work reliably.

* Use Optional instead of `| None`.

* Refactor to avoid lambdas.

* Remove trailing comma in chordal_hold_layout.

* Minor docs edits.

* Revise to allow combining multiple same-hand mods.

This commit revises Chordal Hold as described in discussion in
https://github.com/qmk/qmk_firmware/pull/24560#discussion_r1894655238

1. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, RCTL_T(KC_A)↑" before the tapping
   term, RCTL_T(KC_A) is settled as tapped.
2. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, RSFT_T(KC_C)↑", both RCTL_T(KC_A)
   and RSFT_T(KC_C) are settled as tapped.
3. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, KC_U↓" (all keys on the same side),
   both RCTL_T(KC_A) and RSFT_T(KC_C) are settled as tapped.
4. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, LSFT_T(KC_T)↓", with the third key
   on the other side, we allow Permissive Hold or Hold On Other Keypress
   to decide how/when to settle the keys.
5. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓" held until the tapping term, the
   keys are settled as held.

1–3 provide same-hand roll protection. 4–5 are for combining multiple
same-hand modifiers.

I've updated the unit tests and have been running it on my keyboard, for
a few hours so far, and all seems good. I really like this scheme. It
allows combining same-side mods, yet it also has roll protection on
streaks. For me, this feels like Achordion, but clearly better streak
handling and improved responsiveness.

* Fix formatting.

* Add a couple tests with LT keys.

* Remove stale use of CHORDAL_HOLD_LAYOUT.

* Fix misspelling lastest -> latest

* Handling tweak for LTs and tests.

* Fix formatting.

* More tests with LT keys.

* Fix formatting.
2025-01-27 12:32:23 +01:00
Ryan
ee63d39058
Unify spi_master headers (#24857)
* Move default config to .c file

* Explicitly define PAL modes for boards with custom init

* Unify spi_master headers
2025-01-26 22:37:37 +01:00
Ryan
ef29a46c87
Unify i2c_master headers (#24846)
* Unify i2c_master headers

* More documentation improvements

* Reorganise PAL mode defaults
2025-01-26 13:48:46 +01:00
Ryan
291d154d7b
Unify UART headers (#24855)
* Remove deprecated defines

* Move default config to .c files

* Unify UART headers

* Clean up docs

* Reorganise PAL mode defaults
2025-01-26 13:46:46 +01:00
QMK Bot
a2353df422 Merge remote-tracking branch 'origin/master' into develop 2025-01-25 15:59:13 +00:00
Xelus22
0a049163f1
[License Violation] add pressplayid (#24869)
add pressplayid lic viol

Co-authored-by: Xelus22 <>
2025-01-25 08:58:38 -07:00
QMK Bot
acb2f34c5c Merge remote-tracking branch 'origin/master' into develop 2025-01-21 00:01:34 +00:00
Rory Chatterton
163b894b97
Updated Licence Violations for Chosfox L75 (#24833)
Co-authored-by: Joel Challis <git@zvecr.com>
2025-01-21 11:01:02 +11:00
Ryan
a98070f212
[Docs] Correct I2C API reference (#24840) 2025-01-20 22:53:35 +00:00
QMK Bot
df8cdde782 Merge remote-tracking branch 'origin/master' into develop 2025-01-20 21:33:27 +00:00
Nick Brassel
a573931fef
License violations updates. (#24831) 2025-01-21 08:32:52 +11:00
QMK Bot
1174d16b5a Merge remote-tracking branch 'origin/master' into develop 2025-01-15 19:36:54 +00:00
Haim Gelfenbeyn
7b83bb9d26
Allow running Docker container on MacOS (without in-container USB support) (#24412) 2025-01-16 06:36:20 +11:00
QMK Bot
8247f9e114 Merge remote-tracking branch 'origin/master' into develop 2025-01-08 03:13:29 +00:00
jack
95c74b6276
[Docs] Fix wording in Mod Tap documentation (#24796) 2025-01-07 19:13:04 -08:00
Joel Challis
6facb7a079
Convert stray legacy warn/info docs panels (#24799) 2025-01-07 19:12:54 -08:00
QMK Bot
b01db68476 Merge remote-tracking branch 'origin/master' into develop 2025-01-02 11:45:59 +00:00
Tocho Tochev
ac140e563c
Fix link to TMK magic commands (#24773) 2025-01-02 12:45:26 +01:00
Will Spooner
b603094995
Add leader_add_user callback (#24266) 2025-01-01 23:12:58 -08:00
j-hap
38eb643a82
Add keymap-extras for EurKEY layout (#24241)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2024-12-23 23:23:51 -08:00
J
58807b0288
Clarify keymap location and format in newbs_building_firmware.md (#24663) 2024-12-22 12:23:14 -08:00
Nick Brassel
597bbcb567
Add licensing violations page. (#24697) 2024-12-13 20:42:47 +11:00
russell-myers1
93765bb0ef
Update hardware_keyboard_guidelines.md to Fix Typos (#24671)
Corrected a typo in the phrase "iOS device need lessthan 100" to "iOS devices need less than 100."
This was to improve clarity and professionalism of the doc.
2024-12-03 11:35:39 -07:00
Ryan
97547ac762
Update leftover RGB keycodes (#24653) 2024-11-30 05:30:05 +00:00
Nick Brassel
b7b0eb76a9
develop 2024q4 changelog. (#24638) 2024-11-27 21:19:17 +11:00
Joel Challis
4a5bae51cd
[Feature] Add keycode PDF(layer) to set the default layer in EEPROM (#24630)
* [Feature] Add keycode PDF(layer) to set the default layer in EEPROM (#21881)

* Apply suggestions from code review

Co-authored-by: Nick Brassel <nick@tzarc.org>

---------

Co-authored-by: Nebuleon <2391500+Nebuleon@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2024-11-23 10:09:34 +00:00
QMK Bot
9e9b4acbde Merge remote-tracking branch 'origin/master' into develop 2024-11-21 18:47:10 +00:00
Joel Challis
57be487161
Fix rendering of reference_configurator_support.md (#24629) 2024-11-21 18:46:36 +00:00
Ryan
65a8a5ff69
qmk find: expand operator support (#24468) 2024-11-21 22:57:36 +11:00
Drashna Jaelre
36b5559b99
[Core] Add Layer Lock feature (#23430)
Co-authored-by: Daniel <1767914+iamdanielv@users.noreply.github.com>
Co-authored-by: Pascal Getreuer <getreuer@google.com>
Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com>
2024-11-21 17:31:54 +11:00
HorrorTroll
39161b9ee7
Added MCU support for ArteryTek AT32F415 (#23445) 2024-11-21 17:28:28 +11:00
Ryan
638b22d057
qmk new-keyboard: separate dev board and MCU selection (#24548) 2024-11-21 17:22:14 +11:00
Ryan
9c86583981
Backward compatibility for new RGB keycode handling (#24490)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2024-11-20 09:53:33 +11:00
QMK Bot
0853a8ea35 Merge remote-tracking branch 'origin/master' into develop 2024-11-19 20:38:13 +00:00
russell-myers1
0988523851
Fix typo in docs/api_development_overview.md (#24620) 2024-11-19 13:37:39 -07:00
QMK Bot
7936a791ed Merge remote-tracking branch 'origin/master' into develop 2024-11-17 15:06:31 +00:00
Amund Tenstad
3a6df60ba5
docs: fix RWIN alias (#24610) 2024-11-17 15:05:57 +00:00
QMK Bot
310c4847d5 Merge remote-tracking branch 'origin/master' into develop 2024-11-15 18:16:23 +00:00
Amund Tenstad
f4e58eeff4
docs: move description of host_language from Macros to Language-specific Keycodes (#24584)
Co-authored-by: フィルターペーパー <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-11-15 11:15:48 -07:00
QMK Bot
79a661fe61 Merge remote-tracking branch 'origin/master' into develop 2024-11-14 18:00:36 +00:00
Ryan
46236ce3de
[docs] Improve halconf/mcuconf code examples (#24597) 2024-11-14 18:00:02 +00:00
Nick Brassel
0bda0f4775
Revert removal of QK_OUTPUT_AUTO, fixup docs to reflect. (#24593) 2024-11-14 21:16:52 +11:00
Ryan
a3cfb1dab7
Joystick: add support for 8-way hat switch (#24515) 2024-11-09 14:10:10 -08:00
QMK Bot
69093f6de9 Merge remote-tracking branch 'origin/master' into develop 2024-11-09 19:04:48 +00:00
Ryan
3eb172d08e
[docs] Turn on icons for external links (#24580) 2024-11-09 12:04:14 -07:00
QMK Bot
a8fc265bf1 Merge remote-tracking branch 'origin/master' into develop 2024-11-09 16:49:43 +00:00
Ryan
b3f5408e72
[docs] Fix dead link to keyboard list in newbs.md (#24579) 2024-11-09 09:49:11 -07:00
Ryan
9884e4982b
Rename RGB/HSV structs: keyboard-level code (#24476) 2024-10-12 19:00:56 +01:00
Ryan
6fa11bf219
Separate RGBLight/RGB Matrix keycode handling (#23679)
* Separate RGBLight/RGB Matrix keycode handling

* Remove `_DISABLE_KEYCODES` handling

* Update RGB Matrix keycode docs

* Update underglow keycodes for previously migrated boards

* Update keycodes for boards with custom handling

* Fix typos

* Fix bad merge
2024-10-12 18:43:50 +02:00