Compare commits

...

3 Commits

Author SHA1 Message Date
Thomas Haukland
2f48cd135c Blacktyl miryoku 2023-07-24 22:43:59 +02:00
Manna Harbour
e1307cc3a7 [miryoku-github] Squashed local commits from previous miryoku branch
- Squashed local commits from previous miryoku branch
- Update actions/upload-artifact in workflow
- Add choice to Build Inputs workflow for alternative layout options
  - Add Test Inputs workflow with all text fields for matrix builds
- Fix make git-submodule in workflow
- Fix merge in workflow (#16)
2023-05-06 18:10:06 +10:00
Manna Harbour
aebc99a4e0 [miryoku-github] Delete .github/ and readme.md 2023-05-06 18:06:09 +10:00
44 changed files with 565 additions and 964 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1 @@
github: [manna-harbour]

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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: ''
---

View File

@@ -1,35 +0,0 @@
<!--- Provide a general summary of your changes in the title above. -->
<!--- This template is entirely optional and can be removed, but is here to help both you and us. -->
<!--- Anything on lines wrapped in comments like these will not show up in the final text. -->
## Description
<!--- Describe your changes in detail here. -->
## Types of Changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply. -->
- [ ] 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
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] 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).

View File

@@ -1,9 +0,0 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
labels: CI
reviewers:
- "qmk/collaborators"
schedule:
interval: "daily"

42
.github/labeler.yml vendored
View File

@@ -1,42 +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/**/*

View File

@@ -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: qmkfm/qmk_cli
# protect against those who work in their fork on 'important' branches
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v3
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'

View File

@@ -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/"

View File

@@ -1,37 +0,0 @@
name: Essential files modified
permissions:
contents: write
on:
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@v3
with:
fetch-depth: 0
- name: Bump version and push tag
uses: anothrNick/github-tag-action@1.62.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BUMP: 'patch'

View File

@@ -0,0 +1,11 @@
# Copyright 2021 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Build Example contra'
on:
- workflow_dispatch
jobs:
build:
uses: ./.github/workflows/main.yml
with:
keyboard: '["contra"]'

View File

@@ -0,0 +1,11 @@
# Copyright 2021 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Build Example crkbd'
on:
- workflow_dispatch
jobs:
build:
uses: ./.github/workflows/main.yml
with:
keyboard: '["crkbd"]'

View File

@@ -0,0 +1,11 @@
# Copyright 2021 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Build Example ergodox_ez'
on:
- workflow_dispatch
jobs:
build:
uses: ./.github/workflows/main.yml
with:
keyboard: '["ergodox_ez"]'

View File

@@ -0,0 +1,11 @@
# Copyright 2021 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Build Example keebio/levinson'
on:
- workflow_dispatch
jobs:
build:
uses: ./.github/workflows/main.yml
with:
keyboard: '["keebio/levinson"]'

View File

@@ -0,0 +1,11 @@
# Copyright 2021 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Build Example planck/rev6'
on:
- workflow_dispatch
jobs:
build:
uses: ./.github/workflows/main.yml
with:
keyboard: '["planck/rev6"]'

12
.github/workflows/build-example-xmk.yml vendored Normal file
View File

@@ -0,0 +1,12 @@
# Copyright 2022 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Build Example 𝑥MK'
on:
- workflow_dispatch
jobs:
build:
uses: ./.github/workflows/main.yml
with:
keyboard: '["converter/xmk"]'
merge: '["manna-harbour/qmk_firmware/xmk"]'

113
.github/workflows/build-inputs.yml vendored Normal file
View File

