diff --git a/.github/workflows/api.yml b/.github/workflows/api.yml deleted file mode 100644 index db78f1611224..000000000000 --- a/.github/workflows/api.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Update API Data - -permissions: - contents: read - -on: - push: - branches: - - master - - develop - paths: - - 'keyboards/**' - - 'layouts/community/**' - - 'lib/python/**' - - 'data/**' - - '.github/workflows/api.yml' - workflow_dispatch: - -jobs: - api_data: - runs-on: ubuntu-latest - container: ghcr.io/qmk/qmk_cli - - # protect against those who work in their fork on 'important' branches - if: github.repository == 'qmk/qmk_firmware' - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 1 - persist-credentials: false - - - name: Install dependencies - run: | - pip3 install -r requirements-dev.txt - - - name: Generate API Data - run: | - qmk generate-api - - - name: Upload API Data - uses: jakejarvis/s3-sync-action@master - with: - args: --acl public-read --follow-symlinks --delete - env: - AWS_S3_BUCKET: ${{ github.ref == 'refs/heads/develop' && secrets['API_SPACE_DEVELOP'] || secrets['API_SPACE_MASTER'] }} - AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }} - AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com - SOURCE_DIR: '.build/api_data' diff --git a/.github/workflows/auto_approve.yml b/.github/workflows/auto_approve.yml deleted file mode 100644 index 1db1c49a9bb0..000000000000 --- a/.github/workflows/auto_approve.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Automatic Approve - -permissions: {} - -on: - schedule: - - cron: "*/5 * * * *" - -jobs: - automatic_approve: - runs-on: ubuntu-latest - - if: github.repository == 'qmk/qmk_firmware' - - steps: - - uses: mheap/automatic-approve-action@v1 - with: - token: ${{ secrets.QMK_BOT_TOKEN }} - workflows: "format.yml,lint.yml,unit_test.yml" - dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/" diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml deleted file mode 100644 index b4465277b0d7..000000000000 --- a/.github/workflows/auto_tag.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Essential files modified - -permissions: - contents: write - -on: - workflow_dispatch: - push: - branches: - - master - paths: - - builddefs/**/* - - drivers/**/* - - platforms/**/* - - quantum/**/* - - tests/**/* - - tmk_core/**/* - - util/**/* - - Makefile - - '*.mk' - -jobs: - tag: - runs-on: ubuntu-latest - - # protect against those who develop with their fork on master - if: github.repository == 'qmk/qmk_firmware' - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.66.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DEFAULT_BUMP: 'patch' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000000..16c31301fdf3 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,28 @@ +name: Build firmware +on: + push: + paths-ignore: + - '**.md' + pull_request: + paths-ignore: + - '**.md' + workflow_dispatch: + + +jobs: + build-firmware: + runs-on: ubuntu-latest + container: qmkfm/qmk_cli + + steps: + - name: Checkout QMK Firmware + uses: actions/checkout@v4 + with: + fetch-depth: 1 + persist-credentials: false + submodules: true + + - name: Build + id: build + run: | + qmk mass-compile -f manufacturer="ZSA Technology Labs" -km default diff --git a/.github/workflows/ci_build_major_branch.yml b/.github/workflows/ci_build_major_branch.yml deleted file mode 100644 index 77755ba71f41..000000000000 --- a/.github/workflows/ci_build_major_branch.yml +++ /dev/null @@ -1,123 +0,0 @@ -name: CI Build Major Branch - -permissions: - contents: read - actions: write - -on: - push: - branches: [master, develop] - workflow_dispatch: - inputs: - branch: - type: choice - description: "Branch to build" - options: [master, develop] - -env: - # https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#usage-limits - # We've decreased it from 20 to 15 to allow for other GHA to run unimpeded - CONCURRENT_JOBS: 15 - -# Ensure we only have one build running at a time, cancelling any active builds if a new commit is pushed to the respective branch -concurrency: - group: ci_build-${{ github.event.inputs.branch || github.ref_name }} - cancel-in-progress: true - -jobs: - determine_concurrency: - name: "Determine concurrency" - if: github.repository == 'qmk/qmk_firmware' - runs-on: ubuntu-latest - container: ghcr.io/qmk/qmk_cli - - outputs: - slice_length: ${{ steps.generate_slice_length.outputs.slice_length }} - - steps: - - name: Install prerequisites - run: | - apt-get update - apt-get install -y jq - - - name: Disable safe.directory check - run: | - git config --global --add safe.directory '*' - - - name: Checkout QMK Firmware - uses: actions/checkout@v4 - - - name: Determine concurrency - id: generate_slice_length - run: | - target_count=$( { - qmk find -km default 2>/dev/null - qmk find -km via 2>/dev/null - } | sort | uniq | wc -l) - slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution as we're splitting default and via - echo "slice_length=$slice_length" >> $GITHUB_OUTPUT - - build_targets: - name: "Compile keymap ${{ matrix.keymap }}" - needs: determine_concurrency - strategy: - fail-fast: false - matrix: - keymap: [default, via] - uses: ./.github/workflows/ci_build_major_branch_keymap.yml - with: - branch: ${{ inputs.branch || github.ref_name }} - keymap: ${{ matrix.keymap }} - slice_length: ${{ needs.determine_concurrency.outputs.slice_length }} - secrets: inherit - - rollup_tasks: - name: "Consolidation" - needs: build_targets - runs-on: ubuntu-latest - - steps: - - name: Download firmwares - uses: actions/download-artifact@v4 - with: - pattern: firmware-* - path: firmwares - merge-multiple: true - - - name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }} - uses: jakejarvis/s3-sync-action@master - with: - args: --acl public-read --follow-symlinks --delete - env: - AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }} - AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }} - AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }} - AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }} - SOURCE_DIR: firmwares - DEST_DIR: ${{ inputs.branch || github.ref_name }}/${{ github.sha }} - - - name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest - uses: jakejarvis/s3-sync-action@master - with: - args: --acl public-read --follow-symlinks --delete - env: - AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }} - AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }} - AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }} - AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }} - SOURCE_DIR: firmwares - DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest - - - name: Check if failure marker file exists - id: check_failure_marker - uses: andstor/file-existence-action@v3 - with: - files: firmwares/.failed - - - name: Fail build if needed - if: steps.check_failure_marker.outputs.files_exists == 'true' - run: | - # Exit with failure if the compilation stage failed - exit 1 diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml deleted file mode 100644 index 0804c9e2d043..000000000000 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ /dev/null @@ -1,181 +0,0 @@ -name: CI Build Major Branch Keymap - -permissions: - contents: read - actions: write - -on: - workflow_call: - inputs: - branch: - type: string - required: true - keymap: - type: string - required: true - slice_length: - type: string - required: true - -jobs: - generate_targets: - name: "Generate targets (${{ inputs.keymap }})" - runs-on: ubuntu-latest - container: ghcr.io/qmk/qmk_cli - - outputs: - targets: ${{ steps.generate_targets.outputs.targets }} - - steps: - - name: Install prerequisites - run: | - apt-get update - apt-get install -y jq - - - name: Disable safe.directory check - run: | - git config --global --add safe.directory '*' - - - name: Checkout QMK Firmware - uses: actions/checkout@v4 - - - name: Generate build targets - id: generate_targets - run: | - { # Intentionally use `shuf` here so that we share manufacturers across all build groups -- some have a lot of ARM-based boards which inherently take longer - counter=0 - echo -n '{' - qmk find -km ${{ inputs.keymap }} 2>/dev/null | sort | uniq | shuf | xargs -L${{ inputs.slice_length }} | while IFS=$'\n' read target ; do - if [ $counter -gt 0 ]; then - echo -n ',' - fi - counter=$((counter+1)) - printf "\"group %02d\":{" $counter - echo -n '"targets":"' - echo $target | tr ' ' '\n' | sort | uniq | xargs echo -n - echo -n '"}' - done - echo -n '}' - } | sed -e 's@\n@@g' > targets.json - - # Output the target keys as a variable - echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT - - - name: Upload targets json - uses: actions/upload-artifact@v4 - with: - name: targets-${{ inputs.keymap }} - path: targets.json - - build_targets: - name: "Compile ${{ matrix.target }} (${{ inputs.keymap }})" - needs: generate_targets - runs-on: ubuntu-latest - container: ghcr.io/qmk/qmk_cli - continue-on-error: true - - strategy: - matrix: - target: ${{ fromJson(needs.generate_targets.outputs.targets) }} - - steps: - - name: Install prerequisites - run: | - apt-get update - apt-get install -y jq - - - name: Disable safe.directory check - run: | - git config --global --add safe.directory '*' - - - name: Checkout QMK Firmware - uses: actions/checkout@v4 - - - name: Get target definitions - uses: actions/download-artifact@v4 - with: - name: targets-${{ inputs.keymap }} - path: . - - - name: Deploy submodules - run: | - qmk git-submodule -f - - - name: Dump targets - run: | - jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort - - - name: Build targets - continue-on-error: true - run: | - export NCPUS=$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -1 )) - qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $(jq -r '.["${{ matrix.target }}"].targets' targets.json) || touch .failed - - - name: Upload binaries - uses: actions/upload-artifact@v4 - with: - name: firmware-${{ inputs.keymap }}-${{ matrix.target }} - if-no-files-found: ignore - path: | - *.bin - *.hex - *.uf2 - .build/failed.* - .failed - - - name: Fail build if any group failed - run: | - # Exit with failure if the compilation stage failed - [ ! -f .failed ] || exit 1 - - repack_firmware: - if: always() - name: "Repack artifacts" - needs: build_targets - runs-on: ubuntu-latest - - steps: - - name: Checkout QMK Firmware - uses: actions/checkout@v4 - - - name: Download firmwares - uses: actions/download-artifact@v4 - with: - pattern: firmware-${{ inputs.keymap }}-* - path: . - merge-multiple: true - - - name: Upload all firmwares - uses: actions/upload-artifact@v4 - with: - name: firmware-${{ inputs.keymap }} - if-no-files-found: ignore - path: | - *.bin - *.hex - *.uf2 - .build/failed.* - .failed - - - name: Generate output logs - run: | - # Generate the step summary markdown - ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true - # Truncate to a maximum of 1MB to deal with GitHub workflow limit - truncate --size='<960K' $GITHUB_STEP_SUMMARY || true - - - name: Delete temporary build artifacts - uses: geekyeggo/delete-artifact@v5 - with: - name: | - firmware-${{ inputs.keymap }}-* - targets-${{ inputs.keymap }} - - - name: 'CI Discord Notification' - if: always() - working-directory: util/ci/ - env: - DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }} - run: | - python3 -m pip install -r requirements.txt - python3 ./discord-results.py --branch ${{ inputs.branch || github.ref_name }} --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml deleted file mode 100644 index 77b5bfe0734d..000000000000 --- a/.github/workflows/cli.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: CLI CI - -permissions: - contents: read - -on: - push: - branches: - - master - - develop - pull_request: - paths: - - 'lib/python/**' - - 'requirements.txt' - - '.github/workflows/cli.yml' - -jobs: - test: - runs-on: ubuntu-latest - - container: ghcr.io/qmk/qmk_cli - - steps: - - name: Disable safe.directory check - run : git config --global --add safe.directory '*' - - - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Install dependencies - run: pip3 install -r requirements-dev.txt - - name: Run tests - run: qmk pytest diff --git a/.github/workflows/develop_update.yml b/.github/workflows/develop_update.yml deleted file mode 100644 index afcda1fe98bb..000000000000 --- a/.github/workflows/develop_update.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Update develop after master merge - -permissions: - contents: write - -on: - push: - branches: - - master - -jobs: - develop_update: - runs-on: ubuntu-latest - - if: github.repository == 'qmk/qmk_firmware' - - steps: - - uses: actions/checkout@v4 - with: - token: ${{ secrets.QMK_BOT_TOKEN }} - fetch-depth: 0 - - - name: Disable automatic eol conversion - run: | - echo "* -text" > .git/info/attributes - - - name: Checkout develop - run: | - git fetch origin master develop - git checkout develop - - - name: Update develop from master - run: | - git config --global user.name "QMK Bot" - git config --global user.email "hello@qmk.fm" - git merge origin/master - git push origin develop diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 0fdd2c7b37d9..000000000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,65 +0,0 @@ -name: Generate Docs - -permissions: - contents: write - -on: - push: - branches: - - master - paths: - - 'builddefs/docsgen/**' - - 'tmk_core/**' - - 'quantum/**' - - 'platforms/**' - - 'docs/**' - - '.github/workflows/docs.yml' - pull_request: - paths: - - 'builddefs/docsgen/**' - - 'docs/**' - - '.github/workflows/docs.yml' - -defaults: - run: - shell: bash - -jobs: - generate: - runs-on: ubuntu-latest - container: ghcr.io/qmk/qmk_cli - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - - name: Install dependencies - run: | - apt-get update && apt-get install -y rsync doxygen - # install nvm - touch $HOME/.bashrc - wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - - - name: Install node - run: | - source $HOME/.bashrc - nvm install 20 - nvm use 20 - corepack enable - - - name: Build docs - run: | - source $HOME/.bashrc - nvm use 20 - qmk --verbose generate-docs - - - name: Deploy - if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.6.1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - branch: gh-pages - folder: .build/docs - git-config-name: QMK Bot - git-config-email: hello@qmk.fm diff --git a/.github/workflows/feature_branch_update.yml b/.github/workflows/feature_branch_update.yml deleted file mode 100644 index 283a255342d8..000000000000 --- a/.github/workflows/feature_branch_update.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Update feature branches after develop merge - -permissions: - contents: write - -on: - push: - branches: - - develop - -jobs: - feature_branch_update: - runs-on: ubuntu-latest - - if: github.repository == 'qmk/qmk_firmware' - - strategy: - matrix: - branch: - - xap - - riot - - steps: - - uses: actions/checkout@v4 - with: - token: ${{ secrets.QMK_BOT_TOKEN }} - fetch-depth: 0 - - - name: Disable automatic eol conversion - run: | - echo "* -text" > .git/info/attributes - - - name: Checkout branch - run: | - git fetch origin develop ${{ matrix.branch }} - git checkout ${{ matrix.branch }} - - - name: Update branch from develop - run: | - git config --global user.name "QMK Bot" - git config --global user.email "hello@qmk.fm" - git merge origin/develop - git push origin ${{ matrix.branch }} diff --git a/.github/workflows/format_push.yml b/.github/workflows/format_push.yml deleted file mode 100644 index ea60fc95b450..000000000000 --- a/.github/workflows/format_push.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Lint Format - -permissions: - contents: read - -on: - push: - branches: - - master - - develop - -jobs: - lint: - runs-on: ubuntu-latest - - container: ghcr.io/qmk/qmk_cli - - steps: - - name: Disable safe.directory check - run : git config --global --add safe.directory '*' - - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Disable automatic eol conversion - run: | - echo "* -text" > .git/info/attributes - - - name: Install dependencies - run: | - pip3 install -r requirements-dev.txt - - - name: Run qmk formatters - shell: 'bash {0}' - run: | - qmk format-c -a - qmk format-python -a - qmk format-text -a - git diff - - - uses: rlespinasse/github-slug-action@v3.x - - - name: Become QMK Bot - run: | - git config user.name 'QMK Bot' - git config user.email 'hello@qmk.fm' - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v6 - if: ${{ github.repository == 'qmk/qmk_firmware'}} - with: - token: ${{ secrets.QMK_BOT_TOKEN }} - delete-branch: true - branch: bugfix/format_${{ env.GITHUB_REF_SLUG }} - author: QMK Bot - committer: QMK Bot - commit-message: Format code according to conventions - title: '[CI] Format code according to conventions' diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml deleted file mode 100644 index 0f0141114134..000000000000 --- a/.github/workflows/regen_push.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Regenerate Files - -permissions: - contents: write - -on: - push: - branches: - - master - - develop - -jobs: - regen: - runs-on: ubuntu-latest - - container: ghcr.io/qmk/qmk_cli - - steps: - - name: Disable safe.directory check - run : git config --global --add safe.directory '*' - - - uses: actions/checkout@v4 - - - name: Run qmk generators - run: | - util/regen.sh - git diff - - - uses: rlespinasse/github-slug-action@v3.x - - - name: Become QMK Bot - run: | - git config user.name 'QMK Bot' - git config user.email 'hello@qmk.fm' - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v6 - if: ${{ github.repository == 'qmk/qmk_firmware'}} - with: - token: ${{ secrets.QMK_BOT_TOKEN }} - delete-branch: true - branch: bugfix/regen_${{ env.GITHUB_REF_SLUG }} - author: QMK Bot - committer: QMK Bot - commit-message: Regenerate Files - title: '[CI] Regenerate Files' diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index ce9bd0f3161e..000000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,66 +0,0 @@ -name: 'Close stale issues and PRs' - -permissions: - issues: write - pull-requests: write - actions: write - -on: - schedule: - - cron: '30 1 * * *' - workflow_dispatch: - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@main - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - remove-stale-when-updated: true - exempt-draft-pr: true - ascending: true - operations-per-run: 150 - - stale-issue-label: stale - days-before-issue-stale: 90 - days-before-issue-close: 30 - exempt-issue-labels: bug,in progress,on hold,discussion,to do - - stale-issue-message: > - This issue has been automatically marked as stale because it has not had activity in the - last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity - occurs. - - For maintainers: Please label with `bug`, `in progress`, `on hold`, `discussion` or `to do` to prevent - the issue from being re-flagged. - - close-issue-message: > - This issue has been automatically closed because it has not had activity in the last 30 days. - If this issue is still valid, re-open the issue and let us know. - - // [stale-action-closed] - - stale-pr-label: stale - days-before-pr-stale: 45 - days-before-pr-close: 30 - exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold - - stale-pr-message: > - Thank you for your contribution! - - This pull request has been automatically marked as stale because it has not had - activity in the last 45 days. It will be closed in 30 days if no further activity occurs. - Please feel free to give a status update now, or re-open when it's ready. - - For maintainers: Please label with `bug`, `awaiting review`, `breaking_change`, `in progress`, or `on hold` - to prevent the issue from being re-flagged. - - close-pr-message: > - Thank you for your contribution! - - This pull request has been automatically closed because it has not had activity in the last 30 days. - Please feel free to give a status update now, ping for review, or re-open when it's ready. - - // [stale-action-closed] diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 1cae5c53524c..9024b41351cd 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -8,561 +8,24 @@ /* This list of aliases is for testing purposes -- ensures "linked list" recursive traversal works correctly. */ "_test_a": { "target": "_test_b" }, "_test_b": { "target": "_test_c" }, - "_test_c": { "target": "planck/rev6" }, + "_test_c": { "target": "zsa/planck_ez/base" }, /* The main list of aliases for moved keyboards within QMK. */ - "2_milk": { - "target": "spaceman/2_milk" + "ergodox_ez": { + "target": "zsa/ergodox_ez/m32u4/base" }, - "absinthe": { - "target": "keyhive/absinthe" + "ergodox_ez/base": { + "target": "zsa/ergodox_ez/m32u4/base" }, - "aeboards/constellation": { - "target": "aeboards/constellation/rev1" + "ergodox_ez/glow": { + "target": "zsa/ergodox_ez/m32u4/glow" }, - "aeboards/ext65": { - "target": "aeboards/ext65/rev1" - }, - "ai03/equinox": { - "target": "ai03/equinox/rev1" - }, - "alice": { - "target": "tgr/alice" - }, - "amj40": { - "target": "amjkeyboard/amj40" - }, - "amj60": { - "target": "amjkeyboard/amj60" - }, - "amj96": { - "target": "amjkeyboard/amj96" - }, - "amjpad": { - "target": "amjkeyboard/amjpad" - }, - "angel64": { - "target": "kakunpc/angel64/alpha" - }, - "ashpil/modelm_usbc": { - "target": "ibm/model_m/ashpil_usbc" - }, - "at101_blackheart": { - "target": "viktus/at101_bh" - }, - "at101_bh": { - "target": "viktus/at101_bh" - }, - "atom47/rev2": { - "target": "evyd13/atom47/rev2" - }, - "atom47/rev3": { - "target": "evyd13/atom47/rev3" - }, - "bakeneko60": { - "target": "kkatano/bakeneko60" - }, - "bakeneko65": { - "target": "kkatano/bakeneko65/rev2" - }, - "bakeneko80": { - "target": "kkatano/bakeneko80" - }, - "bear_face": { - "target": "bear_face/v1" - }, - "bm16a": { - "target": "kprepublic/bm16a/v1" - }, - "bm16s": { - "target": "kprepublic/bm16s" - }, - "bm40hsrgb": { - "target": "kprepublic/bm40hsrgb" - }, - "bm43a": { - "target": "kprepublic/bm43a" - }, - "bm60poker": { - "target": "kprepublic/bm60hsrgb_poker/rev1" - }, - "bm60rgb": { - "target": "kprepublic/bm60hsrgb/rev1" - }, - "bm60rgb_iso": { - "target": "kprepublic/bm60hsrgb_iso/rev1" - }, - "bm68rgb": { - "target": "kprepublic/bm68hsrgb/rev1" - }, - "bpiphany/pegasushoof": { - "target": "bpiphany/pegasushoof/2013" - }, - "brick": { - "target": "pauperboards/brick" - }, - "chavdai40": { - "target": "chavdai40/rev1" - }, - "candybar/lefty": { - "target": "tkc/candybar/lefty" - }, - "candybar/righty": { - "target": "tkc/candybar/righty" - }, - "canoe": { - "target": "percent/canoe" - }, - "clawsome/gamebuddy": { - "target": "clawsome/gamebuddy/v1_0" - }, - "cmm_studio/saka68": { - "target": "cmm_studio/saka68/solder" - }, - "converter/modelm101": { - "target": "ibm/model_m/teensypp" - }, - "converter/modelm101_teensy2": { - "target": "ibm/model_m/teensy2" - }, - "converter/modelm_ssk": { - "target": "ibm/model_m_ssk/teensypp_ssk" - }, - "cospad": { - "target": "kprepublic/cospad" - }, - "crkbd/rev1/legacy": { - "target": "crkbd/rev1" - }, - "crkbd/rev1/common": { - "target": "crkbd/rev1" - }, - "custommk/genesis": { - "target": "custommk/genesis/rev1" - }, - "daisy": { - "target": "ktec/daisy" - }, - "dp3000": { - "target": "dp3000/rev1" - }, - "drakon": { - "target": "jagdpietr/drakon" - }, - "durgod/k320": { - "target": "durgod/k320/base" - }, - "durgod/k3x0/k320": { - "target": "durgod/k320/base" - }, - "durgod/hades": { - "target": "durgod/dgk6x/hades_ansi" - }, - "durgod/hades_ansi": { - "target": "durgod/dgk6x/hades_ansi" - }, - "durgod/hades_iso": { - "target": "durgod/dgk6x/hades_iso" - }, - "dztech/dz60rgb": { - "target": "dztech/dz60rgb/v1" - }, - "dztech/dz60rgb_ansi": { - "target": "dztech/dz60rgb_ansi/v1" - }, - "dztech/dz60rgb_wkl": { - "target": "dztech/dz60rgb_wkl/v1" - }, - "dztech/dz65rgb": { - "target": "dztech/dz65rgb/v1" - }, - "dztech/volcano660": { - "target": "ilumkb/volcano660" - }, - "dztech/og60": { - "target": "dztech/tofu60" - }, - "eek": { - "target": "eek/silk_down" - }, - "epoch80": { - "target": "kbdfans/epoch80" - }, - "era/klein": { - "target": "era/sirind/klein_sd" - }, - "ergodone": { - "target": "ktec/ergodone" - }, - "ergoinu": { - "target": "dm9records/ergoinu" - }, - "ergosaurus": { - "target": "keyhive/ergosaurus" - }, - "exclusive/e85": { - "target": "exclusive/e85/hotswap" - }, - "gh60": { - "target": "gh60/revc" - }, - "gmmk/pro": { - "target": "gmmk/pro/rev1/ansi" - }, - "gmmk/pro/ansi": { - "target": "gmmk/pro/rev1/ansi" - }, - "gmmk/pro/iso": { - "target": "gmmk/pro/rev1/iso" - }, - "handwired/dactyl_manuform/3x5_3": { - "target": "handwired/dactyl_minidox" - }, - "handwired/dactyl_manuform/6x6_kinesis": { - "target": "handwired/dactyl_kinesis" - }, - "handwired/dactyl_manuform/dmote/62key": { - "target": "handwired/dmote" - }, - "handwired/ferris": { - "target": "ferris/0_1" - }, - "handwired/ibm122m": { - "target": "ibm/model_m_122/ibm122m" - }, - "handwired/p1800fl": { - "target": "team0110/p1800fl" - }, - "handwired/jscotto/scotto9": { - "target": "handwired/scottokeebs/scotto9" - }, - "handwired/jscotto/scotto36": { - "target": "handwired/scottokeebs/scotto36" - }, - "handwired/jscotto/scotto40": { - "target": "handwired/scottokeebs/scotto40" - }, - "handwired/jscotto/scottocmd": { - "target": "handwired/scottokeebs/scottocmd" - }, - "handwired/jscotto/scottostarter": { - "target": "handwired/scottokeebs/scottostarter" - }, - "helix/pico/sc/back": { - "target": "helix/pico/sc" - }, - "helix/pico/sc/under": { - "target": "helix/pico/sc" - }, - "helix/rev2/back/oled": { - "target": "helix/rev2/back" - }, - "helix/rev2/oled": { - "target": "helix/rev2" - }, - "helix/rev2/oled/back": { - "target": "helix/rev2/back" - }, - "helix/rev2/oled/under": { - "target": "helix/rev2/under" - }, - "helix/rev2/sc/back": { - "target": "helix/rev2/sc" - }, - "helix/rev2/sc/oled": { - "target": "helix/rev2/sc" - }, - "helix/rev2/sc/oledback": { - "target": "helix/rev2/sc" - }, - "helix/rev2/sc/oledunder": { - "target": "helix/rev2/sc" - }, - "helix/rev2/sc/under": { - "target": "helix/rev2/sc" - }, - "helix/rev2/under": { - "target": "helix/rev2/sc" - }, - "helix/rev2/under/oled": { - "target": "helix/rev2/under" - }, - "honeycomb": { - "target": "keyhive/honeycomb" - }, - "hub16": { - "target": "joshajohnson/hub16" - }, - "hub20": { - "target": "joshajohnson/hub20" - }, - "idb_60": { - "target": "idb/idb_60" - }, - "idobo": { - "target": "idobao/id75/v1" - }, - "jacky_studio/piggy60": { - "target": "jacky_studio/piggy60/rev1" - }, - "jj40": { - "target": "kprepublic/jj40/rev1" - }, - "jj4x4": { - "target": "kprepublic/jj4x4" - }, - "jj50": { - "target": "kprepublic/jj50/rev1" - }, - "jm60": { - "target": "kbdfans/jm60" - }, - "jones": { - "target": "jones/v03_1" - }, - "kamigakushi": { - "target": "jaykeeb/kamigakushi" - }, - "katana60": { - "target": "rominronin/katana60/rev1" - }, - "kbdfans/kbd67mkiirgb": { - "target": "kbdfans/kbd67/mkiirgb" - }, - "kbdfans/kbd67/mkiirgb": { - "target": "kbdfans/kbd67/mkiirgb/v1" - }, - "keebio/chocopad": { - "target": "keebio/chocopad/rev1" - }, - "keebio/dsp40": { - "target": "keebio/dsp40/rev1" - }, - "keycapsss/plaid_pad": { - "target": "keycapsss/plaid_pad/rev1" - }, - "kira75": { - "target": "kira/kira75" - }, - "kira80": { - "target": "kira/kira80" - }, - "kudox": { - "target": "kumaokobo/kudox/rev1" - }, - "kudox/columner": { - "target": "kumaokobo/kudox/columner" - }, - "kudox/rev1": { - "target": "kumaokobo/kudox/rev1" - }, - "kudox/rev2": { - "target": "kumaokobo/kudox/rev2" - }, - "kudox/rev3": { - "target": "kumaokobo/kudox/rev3" - }, - "kudox_full": { - "target": "kumaokobo/kudox_full/rev1" - }, - "kudox_full/rev1": { - "target": "kumaokobo/kudox_full/rev1" - }, - "kudox_game": { - "target": "kumaokobo/kudox_game/rev1" - }, - "kudox_game/rev1": { - "target": "kumaokobo/kudox_game/rev1" - }, - "kudox_game/rev2": { - "target": "kumaokobo/kudox_game/rev2" - }, - "kyria": { - "target": "splitkb/kyria" - }, - "laser_ninja/pumpkin_pad": { - "target": "laser_ninja/pumpkinpad" - }, - "lattice60": { - "target": "keyhive/lattice60" - }, - "lazydesigners/the60": { - "target": "lazydesigners/the60/rev1" - }, - "lfkeyboards/lfk78": { - "target": "lfkeyboards/lfk78/revj" - }, - "lfkeyboards/smk65": { - "target": "lfkeyboards/smk65/revb" - }, - "m3v3van": { - "target": "matthewdias/m3n3van" - }, - "maartenwut/atom47/rev2": { - "target": "evyd13/atom47/rev2" - }, - "maartenwut/atom47/rev3": { - "target": "evyd13/atom47/rev3" - }, - "maartenwut/eon40": { - "target": "evyd13/eon40" - }, - "maartenwut/eon65": { - "target": "evyd13/eon65" - }, - "maartenwut/eon75": { - "target": "evyd13/eon75" - }, - "maartenwut/eon87": { - "target": "evyd13/eon87" - }, - "maartenwut/eon95": { - "target": "evyd13/eon95" - }, - "maartenwut/gh80_1800": { - "target": "evyd13/gh80_1800" - }, - "maartenwut/gh80_3700": { - "target": "evyd13/gh80_3700" - }, - "maartenwut/minitomic": { - "target": "evyd13/minitomic" - }, - "maartenwut/mx5160": { - "target": "evyd13/mx5160" - }, - "maartenwut/nt660": { - "target": "evyd13/nt660" - }, - "maartenwut/omrontkl": { - "target": "evyd13/omrontkl" - }, - "maartenwut/plain60": { - "target": "evyd13/plain60" - }, - "maartenwut/pockettype": { - "target": "evyd13/pockettype" - }, - "maartenwut/quackfire": { - "target": "evyd13/quackfire" - }, - "maartenwut/solheim68": { - "target": "evyd13/solheim68" - }, - "maartenwut/ta65": { - "target": "evyd13/ta65" - }, - "maartenwut/wasdat": { - "target": "evyd13/wasdat" - }, - "maartenwut/wasdat_code": { - "target": "evyd13/wasdat_code" - }, - "maartenwut/wonderland": { - "target": "evyd13/wonderland" - }, - "matchstickworks/southpad": { - "target": "matchstickworks/southpad/rev2/" - }, - "matrix/m12og": { - "target": "matrix/m12og/rev1" - }, - "mechlovin/hannah910": { - "target": "mechlovin/hannah910/rev1" - }, - "mechlovin/adelais/rgb_led": { - "target": "mechlovin/adelais/rgb_led/rev1" - }, - "mechlovin/adelais/standard_led": { - "target": "mechlovin/adelais/standard_led/arm/rev2" - }, - "mechlovin/delphine": { - "target": "mechlovin/delphine/mono_led" - }, - "mechlovin/hannah60rgb": { - "target": "mechlovin/hannah60rgb/rev1" - }, - "mechlovin/hannah65/mechlovin9": { - "target": "mechlovin/mechlovin9/rev1" - }, - "mechlovin/hex4b": { - "target": "mechlovin/hex4b/rev1" - }, - "melgeek/z70ultra": { - "target": "melgeek/z70ultra/rev1" - }, - "mechlovin/hannah65": { - "target": "mechlovin/hannah65/rev1" - }, - "minim": { - "target": "matthewdias/minim" - }, - "mnk1800s": { - "target": "monokei/mnk1800s" - }, - "mnk50": { - "target": "monokei/mnk50" - }, - "mnk75": { - "target": "monokei/mnk75" - }, - "model01": { - "target": "keyboardio/model01" - }, - "model_v": { - "target": "matthewdias/model_v" - }, - "m0lly": { - "target": "tkc/m0lly" - }, - "montsinger/rebound": { - "target": "montsinger/rebound/rev1" + "ergodox_ez/shine": { + "target": "zsa/ergodox_ez/m32u4/shine" }, "moonlander": { "target": "zsa/moonlander" }, - "mschwingen/modelm": { - "target": "ibm/model_m/mschwingen" - }, - "oddball": { - "target": "oddball/v1" - }, - "omnikey_blackheart": { - "target": "viktus/omnikey_bh" - }, - "omnikey_bh": { - "target": "viktus/omnikey_bh" - }, - "opus": { - "target": "keyhive/opus" - }, - "pabile/p20": { - "target": "pabile/p20/ver1" - }, - "pancake/feather": { - "target": "spaceman/pancake/rev1/feather" - }, - "pancake/promicro": { - "target": "spaceman/pancake/rev1/promicro" - }, - "peiorisboards/ixora": { - "target": "coarse/ixora" - }, - "pico": { - "target": "kumaokobo/pico/65keys" - }, - "pico/65keys": { - "target": "kumaokobo/pico/65keys" - }, - "pico/70keys": { - "target": "kumaokobo/pico/70keys" - }, - "plaid": { - "target": "dm9records/plaid" - }, - "plain60": { - "target": "evyd13/plain60" - }, "planck/ez": { "target": "zsa/planck_ez/base" }, @@ -572,967 +35,7 @@ "planck/ez/glow": { "target": "zsa/planck_ez/glow" }, - "ploopyco/trackball": { - "target": "ploopyco/trackball/rev1_005" - }, - "polilla": { - "target": "polilla/rev1" - }, - "primekb/prime_l": { - "target": "primekb/prime_l/v1" - }, - "primekb/prime_l_v2": { - "target": "primekb/prime_l/v2" - }, - "projectkb/alice": { - "target": "projectkb/alice/rev1" - }, - "rama/koyu": { - "target": "wilba_tech/rama_works_koyu" - }, - "rama/m6_a": { - "target": "wilba_tech/rama_works_m6_a" - }, - "rama/m6_b": { - "target": "wilba_tech/rama_works_m6_b" - }, - "rama/m10_b": { - "target": "wilba_tech/rama_works_m10_b" - }, - "rama/m60_a": { - "target": "wilba_tech/rama_works_m60_a" - }, - "rama/u80_a": { - "target": "wilba_tech/rama_works_u80_a" - }, - "ramonimbao/herringbone": { - "target": "rmi_kb/herringbone/v1" - }, - "ramonimbao/mona": { - "target": "rmi_kb/mona/v1" - }, - "redox_w": { - "target": "redox/wireless" - }, - "rgbkb/pan": { - "target": "rgbkb/pan/rev1/32a" - }, - "rgbkb/pan/rev1": { - "target": "rgbkb/pan/rev1/32a" - }, - "romac": { - "target": "kingly_keys/romac" - }, - "ropro": { - "target": "kingly_keys/ropro" - }, - "satan": { - "target": "gh60/satan" - }, - "skog": { - "target": "percent/skog" - }, - "smallice": { - "target": "keyhive/smallice" - }, - "southpole": { - "target": "keyhive/southpole" - }, - "speedo": { - "target": "cozykeys/speedo/v2" - }, - "staryu": { - "target": "ktec/staryu" - }, - "stoutgat": { - "target": "tkw/stoutgat/v1" - }, - "suihankey": { - "target": "kakunpc/suihankey/split/alpha" - }, - "ta65": { - "target": "evyd13/ta65" - }, - "tartan": { - "target": "dm9records/tartan" - }, - "tkc1800": { - "target": "tkc/tkc1800" - }, - "tkw/stoutgat/v2": { - "target": "tkw/stoutgat/v2/f411" - }, - "tokyo60": { - "target": "tokyokeyboard/tokyo60" - }, - "txuu": { - "target": "matthewdias/txuu" - }, - "underscore33": { - "target": "tominabox1/underscore33/rev1" - }, - "vinta": { - "target": "coarse/vinta" - }, - "wasdat": { - "target": "evyd13/wasdat" - }, - "westfoxtrot/cypher": { - "target": "westfoxtrot/cypher/rev1" - }, - "whale/sk": { - "target": "whale/sk/v3" - }, - "xd002": { - "target": "xiudi/xd002" - }, - "xd004": { - "target": "xiudi/xd004/v1" - }, - "xd60": { - "target": "xiudi/xd60/rev2" - }, - "xd68": { - "target": "xiudi/xd68" - }, - "xd75": { - "target": "xiudi/xd75" - }, - "xd84": { - "target": "xiudi/xd84" - }, - "xd84pro": { - "target": "xiudi/xd84pro" - }, - "xd87": { - "target": "xiudi/xd87" - }, - "xd96": { - "target": "xiudi/xd96" - }, - "xelus/dawn60": { - "target": "xelus/dawn60/rev1" - }, - "xelus/valor": { - "target": "xelus/valor/rev1" - }, - "z150_blackheart": { - "target": "viktus/z150_bh" - }, - "z150_bh":{ - "target": "viktus/z150_bh" - }, - "zeal60": { - "target": "wilba_tech/zeal60" - }, - "zeal65": { - "target": "wilba_tech/zeal65" - }, - // Moved during 2022 Q1 cycle - "6ball": { - "target": "maple_computing/6ball" - }, - "7skb": { - "target": "salicylic_acid3/7skb" - }, - "7splus": { - "target": "salicylic_acid3/7splus" - }, - "acr60": { - "target": "mechkeys/acr60" - }, - "adalyn": { - "target": "tominabox1/adalyn" - }, - "ajisai74": { - "target": "salicylic_acid3/ajisai74" - }, - "aleth42": { - "target": "25keys/aleth42" - }, - "alicia_cook": { - "target": "ibnuda/alicia_cook" - }, - "allison": { - "target": "prototypist/allison" - }, - "allison_numpad": { - "target": "prototypist/allison_numpad" - }, - "alu84": { - "target": "mechkeys/alu84" - }, - "angel17": { - "target": "kakunpc/angel17" - }, - "angel64/alpha": { - "target": "kakunpc/angel64/alpha" - }, - "angel64/rev1": { - "target": "kakunpc/angel64/rev1" - }, - "arch_36": { - "target": "obosob/arch_36" - }, - "bakeneko65/rev2": { - "target": "kkatano/bakeneko65/rev2" - }, - "bakeneko65/rev3": { - "target": "kkatano/bakeneko65/rev3" - }, - "barleycorn": { - "target": "yiancardesigns/barleycorn" - }, - "bat43/rev1": { - "target": "dailycraft/bat43/rev1" - }, - "bat43/rev2": { - "target": "dailycraft/bat43/rev2" - }, - "bigseries/1key": { - "target": "woodkeys/bigseries/1key" - }, - "bigseries/2key": { - "target": "woodkeys/bigseries/2key" - }, - "bigseries/3key": { - "target": "woodkeys/bigseries/3key" - }, - "bigseries/4key": { - "target": "woodkeys/bigseries/4key" - }, - "bkf": { - "target": "drhigsby/bkf" - }, - "business_card/alpha": { - "target": "kakunpc/business_card/alpha" - }, - "business_card/beta": { - "target": "kakunpc/business_card/beta" - }, - "butterstick": { - "target": "gboards/butterstick" - }, - "c39": { - "target": "maple_computing/c39" - }, - "cassette42": { - "target": "25keys/cassette42" - }, - "chidori": { - "target": "kagizaraya/chidori" - }, - "chili": { - "target": "ydkb/chili" - }, - "chimera_ergo": { - "target": "glenpickle/chimera_ergo" - }, - "chimera_ls": { - "target": "glenpickle/chimera_ls" - }, - "chimera_ortho": { - "target": "glenpickle/chimera_ortho" - }, - "chimera_ortho_plus": { - "target": "glenpickle/chimera_ortho_plus" - }, - "choc_taro": { - "target": "kakunpc/choc_taro" - }, - "choco60": { - "target": "recompile_keys/choco60" - }, - "christmas_tree": { - "target": "maple_computing/christmas_tree" - }, - "claw44/rev1": { - "target": "dailycraft/claw44/rev1" - }, - "cocoa40": { - "target": "recompile_keys/cocoa40" - }, - "comet46": { - "target": "satt/comet46" - }, - "cu24": { - "target": "capsunlocked/cu24" - }, - "cu75": { - "target": "capsunlocked/cu75" - }, - "cu80": { - "target": "capsunlocked/cu80/v1" - }, - "delilah": { - "target": "rainkeebs/delilah" - }, - "diverge3": { - "target": "unikeyboard/diverge3" - }, - "divergetm2": { - "target": "unikeyboard/divergetm2" - }, - "dozen0": { - "target": "yynmt/dozen0" - }, - "dubba175": { - "target": "drhigsby/dubba175" - }, - "eggman": { - "target": "qpockets/eggman" - }, - "enter67": { - "target": "kezewa/enter67" - }, - "enter80": { - "target": "kezewa/enter80" - }, - "ergo42": { - "target": "biacco42/ergo42" - }, - "ergoarrows": { - "target": "salicylic_acid3/ergoarrows" - }, - "ergodash/mini": { - "target": "omkbd/ergodash/mini" - }, - "ergodash/rev1": { - "target": "omkbd/ergodash/rev1" - }, - "ergodox_infinity": { - "target": "input_club/ergodox_infinity" - }, - "ergotaco": { - "target": "gboards/ergotaco" - }, - "espectro": { - "target": "mechkeys/espectro" - }, - "eu_isolation": { - "target": "p3d/eu_isolation" - }, - "felix": { - "target": "unikeyboard/felix" - }, - "flygone60/rev3": { - "target": "shandoncodes/flygone60/rev3" - }, - "four_banger": { - "target": "bpiphany/four_banger" - }, - "freyr": { - "target": "hnahkb/freyr" - }, - "geminate60": { - "target": "weirdo/geminate60" - }, - "gentleman65": { - "target": "jkeys_design/gentleman65" - }, - "georgi": { - "target": "gboards/georgi" - }, - "gergo": { - "target": "gboards/gergo" - }, - "getta25": { - "target": "salicylic_acid3/getta25" - }, - "gingham": { - "target": "yiancardesigns/gingham" - }, - "gurindam": { - "target": "ibnuda/gurindam" - }, - "halberd": { - "target": "kagizaraya/halberd" - }, - "handwired/hillside/0_1": { - "target": "hillside/48/0_1" - }, - "hecomi/alpha": { - "target": "takashiski/hecomi/alpha" - }, - "hfdkb/keyboard_sw/k83":{ - "target": "inland/kb83" - }, - "hid_liber": { - "target": "bpiphany/hid_liber" - }, - "id67/default_rgb": { - "target": "idobao/id67" - }, - "id67/rgb": { - "target": "idobao/id67" - }, - "id80": { - "target": "idobao/id80/v2/ansi" - }, - "idobao/id80/v1/ansi": { - "target": "idobao/id80/v2/ansi" - }, - "idobao/id80/v1/iso": { - "target": "idobao/id80/v2/iso" - }, - "id87": { - "target": "idobao/id87/v1" - }, - "infinity60": { - "target": "input_club/infinity60" - }, - "ivy/rev1": { - "target": "maple_computing/ivy/rev1" - }, - "jisplit89": { - "target": "salicylic_acid3/jisplit89" - }, - "jnao": { - "target": "maple_computing/jnao" - }, - "just60": { - "target": "ydkb/just60" - }, - "k_type": { - "target": "input_club/k_type" - }, - "kagamidget": { - "target": "yynmt/kagamidget" - }, - "kelowna/rgb64": { - "target": "weirdo/kelowna/rgb64" - }, - "keychron/q0": { - "target": "keychron/q0/base" - }, - "keychron/q1": { - "target": "keychron/q1v1/ansi" - } - "keychron/q4": { - "target": "keychron/q4/ansi/v1" - } - "kmac": { - "target": "kbdmania/kmac" - } - "kmac_pad": { - "target": "kbdmania/kmac_pad" - } - "kprepublic/bm40hsrgb": { - "target": "kprepublic/bm40hsrgb/rev1" - }, - "kprepublic/bm65hsrgb_iso": { - "target": "kprepublic/bm65hsrgb_iso/rev1" - }, - "kprepublic/bm68hsrgb": { - "target": "kprepublic/bm68hsrgb/rev1" - }, - "late9/rev1": { - "target": "rookiebwoy/late9/rev1" - }, - "latin17rgb": { - "target": "latincompass/latin17rgb" - }, - "latin47ble": { - "target": "latincompass/latin47ble" - }, - "latin60rgb": { - "target": "latincompass/latin60rgb" - }, - "latin64ble": { - "target": "latincompass/latin64ble" - }, - "latin6rgb": { - "target": "latincompass/latin6rgb" - }, - "latinpad": { - "target": "latincompass/latinpad" - }, - "latinpadble": { - "target": "latincompass/latinpadble" - }, - "launchpad/rev1": { - "target": "maple_computing/launchpad/rev1" - }, - "lefty": { - "target": "smoll/lefty/rev2" - }, - "lefty/rev1": { - "target": "smoll/lefty/rev1" - }, - "lck75": { - "target": "lyso1/lck75" - }, - "le_chiffre": { - "target": "tominabox1/le_chiffre" - }, - "lefishe": { - "target": "lyso1/lefishe" - }, - "lets_split_eh/eh": { - "target": "maple_computing/lets_split_eh/eh" - }, - "ls_60": { - "target": "weirdo/ls_60" - }, - "lpad": { - "target": "laneware/lpad" - }, - "lw67": { - "target": "laneware/lw67" - }, - "lw75": { - "target": "laneware/lw75" - }, - "m3n3van": { - "target": "matthewdias/m3n3van" - }, - "macro1": { - "target": "laneware/macro1" - }, - "massdrop/thekey": { - "target": "drop/thekey/v1" - }, - "massdrop/thekey_v2": { - "target": "drop/thekey/v2" - }, - "mechmini/v1": { - "target": "mechkeys/mechmini/v1" - }, - "mechmini/v2": { - "target": "mechkeys/mechmini/v2" - }, - "meira": { - "target": "woodkeys/meira" - }, - "meishi": { - "target": "biacco42/meishi" - }, - "meishi2": { - "target": "biacco42/meishi2" - }, - "melody96": { - "target": "ymdk/melody96" - }, - "miniaxe": { - "target": "kagizaraya/miniaxe" - }, - "minidox/rev1": { - "target": "maple_computing/minidox/rev1" - }, - "mino/hotswap": { - "target": "shandoncodes/mino/hotswap" - }, - "mino_plus/hotswap": { - "target": "shandoncodes/mino_plus/hotswap" - }, - "mino_plus/soldered": { - "target": "shandoncodes/mino_plus/soldered" - }, - "mio": { - "target": "recompile_keys/mio" - }, - "montex": { - "target": "idobao/montex/v1" - }, - "mt40": { - "target": "mt/mt40" - }, - "mt64rgb": { - "target": "mt/mt64rgb" - }, - "mt84": { - "target": "mt/mt84" - }, - "mt980": { - "target": "mt/mt980" - }, - "nafuda": { - "target": "salicylic_acid3/nafuda" - }, - "naiping/np64": { - "target": "weirdo/naiping/np64" - }, - "naiping/nphhkb": { - "target": "weirdo/naiping/nphhkb" - }, - "naiping/npminila": { - "target": "weirdo/naiping/npminila" - }, - "naked48": { - "target": "salicylic_acid3/naked48" - }, - "naked60": { - "target": "salicylic_acid3/naked60" - }, - "naked64": { - "target": "salicylic_acid3/naked64" - }, - "namecard2x4": { - "target": "takashiski/namecard2x4" - }, - "navi10": { - "target": "keyhive/navi10" - }, - "nebula12": { - "target": "spaceholdings/nebula12" - }, - "nebula68": { - "target": "spaceholdings/nebula68" - }, - "nebula68b": { - "target": "spaceholdings/nebula68b" - }, - "neopad/rev1": { - "target": "rookiebwoy/neopad/rev1" - }, - "niu_mini": { - "target": "kbdfans/niu_mini" - }, - "nk1": { - "target": "novelkeys/nk1" - }, - "nk65": { - "target": "novelkeys/nk65" - }, - "nk87": { - "target": "novelkeys/nk87" - }, - "nknl7en": { - "target": "salicylic_acid3/nknl7en" - }, - "nknl7jp": { - "target": "salicylic_acid3/nknl7jp" - }, - "nomu30": { - "target": "recompile_keys/nomu30" - }, - "novelpad": { - "target": "novelkeys/novelpad" - }, - "ogurec": { - "target": "drhigsby/ogurec" - }, - "otaku_split/rev0": { - "target": "takashiski/otaku_split/rev0" - }, - "otaku_split/rev1": { - "target": "takashiski/otaku_split/rev1" - }, - "owl8": { - "target": "dailycraft/owl8" - }, - "packrat": { - "target": "drhigsby/packrat" - }, - "pistachio": { - "target": "rate/pistachio" - }, - "pistachio_mp": { - "target": "rate/pistachio_mp" - }, - "pistachio_pro": { - "target": "rate/pistachio_pro" - }, - "plexus75": { - "target": "checkerboards/plexus75" - }, - "pursuit40": { - "target": "checkerboards/pursuit40" - }, - "pw88": { - "target": "smoll/pw88" - }, - "q4z": { - "target": "p3d/q4z" - }, - "qaz": { - "target": "tominabox1/qaz" - }, - "quark": { - "target": "checkerboards/quark" - }, - "rabbit_capture_plan": { - "target": "kakunpc/rabbit_capture_plan" - }, - "raindrop": { - "target": "laneware/raindrop" - }, - "ramonimbao/aelith": { - "target": "rmi_kb/aelith" - }, - "ramonimbao/chevron": { - "target": "rmi_kb/chevron" - }, - "ramonimbao/herringbone/pro": { - "target": "rmi_kb/herringbone/pro" - }, - "ramonimbao/herringbone/v1": { - "target": "rmi_kb/herringbone/v1" - }, - "ramonimbao/mona/v1": { - "target": "rmi_kb/mona/v1" - }, - "ramonimbao/mona/v1_1": { - "target": "rmi_kb/mona/v1_1" - }, - "ramonimbao/mona/v32a": { - "target": "rmi_kb/mona/v32a" - }, - "ramonimbao/squishy65": { - "target": "rmi_kb/squishy65" - }, - "ramonimbao/squishyfrl": { - "target": "rmi_kb/squishyfrl" - }, - "ramonimbao/squishytkl": { - "target": "rmi_kb/squishytkl" - }, - "ramonimbao/tkl_ff/v1": { - "target": "rmi_kb/tkl_ff/v1" - }, - "ramonimbao/tkl_ff/v2": { - "target": "rmi_kb/tkl_ff/v2" - }, - "ramonimbao/wete/v1": { - "target": "rmi_kb/wete/v1" - }, - "ramonimbao/wete/v2": { - "target": "rmi_kb/wete/v2" - }, - "rainkeeb": { - "target": "rainkeebs/rainkeeb" - }, - "reviung33": { - "target": "reviung/reviung33" - }, - "reviung34": { - "target": "reviung/reviung34" - }, - "reviung39": { - "target": "reviung/reviung39" - }, - "reviung41": { - "target": "reviung/reviung41" - }, - "reviung5": { - "target": "reviung/reviung5" - }, - "reviung53": { - "target": "reviung/reviung53" - }, - "reviung61": { - "target": "reviung/reviung61" - }, - "riot_pad": { - "target": "shandoncodes/riot_pad" - }, - "runner3680/3x6": { - "target": "omkbd/runner3680/3x6" - }, - "runner3680/3x7": { - "target": "omkbd/runner3680/3x7" - }, - "runner3680/3x8": { - "target": "omkbd/runner3680/3x8" - }, - "runner3680/4x6": { - "target": "omkbd/runner3680/4x6" - }, - "runner3680/4x7": { - "target": "omkbd/runner3680/4x7" - }, - "runner3680/4x8": { - "target": "omkbd/runner3680/4x8" - }, - "runner3680/5x6": { - "target": "omkbd/runner3680/5x6" - }, - "runner3680/5x6_5x8": { - "target": "omkbd/runner3680/5x6_5x8" - }, - "runner3680/5x7": { - "target": "omkbd/runner3680/5x7" - }, - "runner3680/5x8": { - "target": "omkbd/runner3680/5x8" - }, - "scarletbandana": { - "target": "woodkeys/scarletbandana" - }, - "scythe": { - "target": "kagizaraya/scythe" - }, - "seigaiha": { - "target": "yiancardesigns/seigaiha" - }, - "setta21": { - "target": "salicylic_acid3/setta21" - }, - "soda/mango": { - "target": "magic_force/mf17" - }, - "soda/pocket": { - "target": "magic_force/mf34" - }, - "space_space/rev1": { - "target": "qpockets/space_space/rev1" - }, - "space_space/rev2": { - "target": "qpockets/space_space/rev2" - }, - "spacey": { - "target": "p3d/spacey" - }, - "spiderisland/winry25tc": { - "target": "winry/winry25tc" - }, - "splitreus62": { - "target": "nacly/splitreus62" - }, - "squiggle/rev1": { - "target": "ibnuda/squiggle/rev1" - }, - "standaside": { - "target": "edi/standaside" - }, - "steal_this_keyboard": { - "target": "obosob/steal_this_keyboard" - }, - "stella": { - "target": "hnahkb/stella" - }, - "studiokestra/line_tkl": { - "target": "studiokestra/line_friends_tkl" - }, - "suihankey/alpha": { - "target": "kakunpc/suihankey/alpha" - }, - "suihankey/rev1": { - "target": "kakunpc/suihankey/rev1" - }, - "suihankey/split": { - "target": "kakunpc/suihankey/split" - }, - "synapse": { - "target": "p3d/synapse" - }, - "the_ruler": { - "target": "maple_computing/the_ruler" - }, - "thedogkeyboard": { - "target": "kakunpc/thedogkeyboard" - }, - "tiger910": { - "target": "weirdo/tiger910" - }, - "treadstone32": { - "target": "marksard/treadstone32" - }, - "treadstone48/rev1": { - "target": "marksard/treadstone48/rev1" - }, - "treadstone48/rev2": { - "target": "marksard/treadstone48/rev2" - }, - "tronguylabs/m122_3270": { - "target": "ibm/model_m_122/m122_3270/teensy" - }, - "tw40": { - "target": "p3d/tw40" - }, - "ua62": { - "target": "nacly/ua62" - }, - "underscore33/rev1": { - "target": "tominabox1/underscore33/rev1" - }, - "underscore33/rev2": { - "target": "tominabox1/underscore33/rev2" - }, - "uno": { - "target": "keyhive/uno" - }, - "ut472": { - "target": "keyhive/ut472" - }, - "vn66": { - "target": "hnahkb/vn66" - }, - "w1_at": { - "target": "geonworks/w1_at" - }, - "wallaby": { - "target": "kkatano/wallaby" - }, - "wanten": { - "target": "qpockets/wanten" - }, - "wheatfield/blocked65": { - "target": "mt/blocked65" - }, - "wheatfield/split75": { - "target": "mt/split75" - }, - "whitefox": { - "target": "input_club/whitefox" - }, - "wings42/rev1": { - "target": "dailycraft/wings42/rev1" - }, - "wings42/rev1_extkeys": { - "target": "dailycraft/wings42/rev1_extkeys" - }, - "wings42/rev2": { - "target": "dailycraft/wings42/rev2" - }, - "yasui": { - "target": "rainkeebs/yasui" - }, - "yd60mq": { - "target": "ymdk/yd60mq" - }, - "yd68": { - "target": "ydkb/yd68" - }, - "ymd75": { - "target": "ymdk/ymd75/rev1" - }, - "ymd96": { - "target": "ymdk/ymd96" - }, - "ymdk_np21": { - "target": "ymdk/np21" - }, - "yugo_m/model_m_101": { - "target": "ibm/model_m/yugo_m" - }, - "yurei": { - "target": "kkatano/yurei" - }, - "z12": { - "target": "zigotica/z12" - }, - "z34": { - "target": "zigotica/z34" - }, - "zinc": { - "target": "25keys/zinc" - }, - "zinc/rev1": { - "target": "25keys/zinc/rev1" - }, - "zinc/reva": { - "target": "25keys/zinc/reva" - }, - // Moved during 2023 Q4 cycle - "ymdk/melody96": { - "target": "ymdk/melody96/soldered" - }, - // Moved during 2024 Q2 cycle - "kprepublic/jj40": { - "target": "kprepublic/jj40/rev1" - }, - "kprepublic/jj50": { - "target": "kprepublic/jj50/rev1" + "voyager": { + "target": "zsa/moonlander" } } diff --git a/keyboards/zsa/common/config.h b/keyboards/zsa/common/config.h index 8cc9bb6e4b1c..8a0ef47e4867 100644 --- a/keyboards/zsa/common/config.h +++ b/keyboards/zsa/common/config.h @@ -4,7 +4,7 @@ #pragma once #ifdef ORYX_ENABLE -# ifndef FIRWMARE_VERSION +# ifndef FIRMWARE_VERSION # define FIRMWARE_VERSION u8"default/latest" # endif // FIRMWARE_VERSION # ifndef RAW_USAGE_PAGE diff --git a/keyboards/zsa/common/features.mk b/keyboards/zsa/common/features.mk index 0b2bee6de9a8..ae636faa1aa2 100644 --- a/keyboards/zsa/common/features.mk +++ b/keyboards/zsa/common/features.mk @@ -2,9 +2,10 @@ VPATH += keyboards/zsa/common ifeq ($(strip $(ORYX_ENABLE)), yes) SRC += keyboards/zsa/common/oryx.c - OPT_DEFS += -DORYX_ENABLE + OPT_DEFS += -DORYX_ENABLE -DORYX_CONFIGURATOR POST_CONFIG_H += keyboards/zsa/common/config.h RAW_ENABLE := yes VIA_ENABLE := no RGB_MATRIX_CUSTOM_KB = yes +else endif diff --git a/keyboards/zsa/common/oryx.c b/keyboards/zsa/common/oryx.c index bf695aeac8d1..8d3e2d8ad2d9 100644 --- a/keyboards/zsa/common/oryx.c +++ b/keyboards/zsa/common/oryx.c @@ -24,6 +24,10 @@ void send_report(uint8_t endpoint, void *report, size_t size); bool send_report(usb_endpoint_in_lut_t endpoint, void *report, size_t size); #endif +#ifdef RGB_MATRIX_ENABLE +RGB webhid_leds[RGB_MATRIX_LED_COUNT]; +#endif + void raw_hid_send_oryx(uint8_t *data, uint8_t length) { if (length != RAW_EPSIZE) { return; diff --git a/keyboards/zsa/common/oryx.h b/keyboards/zsa/common/oryx.h index 86a4b5829e52..30db8d798d1c 100644 --- a/keyboards/zsa/common/oryx.h +++ b/keyboards/zsa/common/oryx.h @@ -91,5 +91,5 @@ void layer_state_set_oryx(layer_state_t state); #if defined(RGB_MATRIX_ENABLE) && !defined(KEYBOARD_ergodox_ez_glow) -RGB webhid_leds[RGB_MATRIX_LED_COUNT]; +extern RGB webhid_leds[RGB_MATRIX_LED_COUNT]; #endif diff --git a/keyboards/zsa/ergodox_ez/post_config.h b/keyboards/zsa/ergodox_ez/post_config.h index 5fc0d83440dd..49d9f9c85ca8 100644 --- a/keyboards/zsa/ergodox_ez/post_config.h +++ b/keyboards/zsa/ergodox_ez/post_config.h @@ -33,10 +33,10 @@ along with this program. If not, see . #ifdef ERGODOX_LED_30 // If using 30 LEDs, then define that many -# define RGBLED_NUM 30 // Number of LEDs +# define RGBLIGHT_LED_COUNT 30 // Number of LEDs #else // If not, then only define 15 -# define RGBLED_NUM 15 // Number of LEDs +# define RGBLIGHT_LED_COUNT 15 // Number of LEDs #endif #ifndef ISSI_TIMEOUT diff --git a/keyboards/zsa/ergodox_ez/post_rules.mk b/keyboards/zsa/ergodox_ez/post_rules.mk new file mode 100644 index 000000000000..c25a0b3a290b --- /dev/null +++ b/keyboards/zsa/ergodox_ez/post_rules.mk @@ -0,0 +1 @@ +include keyboards/zsa/common/features.mk diff --git a/keyboards/zsa/ergodox_ez/rules.mk b/keyboards/zsa/ergodox_ez/rules.mk index 4c6f80cecd88..363c32e629f7 100644 --- a/keyboards/zsa/ergodox_ez/rules.mk +++ b/keyboards/zsa/ergodox_ez/rules.mk @@ -8,4 +8,3 @@ I2C_DRIVER_REQUIRED = yes MOUSE_SHARED_EP = no DEFAULT_FOLDER = zsa/ergodox_ez/m32u4/base -include keyboards/zsa/common/features.mk diff --git a/keyboards/zsa/moonlander/post_rules.mk b/keyboards/zsa/moonlander/post_rules.mk new file mode 100644 index 000000000000..c25a0b3a290b --- /dev/null +++ b/keyboards/zsa/moonlander/post_rules.mk @@ -0,0 +1 @@ +include keyboards/zsa/common/features.mk diff --git a/keyboards/zsa/moonlander/rules.mk b/keyboards/zsa/moonlander/rules.mk index 63d2d8230fe6..d2018cfff0cb 100644 --- a/keyboards/zsa/moonlander/rules.mk +++ b/keyboards/zsa/moonlander/rules.mk @@ -5,4 +5,3 @@ SRC += matrix.c mcp23018.c I2C_DRIVER_REQUIRED = yes MCU_LDSCRIPT = STM32F303xB -include keyboards/zsa/common/features.mk diff --git a/keyboards/zsa/planck_ez/post_rules.mk b/keyboards/zsa/planck_ez/post_rules.mk new file mode 100644 index 000000000000..c25a0b3a290b --- /dev/null +++ b/keyboards/zsa/planck_ez/post_rules.mk @@ -0,0 +1 @@ +include keyboards/zsa/common/features.mk diff --git a/keyboards/zsa/planck_ez/rules.mk b/keyboards/zsa/planck_ez/rules.mk index bc8fe396eedc..67921c96ed87 100644 --- a/keyboards/zsa/planck_ez/rules.mk +++ b/keyboards/zsa/planck_ez/rules.mk @@ -2,4 +2,3 @@ RGBLIGHT_SUPPORTED = no BAKCLIGHT_SUPPORTED = no DEFAULT_FOLDER = zsa/planck_ez/base -include keyboards/zsa/common/features.mk diff --git a/keyboards/zsa/voyager/post_rules.mk b/keyboards/zsa/voyager/post_rules.mk new file mode 100644 index 000000000000..c25a0b3a290b --- /dev/null +++ b/keyboards/zsa/voyager/post_rules.mk @@ -0,0 +1 @@ +include keyboards/zsa/common/features.mk diff --git a/keyboards/zsa/voyager/rules.mk b/keyboards/zsa/voyager/rules.mk index 28c538b3eae3..bb95224d2bfe 100644 --- a/keyboards/zsa/voyager/rules.mk +++ b/keyboards/zsa/voyager/rules.mk @@ -8,5 +8,3 @@ DFU_SUFFIX_ARGS = -v 3297 -p 0791 VPATH += drivers/gpio SRC += matrix.c mcp23018.c I2C_DRIVER_REQUIRED = yes - -include keyboards/zsa/common/features.mk