aboutsummaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Resolve keyboard_aliases when processing keyboard make targets (#24834)Joel Challis9 days2-0/+17
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot9 days1-0/+7
|\
| * Reject keyboard.json next to info.json (#24882)Joel Challis9 days1-0/+7
| |
* | [Core] Add Chordal Hold, an "opposite hands rule" tap-hold option similar to ↵Pascal Getreuer11 days1-5/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Update via2json layout macro searching (#24640)Joel Challis2025-01-201-20/+12
| |
* | Ensure `qmk flash` rejects invalid files for uf2 compatible bootloaders (#24802)Joel Challis2025-01-101-1/+6
| | | | | | Ensure 'qmk flash' rejects invalid files for uf2 compatible bootloaders
* | Update ChibiOS-Contrib. (#24803)Nick Brassel2025-01-091-0/+0
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2025-01-011-2/+2
|\|
| * Fix g_led_config parse warning (#24769)Joel Challis2025-01-011-2/+2
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2024-12-271-13/+14
|\|
| * Skip parsing g_led_config when matrix_size is missing (#24739)Joel Challis2024-12-281-13/+14
| |
* | default_keyboard.h generation tweaks (#24715)Ryan2024-12-151-7/+12
| |
* | Update ChibiOS `stable_21.11.x`. (#24714)Nick Brassel2024-12-151-0/+0
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2024-12-154-6/+6
|\|
| * Resolve `cli.log.warn` warnings (#24551)Joel Challis2024-12-154-6/+6
| |
* | Change `new-keymap` keymap name prompt (#24701)jack2024-12-111-4/+2
| |
* | Update ChibiOS to latest stable branch. (#24651)Nick Brassel2024-11-302-0/+0
|/
* Improve "feature/encoder config both specified" warnings (#24641)Ryan2024-11-301-2/+2
|
* Allow codegen of `keymap.json` => `keymap.c` without requiring layers/layout ↵Nick Brassel2024-11-244-34/+30
| | | | etc. (#23451)
* `qmk find`: expand operator support (#24468)Ryan2024-11-212-11/+31
|
* Added MCU support for ArteryTek AT32F415 (#23445)HorrorTroll2024-11-211-1/+3
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2024-11-212-9/+37
|\
| * `qmk via2json`: Improve macro parsing (#24345)Ryan2024-11-211-9/+25
| |
| * `qmk new-keymap`: validate keymap name (#23420)Ryan2024-11-211-0/+12
| |
* | `qmk new-keyboard`: separate dev board and MCU selection (#24548)Ryan2024-11-211-30/+44
| |
* | [CLI] Refactor painter arguments to table instead of commandline (#24456)Pablo Martínez2024-11-213-10/+30
| | | | | | | | Co-authored-by: Nick Brassel <[email protected]>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2024-11-141-2/+60
|\|
| * Perform test compiles during `qmk doctor`. (#24282)Nick Brassel2024-11-141-2/+60
| | | | | | | | Co-authored-by: James Young <[email protected]>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2024-11-084-9/+38
|\|
| * Speed improvements to `qmk find`. (#24385)Nick Brassel2024-11-084-9/+38
| |
* | Bump minimum required Python version (#24554)Joel Challis2024-10-311-2/+2
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2024-10-301-2/+5
|\|
| * Handle 'MILCInterface' object has no attribute 'log_level' error (#24549)Joel Challis2024-10-301-2/+5
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2024-10-301-6/+19
|\|
| * Handle `cli._subcommand.__name__` deprecation warning (#24533)Joel Challis2024-10-301-6/+19
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2024-09-132-4/+71
|\|
| * `qmk find`: Fix handling of keys with dots in filter functions (#24393)Sergey Vlasov2024-09-142-4/+71
| |
* | Remove `arm_atsam` platform (#24337)Joel Challis2024-09-02111-54384/+0
|/
* Reject via keymaps in lint (#24325)Joel Challis2024-08-261-2/+8
|
* Fixup python tests for missing `via` keymaps.Nick Brassel2024-08-261-3/+0
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2024-08-151-1/+1
|\
| * Update Discord URL (#24283)Joel Challis2024-08-151-1/+1
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2024-08-1212-144/+304
|\|
| * Userspace: add support for adding environment variables during build (#22887)Nick Brassel2024-08-1212-144/+304
| |
* | Remove handling of keyboard level keymap templates (#24234)Joel Challis2024-08-122-47/+2
| |
* | Small tweaks to keymap generation (#24240)Ryan2024-08-043-9/+5
| |
* | Remove `handwired/pytest/has_template` (#24232)Ryan2024-08-032-36/+87
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2024-07-281-5/+0
|\|
| * Remove AVR GCC version warning (#24206)Dasky2024-07-281-5/+0
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2024-07-241-0/+6
|\|