| .devcontainer | ||
| .github/workflows | ||
| .vscode | ||
| examples/display | ||
| keyboards | ||
| layouts | ||
| users | ||
| .clang-format | ||
| .clangd | ||
| .editorconfig | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| qmk.json | ||
| qmk_empty.json | ||
| README.md | ||
Splitkb QMK Userspace
This is the splitkb userspace repository which allows for an external set of QMK keymaps with halcyon modules to be defined and compiled. This is useful for users who want to maintain their own keymaps without having to fork the splitkb QMK or vial repository.
If you want to compile firmware without any modules you can also use the main qmk_userspace repo.
If the keyboard has not been merged yet to the main branch of QMK you may need to edit the workflow, for that see Extra info
Howto configure your build targets
- Run the normal 
qmk setupprocedure if you haven't already done so -- see QMK Docs for details. - Fork this repository
 - If you have already forked the 
qmk/qmk_userspacerepository before you can add this repository manually following the steps below. - Clone your fork to your local machine
 - Enable userspace in QMK config using 
qmk config user.overlay_dir="$(realpath qmk_userspace)" - Add a new keymap for your board by copy, pasting and renaming the 
default_hlckeymap within thekeyboards/splitkb/halcyon/$KB$/keymapsfolder. - You may want to replace the 
qmk.jsonwith the emptyqmk_empty.jsonif you want to start from scratch as it will otherwise compile all default options. - Add your keymap(s) to the build by running 
qmk userspace-add -kb <your_keyboard> -km <your_keymap> -e <halcyon_module>=1 -e TARGET=<filename>.- This will automatically update your 
qmk.jsonfile - Corresponding 
qmk userspace-remove -kb <your_keyboard> -km <your_keymap> -e <halcyon_module>=1 -e TARGET=<filename>. - Listing the build targets can be done with with 
qmk userspace-list - If you want to use a module:
- For the filename make it so you can differentiate between the different firmwares for the modules. 
kyria_rev4_default_encoderfor example. - The following options are available for the halcyon modules:
- HLC_NONE, If you don't have a module installed but you do have a module on the other half.
 - HLC_ENCODER, If you have an encoder module installed.
 - HLC_TFT_DISPLAY, If you have a tft rgb display installed.
 - HLC_CIRQUE_TRACKPAD, If you have a Cirque trackpad installed.
 
 
 - For the filename make it so you can differentiate between the different firmwares for the modules. 
 
 - This will automatically update your 
 - Commit your changes
 
Howto build with GitHub
- In the GitHub Actions tab, enable workflows
 - Push your changes above to your forked GitHub repository
 - Look at the GitHub Actions for a new actions run
 - Wait for the actions run to complete
 - Inspect the Releases tab on your repository for the latest firmware build
 
Howto build locally
- Run the normal 
qmk setupprocedure if you haven't already done so -- see QMK Docs for details. - Fork this repository
 - Clone your fork to your local machine
 cdinto this repository's clone directory- Set global userspace path: 
qmk config user.overlay_dir="$(realpath .)"-- you MUST be located in the cloned userspace location for this to work correctly- This will be automatically detected if you've 
cded into your userspace repository, but the above makes your userspace available regardless of your shell location. 
 - This will be automatically detected if you've 
 - Compile normally: 
qmk compile -kb your_keyboard -km your_keymap -e <your_module>=1 -e TARGET=<filename>ormake your_keyboard:your_keymap -e <your_module>=1 -e TARGET=<filename> 
Alternatively, if you configured your build targets above, you can use qmk userspace-compile to build all of your userspace targets at once.
Extra info
If you wish to point GitHub actions to a different repository, a different branch, or even a different keymap name, you can modify .github/workflows/build_binaries.yml to suit your needs.
To override the build job, you can change the following parameters to use a different QMK repository or branch, this can be useful if you want to use a the main QMK repository or a different vial branch. For example:
    with:
      qmk_repo: qmk/qmk_firmware
      qmk_ref: master
Our halcyon module code should work fine with the main QMK repository but it may break if there are any breaking changes from QMK in the future. We will try our best to keep this repository up-to-date.
If you wish to manually manage qmk_firmware using git within the userspace repository, you can add qmk_firmware as a submodule in the userspace directory instead. GitHub Actions will automatically use the submodule at the pinned revision if it exists, otherwise it will use the default latest revision of qmk_firmware from the main repository. This will not work when using vial.
This can also be used to control which fork is used.
- (First time only) 
git submodule add https://github.com/qmk/qmk_firmware.git - (To update) 
git submodule update --init --recursive - Commit your changes to your userspace repository
 
Adding splitkb fork to an existing fork
If you have already forked the qmk/qmk_userspace repository before you may need to manually add the halcyon branch.
- Add a new upstream 
git remote add upstream https://github.com/splitkb/qmk_userspace.git - Fetch the upstream 
git fetch upstream - Create a new branch based on the upstream 
git checkout -b halcyon upstream/halcyon - Make any changes you want and push it to github 
git push -u origin halcyon