diff --git a/.clangd b/.clangd index 2be2d817..63dadd7e 100644 --- a/.clangd +++ b/.clangd @@ -1,4 +1,4 @@ CompileFlags: Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option] - Remove: [-W*, -mcall-prologues] + Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues, -D__has_include*] Compiler: clang diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..7aaee1fd --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,33 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/debian +{ + "name": "QMK CLI", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "ghcr.io/qmk/qmk_cli", + "customizations": { + "vscode": { + "extensions": [ + "amodio.toggle-excluded-files", + "EditorConfig.EditorConfig", + "xaver.clang-format", + "llvm-vs-code-extensions.vscode-clangd", + "bierner.github-markdown-preview", + "donjayamanne.git-extension-pack", + "ms-vscode-remote.remote-containers" + ] + } + }, + "postCreateCommand": "${containerWorkspaceFolder}/.devcontainer/setup.sh ${containerWorkspaceFolder}" + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh new file mode 100755 index 00000000..9155c6cc --- /dev/null +++ b/.devcontainer/setup.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +set -eEuo pipefail + +wget https://bootstrap.pypa.io/get-pip.py +python3 get-pip.py +python3 -m pip install qmk +rm get-pip.py + +python3 -m pip install --upgrade milc + +userspacePath="$1" + +git config --global --add safe.directory "$userspacePath" +git submodule update --init --recursive + +[ -d /workspaces/qmk_firmware ] || git clone https://github.com/qmk/qmk_firmware.git /workspaces/qmk_firmware +git config --global --add safe.directory /workspaces/qmk_firmware + +qmk config user.qmk_home=/workspaces/qmk_firmware +qmk config user.overlay_dir="$userspacePath" + +qmk git-submodule diff --git a/.github/workflows/build_binaries.yaml b/.github/workflows/build_binaries.yaml index 6cb3aa3a..f7908fad 100755 --- a/.github/workflows/build_binaries.yaml +++ b/.github/workflows/build_binaries.yaml @@ -8,13 +8,13 @@ permissions: jobs: build: name: 'QMK Userspace Build' - uses: qmk/.github/.github/workflows/qmk_userspace_build.yml@qmk-userspace + 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@qmk-userspace + uses: qmk/.github/.github/workflows/qmk_userspace_publish.yml@main if: always() && !cancelled() needs: build diff --git a/.gitignore b/.gitignore index cd76b1db..800a4e2c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,16 @@ +# Junk files +*.bak +*.swp +*~ +.DS_Store +._* + +# Firmware files *.hex *.bin -*.uf2 \ No newline at end of file +*.uf2 + +# clangd +compile_commands.json +.clangd/ +.cache/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..3984e9be --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,12 @@ +// Suggested extensions +{ + "recommendations": [ + "amodio.toggle-excluded-files", + "EditorConfig.EditorConfig", + "xaver.clang-format", + "llvm-vs-code-extensions.vscode-clangd", + "bierner.github-markdown-preview", + "donjayamanne.git-extension-pack", + "ms-vscode-remote.remote-containers" + ] +} diff --git a/README.md b/README.md index 72b7d82c..25208997 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ This is a template repository which allows for an external set of QMK keymaps to 1. Run the normal `qmk setup` procedure if you haven't already done so -- see [QMK Docs](https://docs.qmk.fm/#/newbs) for details. 1. Fork this repository 1. Clone your fork to your local machine +1. Enable userspace in QMK config using `qmk config user.overlay_dir="$(realpath qmk_userspace)"` 1. Add a new keymap for your board using `qmk new-keymap` * This will create a new keymap in the `keyboards` directory, in the same location that would normally be used in the main QMK repository. For example, if you wanted to add a keymap for the Planck, it will be created in `keyboards/planck/keymaps/` * You can also create a new keymap using `qmk new-keymap -kb -km ` @@ -15,7 +16,7 @@ This is a template repository which allows for an external set of QMK keymaps to 1. Add your keymap(s) to the build by running `qmk userspace-add -kb -km ` * This will automatically update your `qmk.json` file * Corresponding `qmk userspace-remove -kb -km ` will delete it - * Listing the build targets can be done with with `qmk userspace-list` + * Listing the build targets can be done with `qmk userspace-list` 1. Commit your changes ## Howto build with GitHub @@ -55,4 +56,4 @@ This can also be used to control which fork is used, though only upstream `qmk_f 1. (First time only) `git submodule add https://github.com/qmk/qmk_firmware.git` 1. (To update) `git submodule update --init --recursive` -1. Commit your changes to your userspace repository \ No newline at end of file +1. Commit your changes to your userspace repository