commit c5047d27944e544edaab71694bae1dbb63b667f3 parent f4c5d0af098f9344b747afdddd5599c375fea711 Author: Jack Sangdahl <jack@pngu.org> Date: Thu, 11 Sep 2025 22:08:16 -0600 Migrate to proper userspace Diffstat:
49 files changed, 66 insertions(+), 20 deletions(-)
diff --git a/.clangd b/.clangd @@ -0,0 +1,4 @@ +CompileFlags: + Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option] + Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues, -D__has_include*] + Compiler: clang diff --git a/.github/workflows/build_binaries.yaml b/.github/workflows/build_binaries.yaml @@ -0,0 +1,20 @@ +name: Build QMK firmware + +on: [push, workflow_dispatch] + +permissions: + contents: write + +jobs: + build: + name: 'QMK Userspace Build' + uses: qmk/.github/.github/workflows/qmk_userspace_build.yml@main + with: + qmk_repo: qmk/qmk_firmware + qmk_ref: master + + publish: + name: 'QMK Userspace Publish' + uses: qmk/.github/.github/workflows/qmk_userspace_publish.yml@main + if: always() && !cancelled() + needs: build diff --git a/.gitignore b/.gitignore @@ -1,4 +1,16 @@ -.cache -*.o +# Junk files +*.bak +*.swp +*~ +.DS_Store +._* + +# Firmware files +*.hex +*.bin +*.uf2 + +# clangd compile_commands.json -.venv +.clangd/ +.cache/ diff --git a/Makefile b/Makefile @@ -0,0 +1,16 @@ +.SILENT: + +MAKEFLAGS += --no-print-directory + +QMK_USERSPACE := $(patsubst %/,%,$(dir $(shell realpath "$(lastword $(MAKEFILE_LIST))"))) +ifeq ($(QMK_USERSPACE),) + QMK_USERSPACE := $(shell pwd) +endif + +QMK_FIRMWARE_ROOT = $(shell qmk config -ro user.qmk_home | cut -d= -f2 | sed -e 's@^None$$@@g') +ifeq ($(QMK_FIRMWARE_ROOT),) + $(error Cannot determine qmk_firmware location. `qmk config -ro user.qmk_home` is not set) +endif + +%: + +$(MAKE) -C $(QMK_FIRMWARE_ROOT) $(MAKECMDGOALS) QMK_USERSPACE=$(QMK_USERSPACE) diff --git a/keymaps/f60/keymap.c b/keyboards/bioi/f60/keymaps/jack/keymap.c diff --git a/keymaps/beiwagon/keymap.c b/keyboards/boardsource/beiwagon/keymaps/jack/keymap.c diff --git a/keymaps/crkbd/config.h b/keyboards/crkbd/keymaps/jack/config.h diff --git a/keymaps/crkbd/halconf.h b/keyboards/crkbd/keymaps/jack/halconf.h diff --git a/keymaps/crkbd/keymap.c b/keyboards/crkbd/keymaps/jack/keymap.c diff --git a/keymaps/crkbd/keymap.json b/keyboards/crkbd/keymaps/jack/keymap.json diff --git a/keymaps/crkbd/mcuconf.h b/keyboards/crkbd/keymaps/jack/mcuconf.h diff --git a/keymaps/crkbd/readme.md b/keyboards/crkbd/keymaps/jack/readme.md diff --git a/keymaps/crkbd/rules.mk b/keyboards/crkbd/keymaps/jack/rules.mk diff --git a/keymaps/onekey/f411_qfplib/config.h b/keyboards/handwired/onekey/keymaps/f411_qfplib/config.h diff --git a/keymaps/onekey/f411_qfplib/keymap.c b/keyboards/handwired/onekey/keymaps/f411_qfplib/keymap.c diff --git a/keymaps/onekey/f411_qfplib/qfplib/qfplib.h b/keyboards/handwired/onekey/keymaps/f411_qfplib/qfplib/qfplib.h diff --git a/keymaps/onekey/f411_qfplib/qfplib/qfplib.s b/keyboards/handwired/onekey/keymaps/f411_qfplib/qfplib/qfplib.s diff --git a/keymaps/onekey/f411_qfplib/rules.mk b/keyboards/handwired/onekey/keymaps/f411_qfplib/rules.mk diff --git a/keymaps/onekey/rp_smp/chconf.h b/keyboards/handwired/onekey/keymaps/rp_smp/chconf.h diff --git a/keymaps/onekey/rp_smp/keymap.c b/keyboards/handwired/onekey/keymaps/rp_smp/keymap.c diff --git a/keymaps/onekey/rp_smp/mcuconf.h b/keyboards/handwired/onekey/keymaps/rp_smp/mcuconf.h diff --git a/keymaps/onekey/rp_smp/rules.mk b/keyboards/handwired/onekey/keymaps/rp_smp/rules.mk diff --git a/keymaps/bully/keymap.c b/keyboards/mkh_studio/bully/keymaps/jack/keymap.c diff --git a/keymaps/relic/keymap.c b/keyboards/projectcain/relic/keymaps/jack/keymap.c diff --git a/keymaps/vault35/config.h b/keyboards/projectcain/vault35/keymaps/jack/config.h diff --git a/keymaps/vault35/keymap.c b/keyboards/projectcain/vault35/keymaps/jack/keymap.c diff --git a/keymaps/vault35/rules.mk b/keyboards/projectcain/vault35/keymaps/jack/rules.mk diff --git a/keymaps/kyria/config.h b/keyboards/splitkb/kyria/keymaps/jack/config.h diff --git a/keymaps/kyria/keymap.c b/keyboards/splitkb/kyria/keymaps/jack/keymap.c diff --git a/keymaps/kyria/rules.mk b/keyboards/splitkb/kyria/keymaps/jack/rules.mk diff --git a/qmk.json b/qmk.json @@ -0,0 +1,11 @@ +{ + "userspace_version": "1.1", + "build_targets": [ + ["bioi/f60", "jack"], + ["boardsource/beiwagon", "jack"], + ["mkh_studio/bully", "jack"], + ["projectcain/relic", "jack"], + ["projectcain/vault35", "jack"], + ["splitkb/kyria/rev2", "jack"] + ] +} diff --git a/jack/autocorrect_data.h b/users/jack/autocorrect_data.h diff --git a/jack/autocorrect_dict.txt b/users/jack/autocorrect_dict.txt diff --git a/jack/colour.c b/users/jack/colour.c diff --git a/jack/combos.def b/users/jack/combos.def diff --git a/jack/config.h b/users/jack/config.h diff --git a/jack/introspection.c b/users/jack/introspection.c diff --git a/jack/jack.c b/users/jack/jack.c diff --git a/jack/jack.h b/users/jack/jack.h diff --git a/jack/oled.c b/users/jack/oled.c diff --git a/jack/oled.h b/users/jack/oled.h diff --git a/jack/oledfont.h b/users/jack/oledfont.h diff --git a/jack/picosdk_math.mk b/users/jack/picosdk_math.mk diff --git a/jack/post_rules.mk b/users/jack/post_rules.mk diff --git a/jack/rgb_matrix_user.inc b/users/jack/rgb_matrix_user.inc diff --git a/jack/rules.mk b/users/jack/rules.mk diff --git a/jack/tapping.c b/users/jack/tapping.c diff --git a/jack/unicode.c b/users/jack/unicode.c diff --git a/util/link.sh b/util/link.sh @@ -6,26 +6,9 @@ QMKFIRMWARE="$HOME/git/qmk_firmware" find $QMKFIRMWARE -type l -not -path "$QMKFIRMWARE/.venv/*" -delete rm $QMKFIRMWARE/.git/info/exclude -ln -sv $QMKME/jack $QMKFIRMWARE/users/jack -echo "users/jack" >> $QMKFIRMWARE/.git/info/exclude - for dir in "keyboards"/*; do src="$QMKME/$dir" dst="$QMKFIRMWARE/$dir" ln -sv $src $dst echo "$dir" >> $QMKFIRMWARE/.git/info/exclude done - -link_keymap() { - src="$QMKME/keymaps/$1" - dst="$QMKFIRMWARE/keyboards/$2/keymaps/jack" - ln -sv $src $dst - echo "keyboards/$2/keymaps/jack" >> $QMKFIRMWARE/.git/info/exclude -} - -link_keymap beiwagon boardsource/beiwagon -link_keymap bully mkh_studio/bully -link_keymap f60 bioi/f60 -link_keymap kyria splitkb/kyria -link_keymap relic projectcain/relic -link_keymap vault35 projectcain/vault35