@@ -0,0 +1,113 @@
# Copyright 2021 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Build Inputs'
on:
workflow_dispatch:
inputs:
keyboard:
description: 'Keyboard'
required: true
alphas:
description: 'Miryoku Alphas'
required: false
default: 'default'
type: choice
options:
- "default"
- "AZERTY"
- "BEAKL15"
- "Colemak"
- "ColemakDHK"
- "Dvorak"
- "Halmak"
- "QWERTY"
- "QWERTZ"
- "Workman"
nav:
description: 'Miryoku Nav'
required: false
default: 'default'
type: choice
options:
- "default"
- "invertedT"
- "vi"
clipboard:
description: 'Miryoku Clipboard'
required: false
default: 'default'
type: choice
options:
- "default"
- "fun"
- "Mac"
- "Win"
layers:
description: 'Miryoku Layers'
required: false
default: 'default'
type: choice
options:
- "default"
- "flip"
mapping:
description: 'Miryoku Mapping'
required: false
default: 'default'
rules:
description: 'custom_rules.mk'
required: false
default: 'default'
custom_config:
description: 'custom_config.h'
required: false
default: 'default'
merge:
description: 'Merge QMK Branches'
required: false
default: 'default'
jobs:
process-inputs:
runs-on: ubuntu-latest
outputs:
keyboard: ${{ steps.process-inputs.outputs.keyboard }}
alphas: ${{ steps.process-inputs.outputs.alphas }}
nav: ${{ steps.process-inputs.outputs.nav }}
clipboard: ${{ steps.process-inputs.outputs.clipboard }}
layers: ${{ steps.process-inputs.outputs.layers }}
mapping: ${{ steps.process-inputs.outputs.mapping }}
rules: ${{ steps.process-inputs.outputs.rules }}
custom_config: ${{ steps.process-inputs.outputs.custom_config }}
merge: ${{ steps.process-inputs.outputs.merge }}
steps:
- name: Process inputs
id: process-inputs
run: |
set-output()
{
json=`echo "$2" | jq -cnR 'inputs | split(",";"")'`
echo "$1=$json" >> $GITHUB_OUTPUT
}
set-output "keyboard" "${{ github.event.inputs.keyboard }}"
set-output "alphas" "${{ github.event.inputs.alphas }}"
set-output "nav" "${{ github.event.inputs.nav }}"
set-output "clipboard" "${{ github.event.inputs.clipboard }}"
set-output "layers" "${{ github.event.inputs.layers }}"
set-output "mapping" "${{ github.event.inputs.mapping }}"
set-output "rules" "${{ github.event.inputs.rules }}"
set-output "custom_config" "${{ github.event.inputs.custom_config }}"
set-output "merge" "${{ github.event.inputs.merge }}"
build:
uses: ./.github/workflows/main.yml
needs: process-inputs
with:
keyboard: ${{ needs.process-inputs.outputs.keyboard }}
alphas: ${{ needs.process-inputs.outputs.alphas }}
nav: ${{ needs.process-inputs.outputs.nav }}
clipboard: ${{ needs.process-inputs.outputs.clipboard }}
layers: ${{ needs.process-inputs.outputs.layers }}
mapping: ${{ needs.process-inputs.outputs.mapping }}
rules: ${{ needs.process-inputs.outputs.rules }}
custom_config: ${{ needs.process-inputs.outputs.custom_config }}
merge: ${{ needs.process-inputs.outputs.merge }}

View File

@@ -1,74 +0,0 @@
name: CI Builds
permissions:
contents: read
on:
push:
branches: [master, develop]
workflow_dispatch:
inputs:
branch:
type: choice
description: 'Branch to build'
options: [master, develop]
concurrency: ci_build-${{ github.event.inputs.branch || github.ref_name }}
jobs:
ci_builds:
if: github.repository == 'qmk/qmk_firmware'
name: "CI Build"
runs-on: self-hosted
timeout-minutes: 1380
strategy:
fail-fast: false
matrix:
keymap: [default, via]
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
with:
submodules: recursive
ref: ${{ github.event.inputs.branch || github.ref }}
- name: Install dependencies
run: pip3 install -r requirements.txt
- name: Run `qmk mass-compile` (keymap ${{ matrix.keymap }})
run: |
export NCPUS=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
qmk mass-compile -t -j $NCPUS -km ${{ matrix.keymap }} -e DUMP_CI_METADATA=yes || touch .failed
# 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
# Exit with failure if the compilation stage failed
[ ! -f .failed ] || exit 1
- name: 'Upload artifacts'
uses: actions/upload-artifact@v3
if: always()
with:
name: artifacts-${{ github.event.inputs.branch || github.ref_name }}-${{ matrix.keymap }}
if-no-files-found: ignore
path: |
*.bin
*.hex
*.uf2
.build/failed.*
- 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 ${{ github.event.inputs.branch || github.ref_name }} --keymap ${{ matrix.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

View File

@@ -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: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install dependencies
run: pip3 install -r requirements-dev.txt
- name: Run tests
run: qmk pytest

View File

@@ -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@v3
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

View File

@@ -1,46 +0,0 @@
name: Generate Docs
permissions:
contents: write
on:
push:
branches:
- master
paths:
- 'tmk_core/**'
- 'quantum/**'
- 'platforms/**'
- 'docs/**'
- '.github/workflows/docs.yml'
jobs:
generate:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Install dependencies
run: |
apt-get update && apt-get install -y rsync nodejs npm doxygen
npm install -g moxygen
- name: Build docs
run: |
qmk --verbose generate-docs
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4.4.1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BASE_BRANCH: master
BRANCH: gh-pages
FOLDER: .build/docs
GIT_CONFIG_EMAIL: hello@qmk.fm

View File

@@ -1,42 +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
steps:
- uses: actions/checkout@v3
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 }}

