1
0
Fork 0
Commit graph

502 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
Joel Challis
0c14fc3a21
Resolve keyboard_aliases when processing keyboard make targets (#24834) 2025-01-30 06:22:05 +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
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
QMK Bot
074bbbfb21 Merge remote-tracking branch 'origin/master' into develop 2024-11-21 06:22:51 +00:00
Ryan
638b22d057
qmk new-keyboard: separate dev board and MCU selection (#24548) 2024-11-21 17:22:14 +11:00
Ryan
9bea332a21
qmk via2json: Improve macro parsing (#24345) 2024-11-21 17:20:05 +11:00
Ryan
8cbcdcac62
qmk new-keymap: validate keymap name (#23420) 2024-11-21 17:18:51 +11:00
Pablo Martínez
88afd53b1f
[CLI] Refactor painter arguments to table instead of commandline (#24456)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2024-11-21 17:16:46 +11:00
QMK Bot
f8b4e24d37 Merge remote-tracking branch 'origin/master' into develop 2024-11-14 09:43:56 +00:00
Nick Brassel
a8a47c4011
Perform test compiles during qmk doctor. (#24282)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2024-11-14 20:43:23 +11:00
QMK Bot
b17322b9b8 Merge remote-tracking branch 'origin/master' into develop 2024-11-08 04:57:57 +00:00
Nick Brassel
580d18d2e9
Speed improvements to qmk find. (#24385) 2024-11-08 04:57:22 +00:00
Joel Challis
292e0af293
Bump minimum required Python version (#24554) 2024-10-31 23:21:20 +00:00
Joel Challis
7a4f21d340
Reject via keymaps in lint (#24325) 2024-08-26 03:56:03 +01:00
QMK Bot
5f8aaf236f Merge remote-tracking branch 'origin/master' into develop 2024-08-15 13:37:59 +00:00
Joel Challis
39324e642f
Update Discord URL (#24283) 2024-08-15 14:37:27 +01:00
QMK Bot
2c6409fdd8 Merge remote-tracking branch 'origin/master' into develop 2024-08-12 12:34:54 +00:00
Nick Brassel
380e0c9cad
Userspace: add support for adding environment variables during build (#22887) 2024-08-12 22:34:22 +10:00
QMK Bot
9c1e1d1fee Merge remote-tracking branch 'origin/master' into develop 2024-07-28 18:16:45 +00:00
Dasky
d538451adb
Remove AVR GCC version warning (#24206) 2024-07-28 19:16:15 +01:00
QMK Bot
eed2a74be9 Merge remote-tracking branch 'origin/master' into develop 2024-07-03 12:01:26 +00:00
Nick Brassel
bc8ac86422
Minimum python version listing. (#23989) 2024-07-03 22:00:53 +10:00
Ryan
bc0c69570b
Rename encoder pins defines (#24003) 2024-07-03 17:18:27 +10:00
QMK Bot
641a1ce568 Merge remote-tracking branch 'origin/master' into develop 2024-06-30 02:40:18 +00:00
Joel Challis
3ffe8d917a
Fix 'qmk new-keyboard' processing of development_board (#23996) 2024-06-30 03:39:49 +01:00
QMK Bot
2f18d4f449 Merge remote-tracking branch 'origin/master' into develop 2024-06-26 01:34:55 +00:00
Joel Challis
cebe521b11
Fix docker_cmd.sh when userspace is not configured (#23997) 2024-06-26 11:34:24 +10:00
QMK Bot
c973ee1445 Merge remote-tracking branch 'origin/master' into develop 2024-06-24 02:30:03 +00:00
Nick Brassel
03e688e91f
Add support for userspace to docker build commands. (#23988) 2024-06-24 12:29:30 +10:00
Joel Challis
53a0cdc446
Implement data driven joysticks (#22947) 2024-06-18 03:44:22 +01:00
Joel Challis
938badc3b0
Generate keymap dd keycodes to header (#20273) 2024-06-17 21:51:53 +01:00
Nick Brassel
0262161914
[CLI] Don't exit() when certain exceptions occur. (#23442) 2024-06-15 10:37:47 +01:00
Nick Brassel
6ef9717288
Vitepress conversion of docs. (#23795) 2024-05-30 12:00:41 +10:00
QMK Bot
f21dc7914f Merge remote-tracking branch 'origin/master' into develop 2024-05-15 01:31:45 +00:00
Nick Brassel
501f988666
[CLI] Fixup return code for qmk userspace-compile. (#23720) 2024-05-15 11:31:14 +10:00
Nick Brassel
ac80cee9da
Merge remote-tracking branch 'upstream/master' into develop 2024-05-02 20:32:16 +10:00
Nick Brassel
9a4f39b738
clangd enhancements. (#23310) 2024-05-02 20:08:41 +10:00
Joel Challis
54c1ae55bf
Align 'qmk lint' argument handling (#23297) 2024-05-01 11:52:34 +10:00
QMK Bot
0786314bfb Merge remote-tracking branch 'origin/master' into develop 2024-04-23 09:39:18 +00:00
Nick Brassel
1fa84ea83c
Fix up license check path. (#23571) 2024-04-23 19:38:47 +10:00
QMK Bot
a939ee1197 Merge remote-tracking branch 'origin/master' into develop 2024-03-31 11:24:09 +00:00
Joel Challis
319d9aa7b9
Fix 'qmk compile' mass_compile execution (#23296) 2024-03-31 12:23:40 +01:00
Joel Challis
6720e9c58c
qmk new-keyboard - detach community layout when selecting "none of the above" (#20405) 2024-03-14 21:24:24 +11:00
Joel Challis
9f4a9d5826
Enable 'keyboard.json' as a build target (#22891) 2024-03-10 16:20:25 +11:00
Pablo Martínez
c5225ab500
[Feature] Some metadata on QGF/QFF files (#20101) 2024-03-10 00:29:09 +00:00