Change everything

-add keymaps for all zmk splergos
-add mappings
-move babel to miryoku/miryoku-zmk-babel.org
-generate only miryoku.dtsi from babel
-move status to status.org
-move docs to readme.org
-change mapping macro names
-add everything to build
This commit is contained in:
Manna Harbour 2021-03-05 17:23:25 +11:00
parent 84c0b28dc1
commit c4394254f6
33 changed files with 601 additions and 511 deletions

View File

@ -1,11 +1,90 @@
on: [push, pull_request, workflow_dispatch]
name: Build
on:
- push
- pull_request
- workflow_dispatch
jobs:
build:
runs-on: ubuntu-latest
name: Build Test
runs-on: ubuntu-20.04
container:
image: zmkfirmware/zmk-build-arm:2.4
strategy:
fail-fast: false
matrix:
include:
# -board: ahokore
# - shield: bfo9000_left
# board: nice_nano
# - shield: bfo9000_right
# board: nice_nano
- shield: corne_left
board: nice_nano
- shield: corne_right
board: nice_nano
- shield: cradio_left
board: nice_nano
- shield: cradio_right
board: nice_nano
- shield: crbn
board: nice_nano
- shield: eek
board: nice_nano
# -board: ferris
- shield: helix_left
board: nice_nano
- shield: helix_right
board: nice_nano
- shield: iris_left
board: nice_nano
- shield: iris_right
board: nice_nano
- shield: jian_left
board: nice_nano
- shield: jian_right
board: nice_nano
- shield: jorne_left
board: nice_nano
- shield: jorne_right
board: nice_nano
- shield: kyria_left
board: nice_nano
- shield: kyria_right
board: nice_nano
- shield: lily58_left
board: nice_nano
- shield: lily58_right
board: nice_nano
- shield: microdox_left
board: nice_nano
- shield: microdox_right
board: nice_nano
- board: planck_rev6
- shield: sofle_left
board: nice_nano
- shield: sofle_right
board: nice_nano
- shield: splitreus62_left
board: nice_nano
- shield: splitreus62_right
board: nice_nano
steps:
- name: Checkout
uses: actions/checkout@v2
@ -15,64 +94,48 @@ jobs:
cache-name: cache-zephyr-modules
with:
path: |
bootloader/
modules/
tools/
zephyr/
bootloader/
zmk/
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('manifest-dir/west.yml') }}
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('config/west.yml') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: West Init
uses: 'docker://zmkfirmware/zephyr-west-action-arm:latest'
id: west-init
with:
args: 'init "-l config"'
- name: West Update
uses: 'docker://zmkfirmware/zephyr-west-action-arm:latest'
id: west-update
with:
args: 'update'
- name: West Config Zephyr Base
uses: 'docker://zmkfirmware/zephyr-west-action-arm:latest'
id: west-config
with:
args: 'config "--global zephyr.base-prefer configfile"'
- name: West Zephyr Export
uses: 'docker://zmkfirmware/zephyr-west-action-arm:latest'
id: west-zephyr-export
with:
args: 'zephyr-export'
- name: West Build (Corne Left)
uses: 'docker://zmkfirmware/zephyr-west-action-arm:latest'
id: west-build-corne-left
with:
args: 'build "-s zmk/app -b nice_nano -- -DSHIELD=corne_left -DZMK_CONFIG=/github/workspace/config"'
- name: Corne DTS File
if: ${{ always() }}
run: cat -n build/zephyr/nice_nano.dts.pre.tmp
- name: Corne Left Kconfig file
run: cat build/zephyr/.config | grep -v "^#" | grep -v "^$"
- name: Rename zmk.uf2
run: cp build/zephyr/zmk.uf2 corne_left_nice_nano.uf2
- name: Archive (Corne Left)
timeout-minutes: 2
continue-on-error: true
- name: Initialize workspace (west init)
run: west init -l config
- name: Update modules (west update)
run: west update
- name: Export Zephyr CMake package (west zephyr-export)
run: west zephyr-export
- name: Prepare variables
id: variables
run: |
if [ -n "${{ matrix.shield }}" ]; then
SHIELD_ARG="-DSHIELD=${{ matrix.shield }}"
ARTIFACT_NAME="${{ matrix.shield }}-${{ matrix.board }}-zmk"
else
SHIELD_ARG=
ARTIFACT_NAME="${{ matrix.board }}-zmk"
fi
echo ::set-output name=shield-arg::${SHIELD_ARG}
echo ::set-output name=artifact-name::${ARTIFACT_NAME}
- name: Build (west build)
run: west build -s zmk/app -b ${{ matrix.board }} -- ${{ steps.variables.outputs.shield-arg }}
-DZMK_CONFIG="${GITHUB_WORKSPACE}/config"
- name: Generated DTS file
if: always()
run: cat -n build/zephyr/${{ matrix.board }}.dts.pre.tmp
- name: Archive artifacts
uses: actions/upload-artifact@v2
with:
name: firmware
path: corne_left_nice_nano.uf2
- name: West Build (Corne Right)
uses: 'docker://zmkfirmware/zephyr-west-action-arm:latest'
id: west-build-corne-right
with:
args: 'build "--pristine -s zmk/app -b nice_nano -- -DSHIELD=corne_right -DZMK_CONFIG=/github/workspace/config"'
- name: Corne Right Kconfig file
run: cat build/zephyr/.config | grep -v "^#" | grep -v "^$"
- name: Rename zmk.uf2
run: cp build/zephyr/zmk.uf2 corne_right_nice_nano.uf2
- name: Archive (Corne Right)
uses: actions/upload-artifact@v2
with:
name: firmware
path: corne_right_nice_nano.uf2
name: ${{ steps.variables.outputs.artifact-name }}
path: |
build/zephyr/zmk.hex
build/zephyr/zmk.uf2
continue-on-error: true

4
config/ahokore.keymap Normal file
View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/split_3x5_3.h"
#include "../miryoku/miryoku.dtsi"

View File

@ -1,6 +1,6 @@
#include "../miryoku/split_3x6_3.h"
// https://github.com/manna-harbour/miryoku-zmk/
#define MIRYOKU_COMBO_TPS_ENABLE
#include "../miryoku/mapping/split_3x6_3.h"
#include "../miryoku/miryoku.dtsi"

3
config/cradio.keymap Normal file
View File

@ -0,0 +1,3 @@
#include "../miryoku/mapping/split_3x5_2.h"
#include "../miryoku/miryoku.dtsi"

5
config/crbn.keymap Normal file
View File

@ -0,0 +1,5 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/ortho_4x12.h"
#include "../miryoku/miryoku.dtsi"