View File

@@ -1,55 +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: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
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@v35
- 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)"

View File

@@ -1,59 +0,0 @@
name: Lint Format
permissions:
contents: read
on:
push:
branches:
- master
- develop
jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
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@v5
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 <hello@qmk.fm>
committer: QMK Bot <hello@qmk.fm>
commit-message: Format code according to conventions
title: '[CI] Format code according to conventions'

View File

@@ -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@main
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: '.github/labeler.yml'

View File

@@ -1,74 +0,0 @@
name: PR Lint keyboards
permissions:
contents: read
on:
pull_request:
paths:
- 'keyboards/**'
jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
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@v35
- 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
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 ! git diff --quiet $file; then
echo "File '${file}' Requires Formatting"
echo "::error file=${file}::Requires Formatting"
exit_code=$(($exit_code + 1))
fi
done
if [[ $exit_code -gt 255 ]]; then
exit 255
fi
exit $exit_code

126
.github/workflows/main.yml vendored Normal file
View File

@@ -0,0 +1,126 @@
# Copyright 2021 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Main'
on:
workflow_call:
inputs:
keyboard:
type: string
default: '["default"]'
alphas:
type: string
default: '["default"]'
nav:
type: string
default: '["default"]'
clipboard:
type: string
default: '["default"]'
layers:
type: string
default: '["default"]'
mapping:
type: string
default: '["default"]'
rules:
type: string
default: '["default"]'
custom_config:
type: string
default: '["default"]'
merge:
type: string
default: '["default"]'
jobs:
main:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
strategy:
fail-fast: false
matrix:
keyboard: ${{ fromJSON(inputs.keyboard) }}
alphas: ${{ fromJSON(inputs.alphas) }}
nav: ${{ fromJSON(inputs.nav) }}
clipboard: ${{ fromJSON(inputs.clipboard) }}
layers: ${{ fromJSON(inputs.layers) }}
mapping: ${{ fromJSON(inputs.mapping) }}
rules: ${{ fromJSON(inputs.rules) }}
custom_config: ${{ fromJSON(inputs.custom_config) }}
merge: ${{ fromJSON(inputs.merge) }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Merge branches
if: ${{ matrix.merge != '' && matrix.merge != 'default' }}
run: |
git config --global --add safe.directory '*'
git config user.name "${GITHUB_ACTOR}"
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
git fetch --unshallow
revert=`git log --grep='^\[miryoku-github\]' --pretty='format:%H' | tr '\n' ' '`
git revert $revert
for merge in ${{ matrix.merge }}
do
user=`echo "$merge" | cut -f 1 -d '/'`
repo=`echo "$merge" | cut -f 2 -d '/'`
branch=`echo "$merge" | cut -f 3- -d '/'`
remote="$user-$repo"
git remote add "$remote" "https://github.com/$user/$repo.git"
git fetch "$remote" "$branch"
git merge "$remote/$branch"
git remote remove "$remote"
git status
done
- name: Submodules
run: |
git config --global --add safe.directory '*'
make git-submodule
- name: Process inputs
id: inputs
run: |
artifact_dir="artifacts"
mkdir "$artifact_dir"
user='users/manna-harbour_miryoku'
rules="$user/custom_rules.mk"
config="$user/custom_config.h"
artifact_build_name=`echo "miryoku_qmk ${{ matrix.keyboard }}" | tr '/' '_'`
for option in "alphas=${{ matrix.alphas }}" "nav=${{ matrix.nav }}" "clipboard=${{ matrix.clipboard }}" "layers=${{ matrix.layers }}" "mapping=${{ matrix.mapping }}"
do
if ! expr "$option" : '.*=default$'
then
artifact_build_name="$artifact_build_name "`echo "$option" | tr '=' '_'`
option=`echo "MIRYOKU_$option" | tr 'a-z' 'A-Z'`
echo "$option" >> "$rules"
fi
done
if [ -n "${{ matrix.rules }}" -a "${{ matrix.rules }}" != 'default' ]
then
artifact_build_name="$artifact_build_name rules_"`echo "${{ matrix.rules }}" | md5sum | cut -d ' ' -f 1`
echo "${{ matrix.rules }}" >> "$rules"
fi
if [ -n "${{ matrix.custom_config }}" -a "${{ matrix.custom_config }}" != 'default' ]
then
artifact_build_name="$artifact_build_name config_"`echo "${{ matrix.custom_config }}" | md5sum | cut -d ' ' -f 1`
echo "${{ matrix.custom_config }}" >> "$config"
fi
cp "$rules" "$config" "$artifact_dir"
if [ -n "${{ matrix.merge }}" -a "${{ matrix.merge }}" != 'default' ]
then
artifact_build_name="$artifact_build_name merge_"`echo "${{ matrix.merge }}" | md5sum | cut -d ' ' -f 1`
fi
artifact_build_name=`echo $artifact_build_name | tr ' ' '-'`
echo "artifact_build_name=$artifact_build_name" >> $GITHUB_OUTPUT
echo "artifact_dir=$artifact_dir" >> $GITHUB_OUTPUT
- name: Build
run: qmk compile -kb ${{ matrix.keyboard }} -km manna-harbour_miryoku
- name: Copy firmware
run: |
cp *manna-harbour_miryoku* "${{ steps.inputs.outputs.artifact_dir }}"
- name: Archive artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ steps.inputs.outputs.artifact_build_name }}
path: ${{ steps.inputs.outputs.artifact_dir }}
continue-on-error: true

