diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index a5d185e1dd..0000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Bug report -description: Create a report to help us improve QMK Firmware. -title: "[Bug] " -labels: ["bug", "help wanted"] -body: - - type: markdown - attributes: - value: | - Provide a general summary of the bug in the title above. - - type: textarea - attributes: - label: Describe the Bug - description: A clear and concise description of what the bug is. - - type: input - attributes: - label: Keyboard Used - description: The name of the keyboard from the `make` or `qmk compile`/`qmk flash` commands, eg. `planck/rev6`. - - type: input - attributes: - label: Link to product page (if applicable) - - type: input - attributes: - label: Operating System - - type: textarea - attributes: - label: qmk doctor Output - description: Output from running the `qmk doctor` command. - render: text - - type: checkboxes - attributes: - label: Is AutoHotKey / Karabiner installed - options: - - label: AutoHotKey (Windows) - - label: Karabiner (macOS) - - type: input - attributes: - label: Other keyboard-related software installed - - type: textarea - attributes: - label: Additional Context - description: Add any other relevant information about the problem here. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 0d4ca035c8..0000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,8 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: QMK Discord - url: https://discord.gg/Uq7gcHh - about: Ask questions, discuss issues and features. Chill. - - name: OLKB Subreddit - url: https://www.reddit.com/r/olkb - about: All things OLKB and QMK. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index fdb32f098d..0000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Feature request -description: Suggest a new feature or changes to existing features. -title: "[Feature Request] " -labels: ["enhancement", "help wanted"] -body: - - type: markdown - attributes: - value: | - Provide a general summary of the changes you want in the title above. - - Please refrain from asking maintainers to add support for specific keyboards -- it is unlikely they will have hardware available, and will not be able to help. - Your best bet is to take the initiative, add support, then submit a PR yourself. - - type: checkboxes - attributes: - label: Feature Request Type - options: - - label: Core functionality - - label: Add-on hardware support (eg. audio, RGB, OLED screen, etc.) - - label: Alteration (enhancement/optimization) of existing feature(s) - - label: New behavior - - type: textarea - attributes: - label: Description - description: A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful. diff --git a/.github/ISSUE_TEMPLATE/other_issues.yml b/.github/ISSUE_TEMPLATE/other_issues.yml deleted file mode 100644 index d3a890e45d..0000000000 --- a/.github/ISSUE_TEMPLATE/other_issues.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Other issues -description: Anything else that doesn't fall into the above categories. -labels: ["help wanted", "question"] -body: - - type: markdown - attributes: - value: | - Provide a general summary of the changes you want in the title above. - - type: markdown - attributes: - value: | - Please check [https://docs.qmk.fm/#/support](https://docs.qmk.fm/#/support) for additional resources first. If that doesn't answer your question, choose the bug report template instead, as that may be more appropriate. - - Please refrain from asking maintainers to add support for specific keyboards -- it is unlikely they will have hardware available, and will not be able to help. - Your best bet is to take the initiative, add support, then submit a PR yourself. - - type: textarea - attributes: - label: Issue Description - description: Describe your issue in as much detail as possible. diff --git a/.github/ISSUE_TEMPLATE/zzz_blank.md b/.github/ISSUE_TEMPLATE/zzz_blank.md deleted file mode 100644 index 5644802ef5..0000000000 --- a/.github/ISSUE_TEMPLATE/zzz_blank.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: Blank issue -about: If you're 100% sure that you don't need one of the other issue templates, use - this one instead. -title: '' -labels: help wanted, question -assignees: '' - ---- - - diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index d402488d40..0000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,35 +0,0 @@ - - - - - -## Description - - - -## Types of Changes - - -- [ ] Core -- [ ] Bugfix -- [ ] New feature -- [ ] Enhancement/optimization -- [ ] Keyboard (addition or update) -- [ ] Keymap/layout/userspace (addition or update) -- [ ] Documentation - -## Issues Fixed or Closed by This PR - -* - -## Checklist - - - -- [ ] My code follows the code style of this project: [**C**](https://docs.qmk.fm/#/coding_conventions_c), [**Python**](https://docs.qmk.fm/#/coding_conventions_python) -- [ ] I have read the [**PR Checklist** document](https://docs.qmk.fm/#/pr_checklist) and have made the appropriate changes. -- [ ] My change requires a change to the documentation. -- [ ] I have updated the documentation accordingly. -- [ ] I have read the [**CONTRIBUTING** document](https://docs.qmk.fm/#/contributing). -- [ ] I have added tests to cover my changes. -- [ ] I have tested the changes and verified that they work and don't break anything (as well as I can manage). diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 562d671c8e..0000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - labels: CI - reviewers: - - "qmk/collaborators" - schedule: - interval: "daily" diff --git a/.github/labeler.yml b/.github/labeler.yml deleted file mode 100644 index 95eaa49252..0000000000 --- a/.github/labeler.yml +++ /dev/null @@ -1,46 +0,0 @@ -core: - - quantum/**/* - - tmk_core/**/* - - drivers/**/* - - tests/**/* - - util/**/* - - platforms/**/* - - builddefs/**/* - - Makefile - - '*.mk' -dependencies: - - any: - - 'lib/**/*' - - '!lib/python/**/*' -keyboard: - - any: - - 'keyboards/**/*' - - '!keyboards/**/keymaps/**/*' -keymap: - - users/**/* - - layouts/**/* - - keyboards/**/keymaps/**/* -via: - - keyboards/**/keymaps/via/* -cli: - - requirements.txt - - lib/python/**/* -python: - - '**/*.py' -documentation: - - docs/**/* -translation: - - docs/fr-fr/**/* - - docs/es/**/* - - docs/ja/**/* - - docs/he-il/**/* - - docs/pt-br/**/* - - docs/zh-cn/**/* - - docs/de/**/* - - docs/ru-ru/**/* -CI: - - .github/**/* -dd: - - data/constants/**/* - - data/mappings/**/* - - data/schemas/**/* diff --git a/.github/workflows/api.yml b/.github/workflows/api.yml deleted file mode 100644 index db78f16112..0000000000 --- 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 1db1c49a9b..0000000000 --- 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 b4465277b0..0000000000 --- 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/ci_build_major_branch.yml b/.github/workflows/ci_build_major_branch.yml deleted file mode 100644 index 77755ba71f..0000000000 --- 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 0804c9e2d0..0000000000 --- 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 77b5bfe073..0000000000 --- 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 afcda1fe98..0000000000 --- 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 0fdd2c7b37..0000000000 --- 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 283a255342..0000000000 --- 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.yml b/.github/workflows/format.yml deleted file mode 100644 index 1d7577dcef..0000000000 --- a/.github/workflows/format.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: PR Lint Format - -permissions: - contents: read - -on: - pull_request: - paths: - - 'drivers/**' - - 'lib/arm_atsam/**' - - 'lib/lib8tion/**' - - 'lib/python/**' - - 'platforms/**' - - 'quantum/**' - - 'tests/**' - - 'tmk_core/**' - -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: Install dependencies - run: | - pip3 install -r requirements-dev.txt - - - name: Get changed files - id: file_changes - uses: tj-actions/changed-files@v44 - with: - use_rest_api: true - - - name: Run qmk formatters - shell: 'bash {0}' - run: | - echo '${{ steps.file_changes.outputs.added_files}}' '${{ steps.file_changes.outputs.modified_files}}' > ~/files_changed.txt - qmk format-c --core-only $(< ~/files_changed.txt) || true - qmk format-python $(< ~/files_changed.txt) || true - qmk format-text $(< ~/files_changed.txt) || true - - - name: Fail when formatting required - run: | - git diff - for file in $(git diff --name-only); do - echo "File '${file}' Requires Formatting" - echo "::error file=${file}::Requires Formatting" - done - test -z "$(git diff --name-only)" diff --git a/.github/workflows/format_push.yml b/.github/workflows/format_push.yml deleted file mode 100644 index ea60fc95b4..0000000000 --- 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/labeler.yml b/.github/workflows/labeler.yml deleted file mode 100644 index fa4b8981ad..0000000000 --- a/.github/workflows/labeler.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: "Pull Request Labeler" - -permissions: - contents: read - pull-requests: write - -on: - pull_request_target: - types: [opened, synchronize, reopened, ready_for_review, locked] - -jobs: - triage: - runs-on: ubuntu-latest - steps: - - uses: actions/labeler@v4 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" - configuration-path: '.github/labeler.yml' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index 22ddcaba79..0000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,87 +0,0 @@ -name: PR Lint keyboards - -permissions: - contents: read - -on: - pull_request: - paths: - - 'keyboards/**' - -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: Install dependencies - run: pip3 install -r requirements-dev.txt - - - name: Get changed files - id: file_changes - uses: tj-actions/changed-files@v44 - with: - use_rest_api: true - - - name: Print info - run: | - git rev-parse --short HEAD - echo ${{ github.event.pull_request.base.sha }} - echo '${{ steps.file_changes.outputs.all_changed_files}}' - - - name: Run qmk lint - if: always() - shell: 'bash {0}' - run: | - QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.all_changed_files}}' | sed 's/ /\n/g') - QMK_KEYBOARDS=$(qmk list-keyboards) - - exit_code=0 - - for KB in $QMK_KEYBOARDS; do - KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)') - if [[ -z "$KEYBOARD_CHANGES" ]]; then - # skip as no changes for this keyboard - continue - fi - - KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/) - if [[ $KEYMAP_ONLY -gt 0 ]]; then - echo "linting ${KB}" - - qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB} - exit_code=$(($exit_code + $?)) - fi - done - - qmk format-text ${{ steps.file_changes.outputs.all_changed_files}} || true - for file in ${{ steps.file_changes.outputs.all_changed_files}}; do - if [[ -f $file ]]; then - if ! git diff --quiet $file; then - echo "File '${file}' Requires Formatting" - echo "::error file=${file}::Requires Formatting" - exit_code=$(($exit_code + 1)) - fi - fi - done - - if [[ $exit_code -gt 255 ]]; then - exit 255 - fi - exit $exit_code - - - name: Verify keyboard aliases - if: always() - shell: 'bash {0}' - run: | - git reset --hard - git clean -xfd - qmk ci-validate-aliases diff --git a/.github/workflows/regen.yml b/.github/workflows/regen.yml deleted file mode 100644 index a31526084f..0000000000 --- a/.github/workflows/regen.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: PR Regenerate Files - -permissions: - contents: read - -on: - pull_request: - paths: - - 'data/constants/**' - - 'lib/python/**' - -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 - - - name: Fail when regeneration required - run: | - git diff - for file in $(git diff --name-only); do - echo "File '${file}' Requires Regeneration" - echo "::error file=${file}::Requires Regeneration" - done - test -z "$(git diff --name-only)" diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml deleted file mode 100644 index 0f01411141..0000000000 --- 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 ce9bd0f316..0000000000 --- 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/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml deleted file mode 100644 index a834053a76..0000000000 --- a/.github/workflows/unit_test.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Unit Tests - -permissions: - contents: read - -on: - push: - branches: - - master - - develop - pull_request: - paths: - - 'builddefs/**' - - 'quantum/**' - - 'platforms/**' - - 'tmk_core/**' - - 'tests/**' - - '*.mk' - - 'Makefile' - - '.github/workflows/unit_test.yml' - -jobs: - test: - runs-on: ubuntu-latest - - container: ghcr.io/qmk/qmk_cli - - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Install dependencies - run: pip3 install -r requirements-dev.txt - - name: Run tests - run: qmk test-c diff --git a/keyboards/sofle/keymaps/locker98/keymap.c b/keyboards/sofle/keymaps/locker98/keymap.c index 0a12636708..e4114eee8d 100644 --- a/keyboards/sofle/keymaps/locker98/keymap.c +++ b/keyboards/sofle/keymaps/locker98/keymap.c @@ -43,6 +43,24 @@ + +#define KC_CTL_A MT(MOD_LCTL, KC_A) // Tap for A, hold for Control +#define KC_CTL_CL MT(MOD_LCTL, KC_SCLN) // Tap for colon, hold for Control +#define KC_SFT_Z MT(MOD_RSFT, KC_Z) // Tap for Z, hold for Shift +#define KC_SFT_SL MT(MOD_RSFT, KC_SLSH) // Tap for slash, hold for Shift + + + +#define KC_GUI_ESC MT(MOD_LGUI, KC_ESC) // Tap for Esc, hold for GUI (Meta, Command, Win) +#define KC_ALT_ENT MT(MOD_LALT, KC_ENT) // Tap for Enter, hold for Alt (Option) +#define KC_SPE_SPC LT(_SPECIAL, KC_SPC) // Tap for Space, hold for Special layer +#define KC_NUM_SPC LT(_NUMBERS, KC_SPC) // Tap for Space, hold for Numbers layer +#define KC_SFT_TAB MT(MOD_RSFT, KC_TAB) // Tap for Tab, hold for Right Shift + + + + + /* #define SET_NUMROW(hsv) \ {10, 2, hsv}, \ @@ -123,7 +141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------/ / \ \-----------------------------------------' * |Space | WIN |LOWER | BSPC | / Enter / \Shift \ |SPACE |RAISE | RCTR | RAlt | * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' + * `----------------------------------' '------------------------------------' */ [_QWERTY] = LAYOUT( //,------------------------------------------------. ,---------------------------------------------------. @@ -131,9 +149,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LCTL,KC_CTL_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_CTL_CL, KC_QUOT, //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_D_MUTE,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, + KC_LSFT,KC_SFT_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_D_MUTE,KC_N, KC_M, KC_COMM, KC_DOT, KC_SFT_SL, KC_LSFT, //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| KC_SPC, KC_RAISE, KC_LOWER, KC_BSPC, KC_ENT, KC_LSFT, KC_SPC , KC_RAISE, KC_RCTL, KC_RALT // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ @@ -239,11 +257,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,------------------------------------------------. ,---------------------------------------------------. _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NUM, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, XXXXXXX, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PIPE, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______, _______,KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______, + XXXXXXX, KC_CIRC, KC_7, KC_8, KC_9, KC_ASTR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------------+-------+--------+--------+------- |--------+-------+--------+--------+--------+---------| + XXXXXXX, KC_MINS, KC_4, KC_5, KC_6, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------------+-------+--------+--------+------- === | | === |--------+-------+--------+--------+--------+---------| + XXXXXXX, KC_PLUS, KC_1, KC_2, KC_3, KC_SLSH,_______, _______,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| _______, TO(_QWERTY), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______ // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/