4
config/eek.keymap Normal file
View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/split_3x5_3.h"
#include "../miryoku/miryoku.dtsi"

3
config/ferris.keymap Normal file
View File

@ -0,0 +1,3 @@
#include "../miryoku/mapping/split_3x6_2.h"
#include "../miryoku/miryoku.dtsi"

4
config/helix.keymap Normal file
View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/helix.h"
#include "../miryoku/miryoku.dtsi"

4
config/iris.keymap Normal file
View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/iris.h"
#include "../miryoku/miryoku.dtsi"

4
config/jian.keymap Normal file
View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/jian.h"
#include "../miryoku/miryoku.dtsi"

4
config/jorne.keymap Normal file
View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/jian.h"
#include "../miryoku/miryoku.dtsi"

4
config/kyria.keymap Normal file
View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/kyria.h"
#include "../miryoku/miryoku.dtsi"

4
config/lily58.keymap Normal file
View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/lily58.h"
#include "../miryoku/miryoku.dtsi"

4
config/microdox.keymap Normal file
View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/split_3x5_3.h"
#include "../miryoku/miryoku.dtsi"

5
config/planck.keymap Normal file
View File

@ -0,0 +1,5 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/ortho_4x12.h"
#include "../miryoku/miryoku.dtsi"

View File

@ -1,4 +0,0 @@
#include "../miryoku/ortho_4x12.h"
#include "../miryoku/miryoku.dtsi"

4
config/sofle.keymap Normal file
View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/sofle.h"
#include "../miryoku/miryoku.dtsi"

View File

@ -0,0 +1,4 @@
// https://github.com/manna-harbour/miryoku-zmk/
#include "../miryoku/mapping/atreus62.h"
#include "../miryoku/miryoku.dtsi"

View File