View File

@@ -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: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- 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)"

View File

@@ -1,46 +0,0 @@
name: Regenerate Files
permissions:
contents: write
on:
push:
branches:
- master
- develop
jobs:
regen:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- 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@v5
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 <hello@qmk.fm>
committer: QMK Bot <hello@qmk.fm>
commit-message: Regenerate Files
title: '[CI] Regenerate Files'

View File

@@ -1,65 +0,0 @@
name: 'Close stale issues and PRs'
permissions:
issues: write
pull-requests: write
on:
schedule:
- cron: '30 1 * * *'
workflow_dispatch:
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v8
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]

38
.github/workflows/test-all-configs.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
# Copyright 2021 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Test All Configs'
on:
- workflow_dispatch
jobs:
build:
if: github.repository_owner == 'manna-harbour'
uses: ./.github/workflows/main.yml
with:
keyboard: '["crkbd"]'
alphas: '[
"default",
"azerty",
"colemak",
"colemakdhk",
"dvorak",
"halmak",
"workman",
"qwerty",
"qwertz"
]'
nav: '[
"default",
"vi",
"invertedt"
]'
clipboard: '[
"default",
"fun",
"mac",
"win"
]'
layers: '[
"default",
"flip"
]'

14
.github/workflows/test-build.yml vendored Normal file
View File

@@ -0,0 +1,14 @@
# Copyright 2021 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Test Build'
on:
push:
pull_request:
workflow_dispatch:
jobs:
build:
if: github.repository_owner == 'manna-harbour'
uses: ./.github/workflows/main.yml
with:
keyboard: '["crkbd"]'

86
.github/workflows/test-inputs.yml vendored Normal file
View File

