aboutsummaryrefslogtreecommitdiff
path: root/lib/python/qmk/cli/generate
Commit message (Collapse)AuthorAgeFilesLines
* `qmk docs`: restore `--port` and `--browser` arguments (#24623)Ryan7 days1-4/+2
| | | | | * `qmk docs`: restore `--port` and `--browser` arguments * Make docs command args always a list
* [Core] Add Chordal Hold, an "opposite hands rule" tap-hold option similar to ↵Pascal Getreuer12 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.
* default_keyboard.h generation tweaks (#24715)Ryan2024-12-151-7/+12
|
* Rename encoder pins defines (#24003)Ryan2024-07-031-2/+2
|
* Implement data driven joysticks (#22947)Joel Challis2024-06-181-1/+37
|
* Generate keymap dd keycodes to header (#20273)Joel Challis2024-06-171-0/+51
|
* [CLI] Don't `exit()` when certain exceptions occur. (#23442)Nick Brassel2024-06-151-6/+6
|
* Vitepress conversion of docs. (#23795)Nick Brassel2024-05-301-25/+17
|
* Merge remote-tracking branch 'upstream/master' into developNick Brassel2024-05-021-4/+30
|\
| * clangd enhancements. (#23310)Nick Brassel2024-05-021-4/+30
| |
* | Enable 'keyboard.json' as a build target (#22891)Joel Challis2024-03-101-1/+2
|/
* Ensure `qmk generate-compilation-database` copies to userspace as well. (#23129)Nick Brassel2024-02-221-1/+3
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2024-01-221-9/+2
|\
| * Move layout macro OOB checks to lint (#22610)Joel Challis2024-01-221-9/+2
| |
* | CLI: Allow generation of both LED and RGB Matrix config (#22896)Ryan2024-01-141-10/+15
| |
* | Generate true/false for _DEFAULT_ON options (#22829)Joel Challis2024-01-061-0/+2
|/
* Fix more `qmk generate-api` fallout from userspace support (#22619)Sergey Vlasov2023-12-061-1/+4
|
* Fix JSON keymap URLs generated by the API (#22618)Ryan2023-12-061-1/+3
|
* Avoid exceptions when layouts contain OOB matrix values (#22609)Joel Challis2023-12-051-2/+5
|
* CLI parallel search updates (#22525)Nick Brassel2023-11-221-2/+2
|
* CLI refactoring for common build target APIs (#22221)Nick Brassel2023-11-151-6/+10
|
* Generate switch statement helpers for keycode ranges (#20059)Joel Challis2023-11-011-0/+8
|
* Implement data driven lighting defaults (#21825)Joel Challis2023-11-011-5/+8
|
* Add dd mapping for hardware based split handedness (#22369)Joel Challis2023-11-012-7/+21
|
* Remove use of broken split.main (#22363)Joel Challis2023-10-301-18/+0
|
* Fix 'to_c' for config.h mappings (#22364)Joel Challis2023-10-291-2/+2
|
* Implement data driven dip switches (#22017)Joel Challis2023-10-292-0/+34
| | | | | * Add data driven dip switches * Autogen weak matrix_mask
* Merge remote-tracking branch 'origin/master' into developQMK Bot2023-09-281-31/+32
|\
| * Allow inline generation of compile_commands.json while doing a `qmk ↵Nick Brassel2023-09-281-31/+32
| | | | | | | | compile`, using `--compiledb` (#21549)
* | Generate keymap.json config options more forcefully (#21960)Joel Challis2023-09-132-10/+21
|/
* keycode aliases: work around ChibiOS ch.h include guard (#21497)Ryan2023-07-311-0/+5
|
* CLI: Improve error messages when layout key matrix row/col is OOB (#21640)Ryan2023-07-311-5/+10
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2023-05-201-9/+8
|\
| * `qmk generate-make-dependencies` improvements (#21001)Nick Brassel2023-05-201-9/+8
| | | | | | | | | | * Recommendations from @sigprof * Fix CI tests
* | `qmk format-json`: Expose full key path and respect `sort_keys` (#20836)Ryan2023-05-201-1/+1
| |
* | Fix English word list retrieval in qmk generate-autocorrect-data (#20915)Peter2023-05-201-0/+6
| |
* | Merge remote-tracking branch 'upstream/master' into developNick Brassel2023-05-151-0/+56
|\|
| * Generate `make` dependency file during build for info.json's etc. (#20451)Nick Brassel2023-05-151-0/+56
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2023-04-091-3/+5
|\|
| * Add autocomplete to generate-compilation-database (#20387)Dasky2023-04-091-3/+5
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2023-04-071-1/+3
|\|
| * Avoid generating empty ENCODER_RESOLUTION (#20179)Joel Challis2023-04-071-1/+3
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2023-03-291-12/+11
|\|
| * Minify content published to API (#20285)Joel Challis2023-03-291-12/+11
| |
* | Custom keycodes in JSON (#19925)Joel Challis2023-03-272-6/+44
| |
* | Remove some use of keymap.h (#19980)Joel Challis2023-03-031-1/+1
|/
* Tidy up use of keycode range helpers (#19813)Joel Challis2023-02-121-0/+2
|
* Typographic updates to source generation (#19160)Jouke Witteveen2023-02-102-23/+22
|
* Tidy up use of keycode range helpers (#19756)Joel Challis2023-02-101-1/+9
|
* Add commit info to `version.h` (#19542)Pablo Martínez2023-02-021-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Initial commit * Fix import order * Fix deleted code instead of debug print line * Format * Update lib/python/qmk/cli/generate/version_h.py Co-authored-by: Ryan <[email protected]> * Renaming * Update lib/python/qmk/cli/generate/version_h.py Co-authored-by: Joel Challis <[email protected]> * Update lib/python/qmk/git.py Co-authored-by: Joel Challis <[email protected]> --------- Co-authored-by: Ryan <[email protected]> Co-authored-by: Joel Challis <[email protected]>