diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000000..b37a22e322 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: [manna-harbour] diff --git a/.github/workflows/build-example-contra.yml b/.github/workflows/build-example-contra.yml new file mode 100644 index 0000000000..0a85a7f84d --- /dev/null +++ b/.github/workflows/build-example-contra.yml @@ -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"]' diff --git a/.github/workflows/build-example-crkbd.yml b/.github/workflows/build-example-crkbd.yml new file mode 100644 index 0000000000..6f7d3d795a --- /dev/null +++ b/.github/workflows/build-example-crkbd.yml @@ -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"]' diff --git a/.github/workflows/build-example-ergodox_ez.yml b/.github/workflows/build-example-ergodox_ez.yml new file mode 100644 index 0000000000..a3fbd8b2ca --- /dev/null +++ b/.github/workflows/build-example-ergodox_ez.yml @@ -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"]' diff --git a/.github/workflows/build-example-keebio_levinson.yml b/.github/workflows/build-example-keebio_levinson.yml new file mode 100644 index 0000000000..070bedaa3f --- /dev/null +++ b/.github/workflows/build-example-keebio_levinson.yml @@ -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"]' diff --git a/.github/workflows/build-example-planck_rev6.yml b/.github/workflows/build-example-planck_rev6.yml new file mode 100644 index 0000000000..231d76a794 --- /dev/null +++ b/.github/workflows/build-example-planck_rev6.yml @@ -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"]' diff --git a/.github/workflows/build-example-xmk.yml b/.github/workflows/build-example-xmk.yml new file mode 100644 index 0000000000..b1772a4a58 --- /dev/null +++ b/.github/workflows/build-example-xmk.yml @@ -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"]' diff --git a/.github/workflows/build-inputs.yml b/.github/workflows/build-inputs.yml new file mode 100644 index 0000000000..d4626a69b9 --- /dev/null +++ b/.github/workflows/build-inputs.yml @@ -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 }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000000..38ac18bfe5 --- /dev/null +++ b/.github/workflows/main.yml @@ -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 diff --git a/.github/workflows/test-all-configs.yml b/.github/workflows/test-all-configs.yml new file mode 100644 index 0000000000..506e7bfad4 --- /dev/null +++ b/.github/workflows/test-all-configs.yml @@ -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" + ]' diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml new file mode 100644 index 0000000000..38462f617b --- /dev/null +++ b/.github/workflows/test-build.yml @@ -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"]' diff --git a/.github/workflows/test-inputs.yml b/.github/workflows/test-inputs.yml new file mode 100644 index 0000000000..7dbcad5335 --- /dev/null +++ b/.github/workflows/test-inputs.yml @@ -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 }} diff --git a/.github/workflows/test-merge.yml b/.github/workflows/test-merge.yml new file mode 100644 index 0000000000..cf76a72a77 --- /dev/null +++ b/.github/workflows/test-merge.yml @@ -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" + ]' diff --git a/readme.org b/readme.org new file mode 100644 index 0000000000..4f5e67c942 --- /dev/null +++ b/readme.org @@ -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]] +