Make repo self-contained: embed QMK firmware as submodule, remove external dependency on Keebart

- Add Keebart/vial-qmk-corne-choc-pro (vial branch) as git submodule at qmk_firmware/
- Remove qmk_repo/qmk_ref from CI workflow (reusable workflow auto-detects submodule)
- Rewrite README with self-contained setup, upstream pull, and cherry-pick instructions

Agent-Logs-Url: https://github.com/timfee/qmk_userspace/sessions/1be9b3e0-bc94-471c-b013-1192141c550a

Co-authored-by: timfee <3246342+timfee@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-04-14 18:30:09 +00:00 committed by GitHub
commit 989f5f1049
Failed to generate hash of commit
4 changed files with 67 additions and 16 deletions

View file

@ -9,9 +9,8 @@ jobs:
build:
name: 'QMK Userspace Build'
uses: qmk/.github/.github/workflows/qmk_userspace_build.yml@main
with:
qmk_repo: Keebart/vial-qmk-corne-choc-pro
qmk_ref: vial
# Firmware lives in qmk_firmware/ submodule — no external repo needed.
# The reusable workflow detects the submodule and skips its own clone.
publish:
name: 'QMK Userspace Publish'

4
.gitmodules vendored Normal file
View file

@ -0,0 +1,4 @@
[submodule "qmk_firmware"]
path = qmk_firmware
url = https://github.com/Keebart/vial-qmk-corne-choc-pro.git
branch = vial

View file

@ -1,24 +1,71 @@
# QMK Userspace — Keebart Corne Choc Pro
## Setup
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.
1. Use [qmk/qmk_userspace](https://github.com/qmk/qmk_userspace) as a template to create your repo
2. Clone your new repo
3. Unzip this into it
4. Add the Keebart fork as a submodule:
## Quick start
```bash
git submodule add https://github.com/Keebart/vial-qmk-corne-choc-pro.git qmk_firmware
git submodule update --init --recursive
git clone --recursive https://github.com/timfee/qmk_userspace.git
cd qmk_userspace
```
5. Commit and push:
GitHub Actions builds the `.uf2` automatically on push — download from the **Releases** tab.
Flash: hold **Q** while plugging in the left half, drag `.uf2` onto `RPI-RP2`. Repeat with **P** for the right half.
## Local builds
```bash
git add .
git commit -m "Initial keymap"
git push
pip install qmk
qmk setup -H qmk_firmware # point QMK at the submodule
qmk compile -kb keebart/corne_choc_pro/standard -km timfee
```
6. GitHub Actions builds the .uf2 — download from the Releases tab
7. Flash: hold Q while plugging in left half, drag .uf2 onto RPI-RP2. Repeat with P for right.
## 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 <commit-sha> # e.g. OLED SSD1312 support
cd ..
git add qmk_firmware
git commit -m "Cherry-pick: <description>"
```
### 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"
```

1
qmk_firmware Submodule

@ -0,0 +1 @@
Subproject commit 4649f864f15ba9f540ee83d66b50cb9fcd4f7e59