Commit Graph

779 Commits

Author SHA1 Message Date
Nick Brassel
919e2a4f5c
Use relative paths for schemas, instead of $id. Enables VScode validation. (#25251) 2025-05-19 22:10:39 +10:00
Stefan Kerkmann
f686ad9e63
[Core] STM32G0x1 support (#24301) 2025-05-19 15:51:28 +10: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
Nick Brassel
ac991405d0
Deprecate qmk generate-compilation-database. (#25237) 2025-05-06 09:52:41 +10:00
Joel Challis
614b631ee2
Ensure qmk_userspace_paths maintains detected order (#25204) 2025-05-05 03:43:14 +01:00
Joel Challis
5f31d5cc80
Resolve alias for qmk new-keymap keyboard prompts (#25210) 2025-05-05 11:14:40 +10:00
Joel Challis
dbe30a1b6f
Generate versions to keycode headers (#25219) 2025-05-05 10:44:08 +10:00
QMK Bot
a992e32bd5 Merge remote-tracking branch 'origin/master' into develop 2025-05-05 00:23:26 +00:00
Joel Challis
cf5ce64b1b
Workaround for resolving keyboard alias for config file values (#25228) 2025-05-05 10:22:51 +10:00
Drashna Jaelre
12caf0be4e
Add additional hooks for Community modules (#25050) 2025-05-05 10:21:47 +10:00
Joel Challis
8244659b44
Extend lint checks to reject duplication of defaults (#25149) 2025-04-24 05:39:56 +01: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
Joel Challis
8cd71917ce
Avoid duplication in generated community modules rules.mk (#25135) 2025-04-23 10:27:47 +10:00
Joel Challis
83818d1d6f
Prompt for converter when creating new keymap (#25116) 2025-04-22 17:59:16 +01:00
Joel Challis
ec324af22e
Add lint warning for empty url (#25182) 2025-04-21 20:07:05 +01:00
QMK Bot
c8763c9fdb Merge remote-tracking branch 'origin/master' into develop 2025-04-19 22:10:27 +00:00
Joel Challis
edf34315af
Fix 'Would you like to clone the submodules?' prompt under msys (#24958) 2025-04-20 08:09:54 +10:00
Joel Challis
e27dd0f26f
Exclude external userspace from lint checking (#24680) 2025-04-11 22:19:02 +10: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
4d3726050e Merge remote-tracking branch 'origin/master' into develop 2025-04-05 21:22:08 +00:00
Joel Challis
625d62efdf
Fix 'qmk lint -kb' argument handling (#25093) 2025-04-06 07:21:04 +10:00
Pascal Getreuer
da166d4d8b
Add "license" field to Community Module JSON schema. (#25085)
Add "license" field to community module schema.
2025-04-01 16:06:42 +11:00
Nick Brassel
1a6a9a7c77
[Modules] Provide access to current path in rules.mk. (#25061) 2025-03-26 10:30:45 +00: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
Joel Challis
f820a186d4
Align to latest CLI dependencies (#24553)
* Align to latest CLI dependencies

* Update docs
2025-03-20 14:04:10 +11: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
1efc82403b
Community modules (#24848) 2025-02-26 22:25:41 +11:00
Joel Challis
110cc0923b
Reject readme dummy content (#24913) 2025-02-16 10:22:57 +00:00
Joel Challis
37e234252e
Extend lint to reject 'blank' files (#23994) 2025-02-12 17:16:27 +00:00
QMK Bot
14c7164b01 Merge remote-tracking branch 'origin/master' into develop 2025-02-08 12:18:11 +00:00
Joel Challis
2699e2f7c8
Avoid WindowsPath errors for 'qmk format-text' (#24905) 2025-02-08 12:17:35 +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
Joel Challis
0c14fc3a21
Resolve keyboard_aliases when processing keyboard make targets (#24834) 2025-01-30 06:22:05 +11:00
QMK Bot
cfcb8488ed Merge remote-tracking branch 'origin/master' into develop 2025-01-29 19:18:02 +00:00
Joel Challis
76b5cef793
Reject keyboard.json next to info.json (#24882) 2025-01-30 06:17:29 +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
Joel Challis
d30cd87556
Update via2json layout macro searching (#24640) 2025-01-20 03:45:47 +00:00
Joel Challis
f9430e530b
Ensure qmk flash rejects invalid files for uf2 compatible bootloaders (#24802)
Ensure 'qmk flash' rejects invalid files for uf2 compatible bootloaders
2025-01-10 16:21:07 +00:00
QMK Bot
4d182ec117 Merge remote-tracking branch 'origin/master' into develop 2025-01-01 01:59:15 +00:00
Joel Challis
53680fa6da
Fix g_led_config parse warning (#24769) 2025-01-01 01:58:41 +00:00
QMK Bot
92534d8e3d Merge remote-tracking branch 'origin/master' into develop 2024-12-27 19:43:49 +00:00
Joel Challis
f549948bbd
Skip parsing g_led_config when matrix_size is missing (#24739) 2024-12-28 06:42:54 +11:00
Ryan
0f3993b9a3
default_keyboard.h generation tweaks (#24715) 2024-12-15 19:06:05 +00:00
QMK Bot
cb7608b9e2 Merge remote-tracking branch 'origin/master' into develop 2024-12-15 04:00:50 +00:00
Joel Challis
767dfbbd3f
Resolve cli.log.warn warnings (#24551) 2024-12-15 15:00:18 +11:00
jack
0228806ae8
Change new-keymap keymap name prompt (#24701) 2024-12-11 12:28:30 -08:00
Ryan
1da8aa8259
Improve "feature/encoder config both specified" warnings (#24641) 2024-11-30 05:30:45 +00:00
Nick Brassel
7d8f193988
Allow codegen of keymap.json => keymap.c without requiring layers/layout etc. (#23451) 2024-11-24 20:32:30 +11:00