@@ -0,0 +1,86 @@
# Copyright 2021 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Test Inputs'
on:
workflow_dispatch:
inputs:
keyboard:
description: 'Keyboard'
required: true
alphas:
description: 'Miryoku Alphas'
required: false
default: 'default'
nav:
description: 'Miryoku Nav'
required: false
default: 'default'
clipboard:
description: 'Miryoku Clipboard'
required: false
default: 'default'
layers:
description: 'Miryoku Layers'
required: false
default: 'default'
mapping:
description: 'Miryoku Mapping'
required: false
default: 'default'
rules:
description: 'custom_rules.mk'
required: false
default: 'default'
custom_config:
description: 'custom_config.h'
required: false
default: 'default'
merge:
description: 'Merge QMK Branches'
required: false
default: 'default'
jobs:
process-inputs:
runs-on: ubuntu-latest
outputs:
keyboard: ${{ steps.process-inputs.outputs.keyboard }}
alphas: ${{ steps.process-inputs.outputs.alphas }}
nav: ${{ steps.process-inputs.outputs.nav }}
clipboard: ${{ steps.process-inputs.outputs.clipboard }}
layers: ${{ steps.process-inputs.outputs.layers }}
mapping: ${{ steps.process-inputs.outputs.mapping }}
rules: ${{ steps.process-inputs.outputs.rules }}
custom_config: ${{ steps.process-inputs.outputs.custom_config }}
merge: ${{ steps.process-inputs.outputs.merge }}
steps:
- name: Process inputs
id: process-inputs
run: |
set-output()
{
json=`echo "$2" | jq -cnR 'inputs | split(",";"")'`
echo "$1=$json" >> $GITHUB_OUTPUT
}
set-output "keyboard" "${{ github.event.inputs.keyboard }}"
set-output "alphas" "${{ github.event.inputs.alphas }}"
set-output "nav" "${{ github.event.inputs.nav }}"
set-output "clipboard" "${{ github.event.inputs.clipboard }}"
set-output "layers" "${{ github.event.inputs.layers }}"
set-output "mapping" "${{ github.event.inputs.mapping }}"
set-output "rules" "${{ github.event.inputs.rules }}"
set-output "custom_config" "${{ github.event.inputs.custom_config }}"
set-output "merge" "${{ github.event.inputs.merge }}"
build:
uses: ./.github/workflows/main.yml
needs: process-inputs
with:
keyboard: ${{ needs.process-inputs.outputs.keyboard }}
alphas: ${{ needs.process-inputs.outputs.alphas }}
nav: ${{ needs.process-inputs.outputs.nav }}
clipboard: ${{ needs.process-inputs.outputs.clipboard }}
layers: ${{ needs.process-inputs.outputs.layers }}
mapping: ${{ needs.process-inputs.outputs.mapping }}
rules: ${{ needs.process-inputs.outputs.rules }}
custom_config: ${{ needs.process-inputs.outputs.custom_config }}
merge: ${{ needs.process-inputs.outputs.merge }}

16
.github/workflows/test-merge.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
# Copyright 2022 Manna Harbour
# https://github.com/manna-harbour/miryoku
name: 'Test Merge'
on:
workflow_dispatch:
jobs:
build:
if: github.repository_owner == 'manna-harbour'
uses: ./.github/workflows/main.yml
with:
keyboard: '["crkbd"]'
merge: '[
"qmk/qmk_firmware/master",
"qmk/qmk_firmware/develop"
]'

View File

@@ -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: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install dependencies
run: pip3 install -r requirements-dev.txt
- name: Run tests
run: make test:all

View File

@@ -0,0 +1,38 @@
/* Copyright 2020 QMK
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* This file was auto-generated by:
* `qmk chibios-confmigrate -i keyboards/handwired/onekey/blackpill_f401/chconf.h -r platforms/chibios/common/configs/chconf.h`
*/
#pragma once
#define CH_CFG_ST_FREQUENCY 10000
#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE
#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE
#define CH_CFG_FACTORY_SEMAPHORES TRUE
#define CH_CFG_FACTORY_MAILBOXES TRUE
#define CH_CFG_FACTORY_OBJ_FIFOS TRUE
#define CH_CFG_FACTORY_PIPES TRUE
#include_next <chconf.h>

View File

@@ -46,6 +46,7 @@
#define CRC8_OPTIMIZE_SPEED
/* SPI config for EEPROM. */
/*
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN A5
#define SPI_SCK_PAL_MODE 5
@@ -53,6 +54,37 @@
#define SPI_MOSI_PAL_MODE 5
#define SPI_MISO_PIN A6
#define SPI_MISO_PAL_MODE 5
*/
/* EEPROM config. */
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
//#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
//
#define ENABLE_RGB_MATRIX_ALPHAS_MODS Enables RGB_MATRIX_ALPHAS_MODS
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_BREATHING
#define ENABLE_RGB_MATRIX_BAND_SAT
#define ENABLE_RGB_MATRIX_BAND_VAL
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
#define ENABLE_RGB_MATRIX_CYCLE_ALL
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
#define ENABLE_RGB_MATRIX_DUAL_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
#define ENABLE_RGB_MATRIX_RAINDROPS
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
#define ENABLE_RGB_MATRIX_HUE_BREATHING
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
#define ENABLE_RGB_MATRIX_HUE_WAVE
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
#define ENABLE_RGB_MATRIX_PIXEL_RAIN

