diff --git a/.github/workflows/build_binaries.yaml b/.github/workflows/build_binaries.yaml index 67103f27..f53c3c81 100755 --- a/.github/workflows/build_binaries.yaml +++ b/.github/workflows/build_binaries.yaml @@ -9,8 +9,9 @@ jobs: build: name: 'QMK Userspace Build' uses: qmk/.github/.github/workflows/qmk_userspace_build.yml@main - # Firmware lives in qmk_firmware/ submodule — no external repo needed. - # The reusable workflow detects the submodule and skips its own clone. + with: + qmk_repo: Keebart/vial-qmk-corne-choc-pro + qmk_ref: vial publish: name: 'QMK Userspace Publish' diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 00746970..00000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "qmk_firmware"] - path = qmk_firmware - url = https://github.com/Keebart/vial-qmk-corne-choc-pro.git - branch = vial diff --git a/README.md b/README.md index 3f54f715..449da86d 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,7 @@ # QMK Userspace — Keebart Corne Choc Pro -Self-contained repo: firmware (Keebart's QMK fork) is embedded as a submodule at `qmk_firmware/`. -No waiting on upstream — cherry-pick, merge, or patch anything you want right here. - -## Quick start - -```bash -git clone --recursive https://github.com/timfee/qmk_userspace.git -cd qmk_userspace -``` +QMK userspace overlay for the Keebart Corne Choc Pro. Builds against +[Keebart/vial-qmk-corne-choc-pro](https://github.com/Keebart/vial-qmk-corne-choc-pro) (vial branch). GitHub Actions builds the `.uf2` automatically on push — download from the **Releases** tab. @@ -18,54 +11,6 @@ Flash: hold **Q** while plugging in the left half, drag `.uf2` onto `RPI-RP2`. R ```bash pip install qmk -qmk setup -H qmk_firmware # point QMK at the submodule +qmk setup -H . --home $(pwd)/qmk_firmware qmk compile -kb keebart/corne_choc_pro/standard -km timfee ``` - -## Pulling upstream changes - -The submodule tracks the `vial` branch of `Keebart/vial-qmk-corne-choc-pro`. - -```bash -# Pull latest from Keebart -cd qmk_firmware -git fetch origin -git merge origin/vial # or: git rebase origin/vial -cd .. -git add qmk_firmware -git commit -m "Update firmware submodule" -``` - -### Cherry-picking from other repos (e.g. Keebart/vial-qmk-keebart, qmk/qmk_firmware) - -```bash -cd qmk_firmware - -# Add any upstream remote once -git remote add upstream-qmk https://github.com/qmk/qmk_firmware.git -git remote add keebart-full https://github.com/Keebart/vial-qmk-keebart.git - -# Fetch and cherry-pick -git fetch keebart-full -git cherry-pick # e.g. OLED SSD1312 support - -cd .. -git add qmk_firmware -git commit -m "Cherry-pick: " -``` - -### Switching to your own firmware fork - -If you fork `Keebart/vial-qmk-corne-choc-pro` to your own GitHub account: - -```bash -cd qmk_firmware -git remote set-url origin https://github.com/YOUR_USER/vial-qmk-corne-choc-pro.git -git push origin vial # push your changes to your fork -cd .. -# Update .gitmodules to point at your fork -git config -f .gitmodules submodule.qmk_firmware.url \ - https://github.com/YOUR_USER/vial-qmk-corne-choc-pro.git -git add .gitmodules qmk_firmware -git commit -m "Point submodule at my firmware fork" -``` diff --git a/qmk_firmware b/qmk_firmware deleted file mode 160000 index 4649f864..00000000 --- a/qmk_firmware +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4649f864f15ba9f540ee83d66b50cb9fcd4f7e59 diff --git a/users/timfee/timfee.c b/users/timfee/timfee.c index 05925453..4160e9d0 100644 --- a/users/timfee/timfee.c +++ b/users/timfee/timfee.c @@ -7,21 +7,36 @@ // ── Chordal Hold layout ── // Defines hand assignments for the "opposite hands" tap-hold rule. -// 'L' = left hand, 'R' = right hand, '*' = either (thumb keys). +// 'L' = left hand, 'R' = right hand. +// Thumbs are assigned to their physical hand so that same-hand fast +// typing (e.g. backspace → A) resolves as tap, while cross-hand +// shortcuts (e.g. left-thumb CMD + right-hand key) resolve as hold. // Matrix: 8 rows × 7 cols (4 rows per half, split keyboard). // Rows 0-2: left finger rows Rows 4-6: right finger rows // Row 3: left thumb Row 7: right thumb const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { {'L', 'L', 'L', 'L', 'L', 'L', 'L'}, // row 0: left top {'L', 'L', 'L', 'L', 'L', 'L', 'L'}, // row 1: left mid - {'L', 'L', 'L', 'L', 'L', 'L', 0 }, // row 2: left bot - { 0, 0, 0, '*', '*', '*', 0 }, // row 3: left thumb + {'L', 'L', 'L', 'L', 'L', 'L', 0 }, // row 2: left bot + { 0, 0, 0, 'L', 'L', 'L', 0 }, // row 3: left thumb {'R', 'R', 'R', 'R', 'R', 'R', 'R'}, // row 4: right top {'R', 'R', 'R', 'R', 'R', 'R', 'R'}, // row 5: right mid - {'R', 'R', 'R', 'R', 'R', 'R', 0 }, // row 6: right bot - { 0, 0, 0, '*', '*', '*', 0 }, // row 7: right thumb + {'R', 'R', 'R', 'R', 'R', 'R', 0 }, // row 6: right bot + { 0, 0, 0, 'R', 'R', 'R', 0 }, // row 7: right thumb }; +// ── Chordal Hold per-key override ── +// Layer-tap keys (ESC_L2, MIN_L1) must always resolve as hold when +// another key is pressed so the layer activates — even for same-hand keys. +// Mod-tap keys use the default layout-based logic (cross-hand = hold). +bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t *tap_hold_record, + uint16_t other_keycode, keyrecord_t *other_record) { + if (IS_QK_LAYER_TAP(tap_hold_keycode)) { + return true; + } + return get_chordal_hold_default(tap_hold_record, other_record); +} + // ── Combos (matching Vial config) ── const uint16_t PROGMEM lparen_combo[] = {KC_R, KC_T, COMBO_END}; const uint16_t PROGMEM rparen_combo[] = {KC_Y, KC_U, COMBO_END};