6.6 KiB
Miryoku ZMK 
- Contents
- Building
- Miryoku Keymap
- Configuration Options
- Config File
- Example Config File
- Mapping
- Keyboard Keymaps
- Contact

Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout. This is the miryoku implementation for ZMK.
Contents TOC_1
Building
Supported Keyboards
Board Only
Any board supported by ZMK with a keymap in Miryoku ZMK.
Board / Shield Combination
Any compatible combination of board supported by ZMK and shield supported by ZMK with a keymap in Miryoku ZMK.
Local Builds
Clone this repo and use for ZMK_CONFIG.
GitHub Actions Workflows
Some out of tree boards and shields are automatically supported in the included workflows. See /ClaytonWWilson/miryoku_zmk/src/commit/724e270deaadbcb8c599fe469cbbf6d086aa2b36/config/board-configs.
Prebuilt Firmware
Some prebuilt firmware can be downloaded from the repo. Log in to GitHub, visit the Actions tab, select the appropriate workflow, select the latest successful workflow run, select the desired artifact, and unzip the downloaded zip file.
Inputs
Fork this repo, select the Build Inputs workflow action, select Run workflow, fill out the form with a supported keyboard and configuration options, activate Run workflow, wait for successful completion, select the workflow run, select the Artifacts, and unzip the downloaded zip file.
Customise Workflow Files
Fork this repo, copy, and edit the included Build Matrix workflow files with supported keyboards and configuration options.
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. The file is included into the keyboard's keymap with
#include "../miryoku/miryoku.dtsi"
Configuration Options
Keymap configuration options and mapping configuration options are given in the documentation in the form option=value.
Configuration Options in Config File
Convert to the form #define option_value. To apply the configuration options to all builds add them to the config file. To apply configuration options to a single keyboard, add them to the keyboard keymap file before any #include lines.
Configuration Options in GitHub Actions Workflows
Convert to the form value (uppercase or lowercase) and use with the corresponding option matrix variable or input. Empty fields will use the default value.
Config File
The config file can be used to provide configuration options for all local builds. The file is miryoku/config.h. See the example config file.
Example Config File
Below is an example config file with the following keymap configuration options:
MIRYOKU_ALPHAS=QWERTYMIRYOKU_NAV=VIMIRYOKU_CLIPBOARD=WIN
// https://github.com/manna-harbour/miryoku-zmk/
#define MIRYOKU_ALPHAS_QWERTY
#define MIRYOKU_NAV_VI
#define MIRYOKU_CLIPBOARD_WIN
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/. The mapping file is included into the keyboard's keymap file before the miryoku keymap with e.g.
#include "../miryoku/mapping/36-minidox.h"
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 alternatives are provided via mapping configuration options.
Layouts
34-ferris
Combo TPS
MIRYOKU_COMBO_TPS=ENABLE
Combos of primary and secondary thumb keys emulate the missing tertiary thumb key. This configuration option is enabled automatically for this mapping and can be enabled on other mappings for compatibility
36-minidox
42-corne
44-jian
48-planck
Default

Extended Thumbs
MIRYOKU_MAPPING=EXTENDED_THUMBS
50-kyria
Default

Extend Thumbs
MIRYOKU_MAPPING=EXTENDED_THUMBS
![]()
56-iris
58-lily58
60-sofle
62-atreus62
64-helix
Keyboard Keymaps
Keymap files for many keyboards included in ZMK are provided in config/.
Contact
For feature requests or issues with code or documentation please open an issue.
For more general discussion please contact Manna Harbour.