View File

@@ -20,8 +20,8 @@
#define HAL_USE_PWM TRUE
#define HAL_USE_SERIAL TRUE
#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
//#define HAL_USE_SPI TRUE
//#define SPI_USE_WAIT TRUE
//#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
#include_next <halconf.h>

View File

@@ -21,8 +21,8 @@
#include_next <mcuconf.h>
#undef STM32_SPI_USE_SPI1
#define STM32_SPI_USE_SPI1 TRUE
//#undef STM32_SPI_USE_SPI1
//#define STM32_SPI_USE_SPI1 TRUE
#undef STM32_PWM_USE_TIM2
#define STM32_PWM_USE_TIM2 TRUE
@@ -30,8 +30,8 @@
#undef STM32_SERIAL_USE_USART1
#define STM32_SERIAL_USE_USART1 TRUE
#undef STM32_GPT_USE_TIM3
#define STM32_GPT_USE_TIM3 TRUE
//#undef STM32_GPT_USE_TIM3
//#define STM32_GPT_USE_TIM3 TRUE
#undef STM32_ST_USE_TIMER
#define STM32_ST_USE_TIMER 5

View File

@@ -1,10 +1,16 @@
# Build Options
# change yes to no to disable
#
# MCU name
MCU = STM32F401
BOARD = BLACKPILL_STM32_F401
BOOTLOADER = stm32-dfu
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
CAPS_WORD_ENABLE = yes
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
@@ -22,7 +28,7 @@ SPLIT_KEYBOARD = yes
MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
KEYBOARD_SHARED_EP = yes
EEPROM_DRIVER = spi
#EEPROM_DRIVER = spi
WS2812_DRIVER = pwm
SERIAL_DRIVER = usart

View File

@@ -1,36 +0,0 @@
# Quantum Mechanical Keyboard Firmware
[![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)
[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh)
[![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm)
[![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
This is a keyboard firmware based on the [tmk\_keyboard firmware](https://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR and ARM controllers, and more specifically, the [OLKB product line](https://olkb.com), the [ErgoDox EZ](https://ergodox-ez.com) keyboard, and the [Clueboard product line](https://clueboard.co).
## Documentation
* [See the official documentation on docs.qmk.fm](https://docs.qmk.fm)
The docs are powered by [Docsify](https://docsify.js.org/) and hosted on [GitHub](/docs/). They are also viewable offline; see [Previewing the Documentation](https://docs.qmk.fm/#/contributing?id=previewing-the-documentation) for more details.
You can request changes by making a fork and opening a [pull request](https://github.com/qmk/qmk_firmware/pulls), or by clicking the "Edit this page" link at the bottom of any page.
## Supported Keyboards
* [Planck](/keyboards/planck/)
* [Preonic](/keyboards/preonic/)
* [ErgoDox EZ](/keyboards/ergodox_ez/)
* [Clueboard](/keyboards/clueboard/)
* [Cluepad](/keyboards/clueboard/17/)
* [Atreus](/keyboards/atreus/)
The project also includes community support for [lots of other keyboards](/keyboards/).
## Maintainers
QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, [Hasu](https://github.com/tmk). The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/jackhumbert), the Ergodox EZ by [ZSA Technology Labs](https://github.com/zsa), the Clueboard by [Zach White](https://github.com/skullydazed), and the Atreus by [Phil Hagelberg](https://github.com/technomancy).
## Official Website
[qmk.fm](https://qmk.fm) is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.

17
readme.org Normal file
View File

@@ -0,0 +1,17 @@
# Copyright 2019 Manna Harbour
# https://github.com/manna-harbour/miryoku
* Miryoku QMK Development Branch Repository [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]]
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/cover/miryoku-kle-cover.png]]
[[https://github.com/manna-harbour/miryoku/][Miryoku]] is an ergonomic, minimal, orthogonal, and universal keyboard layout. This is the repository for the development branch of [[https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku][Miryoku QMK]].
- The Miryoku QMK development branch readme is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku
**
[[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/manna-harbour-boa-32.png]]