Commit Graph

275 Commits

Author SHA1 Message Date
QMK Bot de437c7221 Merge remote-tracking branch 'origin/develop' into xap 2026-02-10 08:18:02 +00:00
Joel Challis 98f05c0136 Allow keymap.json to disable config flags (#25502) 2026-02-10 16:11:02 +08:00
QMK Bot 1f456c3577 Merge remote-tracking branch 'origin/develop' into xap 2026-02-09 01:00:51 +00:00
QMK Bot 005b778164 Merge remote-tracking branch 'origin/master' into develop 2026-02-09 01:00:12 +00:00
Joel Challis b6d46cdc47 Allow json keymaps to include a user provided keymap.h (#25987) 2026-02-09 08:59:34 +08:00
QMK Bot 49a73d8f57 Merge remote-tracking branch 'origin/develop' into xap 2025-12-19 03:29:28 +00:00
Joshua Diamond 41c2a7b070 Include userspace version (QMK_USERSPACE_VERSION) in version.h (#25882)
* Include userspace version in version.h

* Update lib/python/qmk/cli/generate/version_h.py

Co-authored-by: Joel Challis <git@zvecr.com>

* Update lib/python/qmk/cli/generate/version_h.py

Co-authored-by: Joel Challis <git@zvecr.com>

* Update lib/python/qmk/cli/generate/version_h.py

Co-authored-by: Joel Challis <git@zvecr.com>

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2025-12-18 22:23:51 -05:00
QMK Bot 885ed08a5b Merge remote-tracking branch 'origin/develop' into xap 2025-12-01 01:48:06 +00:00
QMK Bot d45b967cf2 Merge remote-tracking branch 'origin/master' into develop 2025-12-01 01:46:53 +00:00
Joel Challis e2bf515df4 Fix python format warnings (#25841) 2025-12-01 12:17:13 +11:00
QMK Bot cb6b77e105 Merge remote-tracking branch 'origin/develop' into xap 2025-11-23 11:21:51 +00:00
Xelus22 fd65390496 [core] add BCD versions of QMK Version (#25804)
Co-authored-by: Joel Challis <git@zvecr.com>
2025-11-23 22:21:13 +11:00
QMK Bot b4c5043cfd Merge remote-tracking branch 'origin/develop' into xap 2025-11-23 05:03:09 +00:00
Joel Challis 28a11ff6f7 Fix preference of output file for 'qmk generate-autocorrect-data' (#25818) 2025-11-23 05:02:32 +00:00
QMK Bot e2871a8c0c Merge remote-tracking branch 'origin/develop' into xap 2025-11-08 20:49:24 +00:00
Joel Challis 6e35013bc2 Generate CUSTOM_MATRIX = lite without matrix_pins.custom (#25453) 2025-11-08 20:48:48 +00:00
QMK Bot f23b2682b0 Merge remote-tracking branch 'origin/develop' into xap 2025-09-12 12:22:24 +00:00
Joel Challis d34cade5ab Generate default encoder resolution for sparse config (#25247) 2025-09-12 13:21:49 +01:00
QMK Bot ef9c3810c1 Merge remote-tracking branch 'origin/develop' into xap 2025-06-27 07:18:04 +00:00
Joel Challis a1a5869ef8 Add MATRIX_MASKED DD config (#25383) 2025-06-27 08:17:45 +01:00
QMK Bot a88b5cd5eb Merge remote-tracking branch 'origin/develop' into xap 2025-05-22 13:31:52 +00:00
Pablo Martínez 955809bd5a Add compiler_support.h (#25274) 2025-05-22 23:31:15 +10:00
zvecr a9f676948b Merge remote-tracking branch 'origin/develop' into xap 2025-05-12 12:06:53 +01:00
Pascal Getreuer f4171412a6 Enable community modules to define LED matrix and RGB matrix effects. (#25187)
Co-authored-by: Joel Challis <git@zvecr.com>
2025-05-12 09:30:19 +10:00
QMK Bot 76ae515edd Merge remote-tracking branch 'origin/develop' into xap 2025-05-05 23:53:15 +00:00
Nick Brassel ac991405d0 Deprecate qmk generate-compilation-database. (#25237) 2025-05-06 09:52:41 +10:00
QMK Bot 51f4fbbc10 Merge remote-tracking branch 'origin/develop' into xap 2025-05-05 00:44:45 +00:00
Joel Challis dbe30a1b6f Generate versions to keycode headers (#25219) 2025-05-05 10:44:08 +10:00
QMK Bot c5a2cb542b Merge remote-tracking branch 'origin/develop' into xap 2025-05-05 00:22:21 +00:00
Drashna Jaelre 12caf0be4e Add additional hooks for Community modules (#25050) 2025-05-05 10:21:47 +10:00
QMK Bot ac4bd6c86d Merge remote-tracking branch 'origin/develop' into xap 2025-04-23 02:11:30 +00:00
QMK Bot 24d896ca06 Merge remote-tracking branch 'origin/master' into develop 2025-04-23 02:10:54 +00:00
Joel Challis da2e897f55 Update 'qmk generate-api' to only publish pure DD keymaps (#24782) 2025-04-23 12:10:14 +10:00
QMK Bot 2adda0fcd2 Merge remote-tracking branch 'origin/develop' into xap 2025-04-23 00:28:22 +00:00
Joel Challis 8cd71917ce Avoid duplication in generated community modules rules.mk (#25135) 2025-04-23 10:27:47 +10:00
QMK Bot 195c44c170 Merge remote-tracking branch 'origin/develop' into xap 2025-04-09 00:16:26 +00:00
QMK Bot 4dc846f21c Merge remote-tracking branch 'origin/master' into develop 2025-04-09 00:15:49 +00:00
Nick Brassel 575abc48a3 More Windows->Unix style path fixes. (#25119) 2025-04-09 10:15:14 +10:00
QMK Bot 8134ac7065 Merge remote-tracking branch 'origin/develop' into xap 2025-03-26 10:31:17 +00:00
Nick Brassel 1a6a9a7c77 [Modules] Provide access to current path in rules.mk. (#25061) 2025-03-26 10:30:45 +00:00
Nick Brassel bb34a247b8 Merge remote-tracking branch 'upstream/develop' into xap 2025-03-22 20:45:27 +11:00
Stefan Kerkmann c9d62ddc78 [Core] use keycode_string in unit tests (#25042)
* tests: use keycode_string feature

With a proper keycode to string implementation in qmk there is no need
to use the unit tests only implementation anymore.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* tests: remove keycode_util feature

This feature is no longer used as we switched the tests to the
keycode string implementation.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2025-03-21 08:47:22 +01:00
QMK Bot 85633d1b73 Merge remote-tracking branch 'origin/develop' into xap 2025-03-19 01:46:36 +00:00
Nick Brassel 386a5019a8 Fixup MSYS + unix-style paths in Community Modules. (#25012)
Fixup MSYS + unix-style paths.
2025-03-19 12:45:28 +11:00
Nick Brassel 25f28bac16 Merge remote-tracking branch 'upstream/develop' into xap 2025-02-28 09:18:17 +11:00
Nick Brassel 1efc82403b Community modules (#24848) 2025-02-26 22:25:41 +11:00
QMK Bot 2919528880 Merge remote-tracking branch 'origin/develop' into xap 2025-02-01 10:20:03 +00:00
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
QMK Bot 2343e525b3 Merge remote-tracking branch 'origin/develop' into xap 2025-01-27 11:33:00 +00: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