@ -0,0 +1,21 @@
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_MAPPING( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX \
XXX K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 XXX \
XXX K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 XXX \
XXX K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 XXX \
XXX XXX XXX XXX K32 K33 K34 K35 K36 K37 XXX XXX XXX XXX
#define MIRYOKU_MAPPING_TAP MIRYOKU_MAPPING // todo
#define MIRYOKU_COMBO_TPSL 53 54
#define MIRYOKU_COMBO_TPSR 55 56

21
miryoku/mapping/helix.h Normal file
View File

@ -0,0 +1,21 @@
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_MAPPING( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX \
XXX K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 XXX \
XXX K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 XXX \
XXX K20 K21 K22 K23 K24 XXX XXX K25 K26 K27 K28 K29 XXX \
XXX XXX XXX XXX K32 K33 K34 K35 K36 K37 XXX XXX XXX XXX
#define MIRYOKU_MAPPING_TAP MIRYOKU_MAPPING // todo
#define MIRYOKU_COMBO_TPSL 55 56
#define MIRYOKU_COMBO_TPSR 57 58

21
miryoku/mapping/iris.h Normal file
View File

@ -0,0 +1,21 @@
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_MAPPING( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX \
XXX K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 XXX \
XXX K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 XXX \
XXX K20 K21 K22 K23 K24 XXX XXX K25 K26 K27 K28 K29 XXX \
K32 K33 K34 K35 K36 K37
#define MIRYOKU_MAPPING_TAP MIRYOKU_MAPPING // todo
#define MIRYOKU_COMBO_TPSL 51 52
#define MIRYOKU_COMBO_TPSR 53 54

19
miryoku/mapping/jian.h Normal file
View File

@ -0,0 +1,19 @@
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_MAPPING( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
XXX XXX K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 XXX XXX \
XXX K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 XXX \
XXX K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 XXX \
K32 K33 K34 K35 K36 K37
#define MIRYOKU_MAPPING_TAP MIRYOKU_MAPPING
#define MIRYOKU_COMBO_TPSL 39 40
#define MIRYOKU_COMBO_TPSR 41 42

19
miryoku/mapping/kyria.h Normal file
View File

@ -0,0 +1,19 @@
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_MAPPING(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
)\
XXX K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 XXX \
XXX K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 XXX \
XXX K20 K21 K22 K23 K24 XXX XXX XXX XXX K25 K26 K27 K28 K29 XXX \
XXX K32 K33 K34 XXX XXX K35 K36 K37 XXX
#define MIRYOKU_MAPPING_TAP MIRYOKU_MAPPING // todo
#define MIRYOKU_COMBO_TPSL 42 43
#define MIRYOKU_COMBO_TPSR 48 49

21
miryoku/mapping/lily58.h Normal file
View File

@ -0,0 +1,21 @@
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_MAPPING( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX \
XXX K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 XXX \
XXX K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 XXX \
XXX K20 K21 K22 K23 K24 XXX XXX K25 K26 K27 K28 K29 XXX \
XXX K32 K33 K34 K35 K36 K37 XXX
#define MIRYOKU_MAPPING_TAP MIRYOKU_MAPPING // todo
#define MIRYOKU_COMBO_TPSL 52 53
#define MIRYOKU_COMBO_TPSR 54 55

View File

@ -1,24 +1,24 @@
// generated from miryoku_zmk.org -*- buffer-read-only: t -*-
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_SUBMAP(\
#define MIRYOKU_MAPPING(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
K00 K01 K02 K03 K04 XXX XXX K05 K06 K07 K08 K09 \
K10 K11 K12 K13 K14 XXX XXX K15 K16 K17 K18 K19 \
K20 K21 K22 K23 K24 XXX XXX K25 K26 K27 K28 K29 \
XXX XXX K32 K33 K34 XXX XXX K35 K36 K37 XXX XXX
#define MIRYOKU_SUPERMAP(\
#define MIRYOKU_MAPPING_TAP( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
)\
) \
K00 K01 K02 K03 K04 &kp NUM_8 &kp NUM_7 K05 K06 K07 K08 K09 \
K10 K11 K12 K13 K14 &kp NUM_6 &kp NUM_5 K15 K16 K17 K18 K19 \
K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K29 \

21
miryoku/mapping/sofle.h Normal file
View File

@ -0,0 +1,21 @@
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_MAPPING( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX \
XXX K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 XXX \
XXX K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 XXX \
XXX K20 K21 K22 K23 K24 XXX XXX K25 K26 K27 K28 K29 XXX \
XXX XXX K32 K33 K34 K35 K36 K37 XXX XXX
#define MIRYOKU_MAPPING_TAP MIRYOKU_MAPPING // todo
#define MIRYOKU_COMBO_TPSL 53 54
#define MIRYOKU_COMBO_TPSR 55 56

View File

@ -1,19 +1,19 @@
// generated from miryoku_zmk.org -*- buffer-read-only: t -*-
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_SUBMAP(\
#define MIRYOKU_MAPPING( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 \
K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 \
K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 \
K33 K34 K35 K36
#define MIRYOKU_SUPERMAP MIRYOKU_SUBMAP
#define MIRYOKU_MAPPING_TAP MIRYOKU_MAPPING
#define MIRYOKU_COMBO_TPSL 30 31
#define MIRYOKU_COMBO_TPSR 32 33

View File

@ -1,19 +1,19 @@
// generated from miryoku_zmk.org -*- buffer-read-only: t -*-
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_SUBMAP(\
#define MIRYOKU_MAPPING( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 \
K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 \
K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 \
K32 K33 K34 K35 K36 K37
#define MIRYOKU_SUPERMAP MIRYOKU_SUBMAP
#define MIRYOKU_MAPPING_TAP MIRYOKU_MAPPING
#define MIRYOKU_COMBO_TPSL 33 34
#define MIRYOKU_COMBO_TPSR 35 36

View File

@ -1,24 +1,24 @@
// generated from miryoku_zmk.org -*- buffer-read-only: t -*-
// https://github.com/manna-harbour/miryoku-zmk/
#define XXX &none
#define MIRYOKU_SUBMAP(\
#define MIRYOKU_MAPPING( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
XXX K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 XXX \
XXX K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 XXX \
XXX K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 XXX \
K32 K33 K34 K35 K36 K37
#define MIRYOKU_SUPERMAP(\
#define MIRYOKU_MAPPING_TAP( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
&kp LALT K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 &kp LGUI \
&kp LCTRL K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 &kp RCTRL \
&kp LSHFT K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 &kp RSHFT \

View File

@ -1,165 +1,11 @@
# After making changes to code or tables call org-babel-tangle (C-c C-v t).
#+Title: Miryoku ZMK [[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]]
Miryoku is an ergonomic, minimal, orthogonal, universal keyboard layout.
Miryoku ZMK is the miryoku implemention for [[https://zmkfirmware.dev/][ZMK
Firmware]], a wireless keyboard firmware built on the Zephyr RTOS.
*For miryoku documentation and other implementations see
[[https://github.com/manna-harbour/miryoku/blob/master/README.org][github.com/manna-harbour/miryoku]].*
* Contents :TOC_3:
- [[#status][Status]]
- [[#todo][Todo]]
- [[#integrate-with-zephyr-cmake][Integrate with Zephyr CMake]]
- [[#add-mappings-for-all-boards--shields-in-zmk][Add mappings for all boards / shields in ZMK]]
- [[#layers][Layers]]
- [[#base-base][Base (~BASE~)]]
- [[#tap][Tap]]
- [[#hold][Hold]]
- [[#navigation-navr][Navigation (~NAVR~)]]
- [[#mouse-mour][Mouse (~MOUR~)]]
- [[#mouse-buttons-overlay-mbo][Mouse Buttons Overlay (~MBO~)]]
- [[#media-medr][Media (~MEDR~)]]
- [[#numerals-and-symbols-nsl][Numerals and Symbols (~NSL~)]]
- [[#shifted-numerals-and-symbols-nssl][Shifted Numerals and Symbols (~NSSL~)]]
- [[#function-and-system-funl][Function and System (~FUNL~)]]
- [[#alternative-layouts][Alternative Layouts]]
- [[#base-layer-alphas][Base Layer Alphas]]
- [[#vi-style-navigation][vi-Style Navigation]]
- [[#navigation-layer-clipboard-keys][Navigation Layer Clipboard Keys]]
- [[#code-generation][Code Generation]]
- [[#table-conversion-scripts][Table Conversion Scripts]]
- [[#table-map-taphold][table-map-taphold]]
- [[#table-map-half][table-map-half]]
- [[#table-map-full][table-map-full]]
- [[#table-layer-defines][table-layer-defines]]
- [[#table-keycode-mappings][table-keycode-mappings]]
- [[#data][Data]]
- [[#layers-1][layers]]
- [[#symbol-names][symbol-names]]
- [[#mods][mods]]
- [[#nonkp][nonkp]]
- [[#keycode-translation][keycode-translation]]
- [[#header][header]]
- [[#subset-mapping][Subset Mapping]]
- [[#mappings][mappings]]
- [[#split_3x5_2h][[[split_3x5_2.h]]]]
- [[#split_3x5_3h][[[split_3x5_3.h]]]]
- [[#split_3x6_3h][[[split_3x6_3.h]]]]
- [[#ortho_4x12h][[[ortho_4x12.h]]]]
- [[#miryoku-include][miryoku include]]
- [[#miryokudtsi][[[miryoku.dtsi]]]]
- [[#documentation][Documentation]]
- [[#contact][Contact]]
* Status
Welcome to the alpha of miryoku ZMK!
You've been added as a collaborator to the repo as it's the easiest way to give
access. You're not expected to contribute but contributions are welcome. In
that case please create a new branch and PR. Otherwise, if you could avoid
accidental force pushes to master that'd be great! The layout should be usable
now but there's still some work to do before it's published, so please don't
redistribute. If you fork, please make the repo private.
Just a bit of an explanation of the current status: I'm doing a miryoku
reorganisation at the moment. The general layout docs will move out of the QMK
repo and get expanded. The org stuff will also move and will generate QMK, ZMK,
and KMonad. At the moment the org stuff in ZMK is separate until I finalise the
scripts and re-integrate the changes, so it's a bit of a mess right now but the
generated keymap shouldn't change much.
** Todo
*** TODO Integrate with Zephyr CMake
Support passing configuration options. For now, add the equivalent ~#define~ to
your keymap before the includes, e.g. for ~MIRYOKU_ALPHAS=QWERTY~ add ~#define
MIRYOKU_ALPHAS_QWERTY~.
*** TODO Add mappings for all boards / shields in ZMK
#+TODO: TODO | DONE NA
https://github.com/zmkfirmware/zmk/tree/main/app/boards/shields
**** TODO bfo9000
split_6x9
**** NA boardsource3x4
**** NA clueboard_california
**** DONE corne
split_3x6_3
**** TODO cradio
split_3x5_2
**** DONE crbn
ortho_4x12
**** DONE eek
split_3x5_3
**** TODO ferris
split_3x5_2
**** TODO helix
helix
**** TODO iris
iris
**** TODO jian
jian
**** TODO jorne
jorne
**** TODO kyria
kyria
**** TODO lily58
lily58
**** TODO m60
60_ansi
**** DONE microdox
split_3x5_3
**** TODO nibble
**** NA qaz
**** TODO quefrency
**** TODO reviung41
**** NA romac
**** NA romac_plus
**** TODO sofle
sofle
**** TODO splitreus62
**** TODO tg4x
**** NA tidbit
#+Title: Miryoku ZMK Babel [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]]
* Layers
The layers are maintained in tables, with the thumb keys on the bottom row.
~U_NP~ indicates the key is not present and is used to fill in the table around
the thumb keys. The grid arrangement of the tables does not imply a particular
physical layout.
Basic keycodes are entered without the ~KC_~ prefix. Symbols can be entered
as-is, except for '-' (~MINS~), '.' (~DOT~), '|' (~PIPE~), and '"' (~DQUO~).
Empty cells are unused.
The base layer has both halves of the layout joined for convenience. Other
layers are specified as a single hand.
** Base (~BASE~)
The base layer is maintained as separate tap and hold tables and are combined
into the corresponding tap-hold keycodes for mods and layer change. Mods (and
reset) will be available on sub layers on the same hand as the layer change
thumb key. Unknown names are considered to be layer names.
Base layer alphas are Colemak-DHm. Thumb keys are backspace, enter, delete on
the right and space, tab, escape on the left. Dot, comma and apostrophe are
included for prose, dot and slash for file and directory names.
*** Tap
#+NAME: colemakdhm
@ -180,11 +26,6 @@ included for prose, dot and slash for file and directory names.
** Navigation (~NAVR~)
Primary right-hand layer (left home thumb) is navigation and editing. Cursor
keys are on the home position, line and page movement below, clipboard above,
caps lock and insert on the inner column. Thumb keys are duplicated from the
base layer to avoid having to layer change mid edit and to enable auto-repeat.
#+NAME: navr
| U_RDO | U_PST | U_CPY | U_CUT | U_UND |
| CAPS | LEFT | DOWN | UP | RGHT |
@ -194,12 +35,6 @@ base layer to avoid having to layer change mid edit and to enable auto-repeat.
** Mouse (~MOUR~)
Secondary right-hand layer is mouse emulation. Mouse movement mirrors cursor
navigation on home and wheel mirrors line / page movement below. Buttons are on
the thumbs (L, M, R). Mouse movement, click, and drag with modifiers can be
performed from the home position. Unused keys are available for other related
functions.
#+NAME: mour
| | | | | |
| | MS_L | MS_D | MS_U | MS_R |
@ -209,9 +44,6 @@ functions.
*** Mouse Buttons Overlay (~MBO~)
Available for automatic activation depending on keyboard hardware and
configuration. Not activated manually.
#+NAME: mbo
| | | | | | | | | | |
| | | | | | | | | | |
@ -221,11 +53,8 @@ configuration. Not activated manually.
** Media (~MEDR~)
Tertiary right-hand layer is media control, with volume up / down and next /
prev mirroring the navigation keys. Pause, stop and mute are on thumbs. RGB
control is on the top row (combine with shift to invert). BT control is on the
bottom row, and USB / BT output toggle on the home row inner index.
BT control is on the bottom row, and USB / BT output toggle on the home row
inner index.
#+NAME: medr
| RGB_TOG | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI |
@ -236,10 +65,6 @@ bottom row, and USB / BT output toggle on the home row inner index.
** Numerals and Symbols (~NSL~)
Primary left-hand layer (right home thumb) is numerals and symbols. Numerals
are in the standard numpad locations with symbols in the remaining positions.
Dot is duplicated from the base layer.
#+NAME: nsl
| [ | 7 | 8 | 9 | ] |
| ; | 4 | 5 | 6 | = |
@ -249,10 +74,6 @@ Dot is duplicated from the base layer.
** Shifted Numerals and Symbols (~NSSL~)
Secondary left-hand layer has shifted symbols in the same locations to reduce
chording when using mods with shifted symbols. Open parenthesis is duplicated
next to close parenthesis.
#+NAME: nssl
| { | & | * | ( | } |
| : | $ | % | ^ | + |
@ -262,12 +83,6 @@ next to close parenthesis.
** Function and System (~FUNL~)
Tertiary left-hand layer has function keys mirroring the numerals on the primary
layer with extras on the pinkie column, plus system keys on the inner column.
App (menu) is on the tertiary thumb key and other thumb keys are duplicated from
the base layer to enable auto-repeat.
#+NAME: funl
| F12 | F7 | F8 | F9 | PSCR |
| F11 | F4 | F5 | F6 | SLCK |
@ -277,16 +92,13 @@ the base layer to enable auto-repeat.
** Alternative Layouts
The defaults are recommended, but alternative layouts are provided to
accommodate existing muscle memory.
To select, translate the ~=~ to ~_~ and add a ~#define~ to your keymap file
before the includes, e.g. for ~MIRYOKU_ALPHAS=QWERTY~ add ~#define
MIRYOKU_ALPHAS_QWERTY~.
*** Base Layer Alphas
To select, append the corresponding option to the ~make~ command line when
building, e.g. ~MIRYOKU_ALPHAS=QWERTY~.
**** Colemak
~MIRYOKU_ALPHAS=COLEMAK~
@ -355,7 +167,7 @@ building, e.g. ~MIRYOKU_ALPHAS=QWERTY~.
*** vi-Style Navigation
To select, append ~MIRYOKU_NAV=VI~ to the ~make~ command line when building.
~MIRYOKU_NAV=VI~
**** Navigation (NAVR)
@ -388,18 +200,6 @@ To select, append ~MIRYOKU_NAV=VI~ to the ~make~ command line when building.
*** Navigation Layer Clipboard Keys
Keycodes are translated from those used in the Navigation layer tables according
to the following tables.
By default, the main clipboard keys (cut, copy, and paste) use the CUA bindings
and should work in general unix and windows applications, emacs, and terminal
emulators (paste only). The additional keys (undo, redo) usually require
rebinding in the application.
To select, append the corresponding option to the ~make~ command line when
building, e.g. ~MIRYOKU_CLIPBOARD=WIN~.
**** Default
#+NAME: clipboard
@ -457,9 +257,6 @@ building, e.g. ~MIRYOKU_CLIPBOARD=WIN~.
| | | | | | | | | | |
| U_NP | U_NP | | | | | | | U_NP | U_NP |
Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat.
#+NAME: temr
| <l4> | <l4> | <l4> | <l4> | <l4> |
|------+------+------+------+------|
@ -485,8 +282,6 @@ Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat.
*** table-map-taphold
Produce base layer from separate tap and hold tables.
#+NAME: table-map-taphold
#+BEGIN_SRC python :var tap_table=colemakdhm :var hold_table=hold :var symbol_names_table=symbol-names :var mods_table=mods :var nonkp_table=nonkp :var layers_table=layers :var keycode_translation_table=keycode-translation :tangle no :results verbatim
width = 14
@ -535,10 +330,6 @@ return results
*** table-map-half
Produce sub layers given layer name and corresponding table for single hand and
incorporating mods and reset from base layer. Layer names must end with 'R' or
'L'. A layer with shifted symbols can also be generated.
#+NAME: table-map-half
#+BEGIN_SRC python :var hold_table=hold :var mode="r" :var half_table=navr :var symbol_names_table=symbol-names :var mods_table=mods :var nonkp_table=nonkp :var shift="false" :var layers_table=layers :var keycode_translation_table=keycode-translation :tangle no :results verbatim
width = 13
@ -605,8 +396,6 @@ return results
*** table-map-full
Produce full layer from single table. Fill for unused keys is configurable.
#+NAME: table-map-full
#+BEGIN_SRC python :var table=mbo :var fill="&trans" :var symbol_names_table=symbol-names :var nonkp_table=nonkp :var keycode_translation_table=keycode-translation :tangle no :results verbatim
width = 10
@ -647,8 +436,6 @@ return results
*** table-layer-defines
Produce layer defines from layer names in hold table.
#+NAME: table-layer-defines
#+BEGIN_SRC python :var layers_table=layers :tangle no
width = 5
@ -892,151 +679,13 @@ standard keycode to implementation equivalent
| DF(TAP) | &tog TAP |
*** header
Header for tangled source files.
#+NAME: header
#+BEGIN_SRC C :tangle no
generated from miryoku_zmk.org -*- buffer-read-only: t -*-
#+END_SRC
* Subset Mapping
The keymap, build options, and configuration are shared between keyboards. The
layout is mapped onto keyboards with different physical layouts as a subset.
** mappings
*** [[split_3x5_2.h]]
Combos of primary and secondary thumb keys emulate the missing tertiary thumb
key. To enable with other subset mappings for compatibility, add ~#define
MIRYOKU_COMBO_TPS_ENABLE~ to the keymap before the includes.
#+BEGIN_SRC C :noweb yes :padline no :tangle split_3x5_2.h
// <<header>>
#define XXX &none
#define MIRYOKU_SUBMAP(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 \
K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 \
K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 \
K33 K34 K35 K36
#define MIRYOKU_SUPERMAP MIRYOKU_SUBMAP
#define MIRYOKU_COMBO_TPSL 30 31
#define MIRYOKU_COMBO_TPSR 32 33
#define MIRYOKU_COMBO_TPS_ENABLE
#+END_SRC
*** [[split_3x5_3.h]]
#+BEGIN_SRC C :noweb yes :padline no :tangle split_3x5_3.h
// <<header>>
#define XXX &none
#define MIRYOKU_SUBMAP(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 \
K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 \
K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 \
K32 K33 K34 K35 K36 K37
#define MIRYOKU_SUPERMAP MIRYOKU_SUBMAP
#define MIRYOKU_COMBO_TPSL 33 34
#define MIRYOKU_COMBO_TPSR 35 36
#+END_SRC
*** [[split_3x6_3.h]]
#+BEGIN_SRC C :noweb yes :padline no :tangle split_3x6_3.h
// <<header>>
#define XXX &none
#define MIRYOKU_SUBMAP(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
XXX K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 XXX \
XXX K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 XXX \
XXX K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 XXX \
K32 K33 K34 K35 K36 K37
#define MIRYOKU_SUPERMAP(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
&kp LALT K00 K01 K02 K03 K04 K05 K06 K07 K08 K09 &kp LGUI \
&kp LCTRL K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 &kp RCTRL \
&kp LSHFT K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 &kp RSHFT \
K32 K33 K34 K35 K36 K37
#define MIRYOKU_COMBO_TPSL 37 38
#define MIRYOKU_COMBO_TPSR 39 40
#+END_SRC
*** [[ortho_4x12.h]]
#+BEGIN_SRC C :noweb yes :padline no :tangle ortho_4x12.h
// <<header>>
#define XXX &none
#define MIRYOKU_SUBMAP(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
)\
K00 K01 K02 K03 K04 XXX XXX K05 K06 K07 K08 K09 \
K10 K11 K12 K13 K14 XXX XXX K15 K16 K17 K18 K19 \
K20 K21 K22 K23 K24 XXX XXX K25 K26 K27 K28 K29 \
XXX XXX K32 K33 K34 XXX XXX K35 K36 K37 XXX XXX
#define MIRYOKU_SUPERMAP(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
)\
K00 K01 K02 K03 K04 &kp NUM_8 &kp NUM_7 K05 K06 K07 K08 K09 \
K10 K11 K12 K13 K14 &kp NUM_6 &kp NUM_5 K15 K16 K17 K18 K19 \
K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K29 \
&kp LSHFT &kp LCTRL K32 K33 K34 &kp NUM_2 &kp NUM_1 K35 K36 K37 &kp LALT &kp LGUI
#+END_SRC
** miryoku include
*** [[miryoku.dtsi]]
** [[miryoku.dtsi]]
#+BEGIN_SRC C :noweb yes :padline no :tangle miryoku.dtsi
// <<header>>
// https://github.com/manna-harbour/miryoku-zmk/
// -*- buffer-read-only: t -*-
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
@ -1080,31 +729,31 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
BASE_layer {
bindings = <
#if defined MIRYOKU_ALPHAS_COLEMAK
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=colemak)>>
)
#elif defined MIRYOKU_ALPHAS_COLEMAKDH
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=colemakdh)>>
)
#elif defined MIRYOKU_ALPHAS_DVORAK
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=dvorak)>>
)
#elif defined MIRYOKU_ALPHAS_HALMAK
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=halmak)>>
)
#elif defined MIRYOKU_ALPHAS_WORKMAN
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=workman)>>
)
#elif defined MIRYOKU_ALPHAS_QWERTY
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=qwerty)>>
)
#else
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=colemakdhm)>>
)
#endif
@ -1113,31 +762,31 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
TAP_layer {
bindings = <
#if defined MIRYOKU_ALPHAS_COLEMAK
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=colemak)>>
)
#elif defined MIRYOKU_ALPHAS_COLEMAKDH
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=colemakdh)>>
)
#elif defined MIRYOKU_ALPHAS_DVORAK
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=dvorak)>>
)
#elif defined MIRYOKU_ALPHAS_HALMAK
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=halmak)>>
)
#elif defined MIRYOKU_ALPHAS_WORKMAN
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=workman)>>
)
#elif defined MIRYOKU_ALPHAS_QWERTY
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=qwerty)>>
)
#else
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=colemakdhm)>>
)
#endif
@ -1145,7 +794,7 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
};
MBO_layer {
bindings = <
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-full(table=mbo)>>
)
>;
@ -1153,11 +802,11 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
NAVR_layer {
bindings = <
#if defined MIRYOKU_NAV_VI
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=navr-vi)>>
)
#else
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=navr)>>
)
#endif
@ -1166,11 +815,11 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
MOUR_layer {
bindings = <
#if defined MIRYOKU_NAV_VI
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=mour-vi)>>
)
#else
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=mour)>>
)
#endif
@ -1179,11 +828,11 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
MEDR_layer {
bindings = <
#if defined MIRYOKU_NAV_VI
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=medr-vi)>>
)
#else
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=medr)>>
)
#endif
@ -1191,21 +840,21 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
};
NSL_layer {
bindings = <
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-half(mode="l", half_table=nsl)>>
)
>;
};
NSSL_layer {
bindings = <
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-half(mode="l", half_table=nssl)>>
)
>;
};
FUNL_layer {
bindings = <
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
<<table-map-half(mode="l", half_table=funl)>>
)
>;
@ -1277,19 +926,3 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
#+END_SRC
* Documentation :noexport_1:
** ZMK
-
** Org Mode
- https://orgmode.org/
- https://orgmode.org/manual/Tables.html
- https://orgmode.org/manual/Working-with-Source-Code.html
* Contact
[[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/manna-harbour-boa-32.png]]

View File

@ -1,4 +1,5 @@
// generated from miryoku_zmk.org -*- buffer-read-only: t -*-
// https://github.com/manna-harbour/miryoku-zmk/
// -*- buffer-read-only: t -*-
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
@ -66,49 +67,49 @@
BASE_layer {
bindings = <
#if defined MIRYOKU_ALPHAS_COLEMAK
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&kp Q, &kp W, &kp F, &kp P, &kp G, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
&hm LGUI A, &hm LALT R, &hm LCTRL S, &hm LSHFT T, &kp D, &kp H, &hm LSHFT N, &hm LCTRL E, &hm LALT I, &hm LGUI O,
&kp Z, &hm RALT X, &kp C, &kp V, &kp B, &kp K, &kp M, &kp COMMA, &hm RALT DOT, &kp SLASH,
U_NP, U_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BSPC, &lt FUNL DEL, U_NP, U_NP
)
#elif defined MIRYOKU_ALPHAS_COLEMAKDH
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
&hm LGUI A, &hm LALT R, &hm LCTRL S, &hm LSHFT T, &kp G, &kp K, &hm LSHFT N, &hm LCTRL E, &hm LALT I, &hm LGUI O,
&kp Z, &hm RALT X, &kp C, &kp D, &kp V, &kp M, &kp H, &kp COMMA, &hm RALT DOT, &kp SLASH,
U_NP, U_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BSPC, &lt FUNL DEL, U_NP, U_NP
)
#elif defined MIRYOKU_ALPHAS_DVORAK
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&kp SQT, &kp COMMA, &kp DOT, &kp P, &kp Y, &kp F, &kp G, &kp C, &kp R, &kp L,
&hm LGUI A, &hm LALT O, &hm LCTRL E, &hm LSHFT U, &kp I, &kp D, &hm LSHFT H, &hm LCTRL T, &hm LALT N, &hm LGUI S,
&kp SLASH, &hm RALT Q, &kp J, &kp K, &kp X, &kp B, &kp M, &kp W, &hm RALT V, &kp Z,
U_NP, U_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BSPC, &lt FUNL DEL, U_NP, U_NP
)
#elif defined MIRYOKU_ALPHAS_HALMAK
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&kp W, &kp L, &kp R, &kp B, &kp Z, &kp SQT, &kp Q, &kp U, &kp D, &kp J,
&hm LGUI S, &hm LALT H, &hm LCTRL N, &hm LSHFT T, &kp COMMA, &kp DOT, &hm LSHFT A, &hm LCTRL E, &hm LALT O, &hm LGUI I,
&kp F, &hm RALT M, &kp V, &kp C, &kp SLASH, &kp G, &kp P, &kp X, &hm RALT K, &kp Y,
U_NP, U_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BSPC, &lt FUNL DEL, U_NP, U_NP
)
#elif defined MIRYOKU_ALPHAS_WORKMAN
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&kp Q, &kp D, &kp R, &kp W, &kp B, &kp J, &kp F, &kp U, &kp P, &kp SQT,
&hm LGUI A, &hm LALT S, &hm LCTRL H, &hm LSHFT T, &kp G, &kp Y, &hm LSHFT N, &hm LCTRL E, &hm LALT O, &hm LGUI I,
&kp Z, &hm RALT X, &kp M, &kp C, &kp V, &kp K, &kp L, &kp COMMA, &hm RALT DOT, &kp SLASH,
U_NP, U_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BSPC, &lt FUNL DEL, U_NP, U_NP
)
#elif defined MIRYOKU_ALPHAS_QWERTY
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&kp Q, &kp W, &kp E, &kp R, &kp T, &kp Y, &kp U, &kp I, &kp O, &kp P,
&hm LGUI A, &hm LALT S, &hm LCTRL D, &hm LSHFT F, &kp G, &kp H, &hm LSHFT J, &hm LCTRL K, &hm LALT L, &hm LGUI SQT,
&kp Z, &hm RALT X, &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, &hm RALT DOT, &kp SLASH,
U_NP, U_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BSPC, &lt FUNL DEL, U_NP, U_NP
)
#else
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
&hm LGUI A, &hm LALT R, &hm LCTRL S, &hm LSHFT T, &kp G, &kp M, &hm LSHFT N, &hm LCTRL E, &hm LALT I, &hm LGUI O,
&kp Z, &hm RALT X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMMA, &hm RALT DOT, &kp SLASH,
@ -120,49 +121,49 @@ U_NP, U_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL R
TAP_layer {
bindings = <
#if defined MIRYOKU_ALPHAS_COLEMAK
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
&kp Q, &kp W, &kp F, &kp P, &kp G, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
&kp A, &kp R, &kp S, &kp T, &kp D, &kp H, &kp N, &kp E, &kp I, &kp O,
&kp Z, &kp X, &kp C, &kp V, &kp B, &kp K, &kp M, &kp COMMA, &kp DOT, &kp SLASH,
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
)
#elif defined MIRYOKU_ALPHAS_COLEMAKDH
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
&kp A, &kp R, &kp S, &kp T, &kp G, &kp K, &kp N, &kp E, &kp I, &kp O,
&kp Z, &kp X, &kp C, &kp D, &kp V, &kp M, &kp H, &kp COMMA, &kp DOT, &kp SLASH,
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
)
#elif defined MIRYOKU_ALPHAS_DVORAK
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
&kp SQT, &kp COMMA, &kp DOT, &kp P, &kp Y, &kp F, &kp G, &kp C, &kp R, &kp L,
&kp A, &kp O, &kp E, &kp U, &kp I, &kp D, &kp H, &kp T, &kp N, &kp S,
&kp SLASH, &kp Q, &kp J, &kp K, &kp X, &kp B, &kp M, &kp W, &kp V, &kp Z,
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
)
#elif defined MIRYOKU_ALPHAS_HALMAK
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
&kp W, &kp L, &kp R, &kp B, &kp Z, &kp SQT, &kp Q, &kp U, &kp D, &kp J,
&kp S, &kp H, &kp N, &kp T, &kp COMMA, &kp DOT, &kp A, &kp E, &kp O, &kp I,
&kp F, &kp M, &kp V, &kp C, &kp SLASH, &kp G, &kp P, &kp X, &kp K, &kp Y,
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
)
#elif defined MIRYOKU_ALPHAS_WORKMAN
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
&kp Q, &kp D, &kp R, &kp W, &kp B, &kp J, &kp F, &kp U, &kp P, &kp SQT,
&kp A, &kp S, &kp H, &kp T, &kp G, &kp Y, &kp N, &kp E, &kp O, &kp I,
&kp Z, &kp X, &kp M, &kp C, &kp V, &kp K, &kp L, &kp COMMA, &kp DOT, &kp SLASH,
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
)
#elif defined MIRYOKU_ALPHAS_QWERTY
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
&kp Q, &kp W, &kp E, &kp R, &kp T, &kp Y, &kp U, &kp I, &kp O, &kp P,
&kp A, &kp S, &kp D, &kp F, &kp G, &kp H, &kp J, &kp K, &kp L, &kp SQT,
&kp Z, &kp X, &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, &kp DOT, &kp SLASH,
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
)
#else
MIRYOKU_SUPERMAP(
MIRYOKU_MAPPING_TAP(
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
&kp A, &kp R, &kp S, &kp T, &kp G, &kp M, &kp N, &kp E, &kp I, &kp O,
&kp Z, &kp X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMMA, &kp DOT, &kp SLASH,
@ -173,7 +174,7 @@ U_NP, U_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL R
};
MBO_layer {
bindings = <
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans,
&trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans,
&trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans,
@ -184,14 +185,14 @@ U_NP, U_NP, &trans, &trans, &trans, &kp KP_SLASH, U_NU, U_NU,
NAVR_layer {
bindings = <
#if defined MIRYOKU_NAV_VI
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&bootloader, &tog TAP, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND,
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp LEFT, &kp DOWN, &kp UP, &kp RIGHT, &kp CAPS,
U_NA, &kp RALT, U_NA, U_NA, U_NA, &kp HOME, &kp PG_DN, &kp PG_UP, &kp END, &kp INS,
U_NP, U_NP, U_NA, U_NA, U_NA, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
)
#else
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&bootloader, &tog TAP, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND,
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp CAPS, &kp LEFT, &kp DOWN, &kp UP, &kp RIGHT,
U_NA, &kp RALT, U_NA, U_NA, U_NA, &kp INS, &kp HOME, &kp PG_DN, &kp PG_UP, &kp END,
@ -203,14 +204,14 @@ U_NP, U_NP, U_NA, U_NA, U_NA, &kp RET, &k
MOUR_layer {
bindings = <
#if defined MIRYOKU_NAV_VI
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&bootloader, &tog TAP, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU,
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp KP_N4, &kp KP_N2, &kp KP_N8, &kp KP_N6, U_NU,
U_NA, &kp RALT, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU,
U_NP, U_NP, U_NA, U_NA, U_NA, &kp KP_SLASH, U_NU, U_NU, U_NP, U_NP
)
#else
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&bootloader, &tog TAP, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU,
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, U_NU, &kp KP_N4, &kp KP_N2, &kp KP_N8, &kp KP_N6,
U_NA, &kp RALT, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU,
@ -222,14 +223,14 @@ U_NP, U_NP, U_NA, U_NA, U_NA, &kp KP_SLASH, U
MEDR_layer {
bindings = <
#if defined MIRYOKU_NAV_VI
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&bootloader, &tog TAP, U_NA, U_NA, U_NA, &rgb_ug RGB_EFF, &rgb_ug RGB_HUI, &rgb_ug RGB_SAI, &rgb_ug RGB_BRI, &rgb_ug RGB_TOG,
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp C_PREV, &kp C_VOL_DN, &kp C_VOL_UP, &kp C_NEXT, &out OUT_TOG,
U_NA, &kp RALT, U_NA, U_NA, U_NA, &bt BT_SEL 0, &bt BT_SEL 1, &bt BT_SEL 2, &bt BT_SEL 3, &bt BT_CLR,
U_NP, U_NP, U_NA, U_NA, U_NA, &kp C_STOP, &kp C_PP, &kp C_MUTE, U_NP, U_NP
)
#else
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&bootloader, &tog TAP, U_NA, U_NA, U_NA, &rgb_ug RGB_TOG, &rgb_ug RGB_EFF, &rgb_ug RGB_HUI, &rgb_ug RGB_SAI, &rgb_ug RGB_BRI,
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &out OUT_TOG, &kp C_PREV, &kp C_VOL_DN, &kp C_VOL_UP, &kp C_NEXT,
U_NA, &kp RALT, U_NA, U_NA, U_NA, &bt BT_CLR, &bt BT_SEL 0, &bt BT_SEL 1, &bt BT_SEL 2, &bt BT_SEL 3,
@ -240,7 +241,7 @@ U_NP, U_NP, U_NA, U_NA, U_NA, &kp C_STOP, &k
};
NSL_layer {
bindings = <
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&kp LBKT, &kp NUM_7, &kp NUM_8, &kp NUM_9, &kp RBKT, U_NA, U_NA, U_NA, &tog TAP, &bootloader,
&kp SEMI, &kp NUM_4, &kp NUM_5, &kp NUM_6, &kp EQL, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI,
&kp GRAVE, &kp NUM_1, &kp NUM_2, &kp NUM_3, &kp BSLH, U_NA, U_NA, U_NA, &kp RALT, U_NA,
@ -250,7 +251,7 @@ U_NP, U_NP, &kp DOT, &kp NUM_0, &kp MINUS, U_NA, U_
};
NSSL_layer {
bindings = <
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&kp LBRC, &kp AMPS, &kp ASTRK, &kp LPAR, &kp RBRC, U_NA, U_NA, U_NA, &tog TAP, &bootloader,
&kp COLON, &kp DLLR, &kp PRCT, &kp CRRT, &kp PLUS, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI,
&kp TILDE, &kp EXCL, &kp AT, &kp HASH, &kp PIPE, U_NA, U_NA, U_NA, &kp RALT, U_NA,
@ -260,7 +261,7 @@ U_NP, U_NP, &kp LPAR, &kp RPAR, &kp UNDER, U_NA, U_
};
FUNL_layer {
bindings = <
MIRYOKU_SUBMAP(
MIRYOKU_MAPPING(
&kp F12, &kp F7, &kp F8, &kp F9, &kp PSCRN, U_NA, U_NA, U_NA, &tog TAP, &bootloader,
&kp F11, &kp F4, &kp F5, &kp F6, &kp SLCK, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI,
&kp F10, &kp F1, &kp F2, &kp F3, &kp PAUSE_BREAK, U_NA, U_NA, U_NA, &kp RALT, U_NA,

108
readme.org Normal file
View File

@ -0,0 +1,108 @@
#+Title: Miryoku ZMK [[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, universal keyboard layout. This is the miryoku implementation for
[[https://zmkfirmware.dev/][ZMK]].
* Contents :TOC_3:
- [[#miryoku-keymap][Miryoku Keymap]]
- [[#configuration-options][Configuration Options]]
- [[#mapping][Mapping]]
- [[#generic-layouts][Generic Layouts]]
- [[#jian][jian]]
- [[#ortho_4x12][ortho_4x12]]
- [[#split_3x5_2][split_3x5_2]]
- [[#split_3x5_3][split_3x5_3]]
- [[#split_3x6_3][split_3x6_3]]
- [[#keyboard-specific-layouts][Keyboard-Specific Layouts]]
- [[#kyria][kyria]]
- [[#keyboard-keymaps][Keyboard Keymaps]]
- [[#contact][Contact]]
* Miryoku Keymap
The miryoku keymap is a ZMK DT keymap file using C preprocessor macros for
configuration options and to abstract the physical layout. The file is
[[./miryoku/miryoku.dtsi][miryoku/miryoku.dtsi]]. The file
is included into the keyboard's keymap with
#+BEGIN_SRC C :tangle no
#include "../miryoku/miryoku.dtsi"
#+END_SRC
* Configuration Options
todo
* Mapping
The keymap is mapped onto keyboards with different physical layouts. The keymap
is specified in terms of the ~MIRYOKU_MAPPING~ macro. The macro is defined in a
C header file for each physical layout. Unused keys are mapped to ~&none~. The
files are in [[./miryoku/mapping/][miryoku/mapping/]]. The
mapping file is included into the keyboard's keymap file before the miryoku
keymap with e.g.
#+BEGIN_SRC C :tangle no
#include "../miryoku/mapping/split_3x5_3.dtsi"
#+END_SRC
On each hand, only the main alpha block of 3 rows by 5 columns and the 3 most
appropriate thumb keys are used. Notes or diagrams are included where the
selection of keys is not obvious or where options are provided.
** Generic Layouts
These mappings can be used by multiple keyboards with functionally identical physical layouts.
*** jian
Used by:
- jian
- jorne
*** [[./miryoku/mapping/ortho_4x12.h][ortho_4x12]]
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_4x12.png]]
*** [[./miryoku/mapping/split_3x5_2.h][split_3x5_2]]
Combos of primary and secondary thumb keys emulate the missing tertiary thumb
key. To enable with other subset mappings for compatibility, add ~#define
MIRYOKU_COMBO_TPS_ENABLE~ to the keymap before the includes.
*** [[./miryoku/mapping/split_3x5_3.h][split_3x5_3]]
*** [[./miryoku/mapping/split_3x6_3.h][split_3x6_3]]
** Keyboard-Specific Layouts
*** [[./miryoku/mapping/kyria.h][kyria]]
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria.png]]
* Keyboard Keymaps
Keymap files for many keyboards included in ZMK are provided in
[[./config/][config/]].
* Contact
To request any of the following, please create an issue. Pull requests are also welcome.
- Additional mapping and keyboard keymap files
- Additional mapping options (see miryoku QMK for examples)
- Populating unused keys in ~MIRYOKU_MAPPING_TAP~ (currently skipped for some mapping files)
[[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/manna-harbour-boa-32.png]]

86
status.org Normal file
View File

@ -0,0 +1,86 @@
* Status
Welcome to the alpha of miryoku ZMK!
You've been added as a collaborator to the repo as it's the easiest way to give
access. You're not expected to contribute but contributions are welcome. In
that case please create a new branch and PR. Otherwise, if you could avoid
accidental force pushes to master that'd be great! The layout should be usable
now but there's still some work to do before it's published, so please don't
redistribute. If you fork, please make the repo private.
Just a bit of an explanation of the current status: I'm doing a miryoku
reorganisation at the moment. The general layout docs will move out of the QMK
repo and get expanded. The org stuff will also move and will generate QMK, ZMK,
and KMonad. At the moment the org stuff in ZMK is separate until I finalise the
scripts and re-integrate the changes, so it's a bit of a mess right now but the
generated keymap shouldn't change much.
** Todo
*** TODO Integrate with Zephyr CMake
Support passing configuration options. For now, add the equivalent ~#define~ to
your keymap before the includes, e.g. for ~MIRYOKU_ALPHAS=QWERTY~ add ~#define
MIRYOKU_ALPHAS_QWERTY~.
*** TODO Add mappings for all boards / shields in ZMK
#+TODO: TODO | DONE NA MACROPAD ROWSTAGGER
**** https://github.com/zmkfirmware/zmk/tree/main/app/boards/shields
***** TODO bfo9000
split_6x9
***** MACROPAD boardsource3x4
***** MACROPAD clueboard_california
***** DONE corne
***** DONE cradio
***** DONE crbn
***** DONE eek
***** DONE ferris
***** DONE helix
***** DONE iris
***** DONE jian
***** DONE jorne
***** DONE kyria
***** DONE lily58
***** ROWSTAGGER m60
60_ansi
***** DONE microdox
***** ROWSTAGGER nibble
nibble (65%)
***** ROWSTAGGER qaz
***** ROWSTAGGER quefrency
quefrency (65%)
***** TODO reviung41
***** MACROPAD romac
***** MACROPAD romac_plus
***** DONE sofle
***** DONE splitreus62
***** ROWSTAGGER tg4x
40%
***** MACROPAD tidbit
**** https://github.com/zmkfirmware/zmk/tree/main/app/boards/arm
***** NA bdn9
***** NA bluemicro840
***** ROWSTAGGER dz60rgb_rev1
can be built as 60_ansi, default in zmk is not
***** NA nice_nano
***** NA nrf52840_m2
***** NA nrfmicro
***** DONE planck
***** NA proton_c
**** external
***** DONE ahokore
***** TODO corne-ish_zen
name?