Miryoku Babel
Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout. Miryoku Babel generates the layer data source files for Miryoku implementations from a single source.
This document describes Miryoku Babel only. For Miryoku documentation, implementations, and discussions and support, see Miryoku .
Emacs is an extensible text editor. Org is an emacs mode for structured text. Babel is org’s ability to execute source code from within org documents. This org document uses babel to generate the layer data source files for Miryoku implementations.
Layers and alternative layouts are maintained in org tables. The tables are tangled into source files via python scripts and additional data tables .
Changes to Miryoku layers can be made with convenient org table editing commands .
For those not using emacs, changes can also be made in any editor and the tangling can be performed from the shell or via a GitHub actions workflow .
The scripts can also be used by other layouts to generated multi-firmware keymaps from a single source.
Emacs, python, and org 9.4 or later are required.
Add the following to your emacs initialisation file:
(require 'ob-python )
(setq org-confirm-babel-evaluate nil )
(setq python-indent-guess-indent-offset-verbose nil )
Call org-babel-tangle
(C-c
C-v
t
).
See the Install Org and Tangle steps in .github/workflows/main.yml for example shell commands that can be run locally.
Log in to GitHub, fork the Miryoku Babel repository, and enable workflows.
The Test workflow is not applicable when using the Build workflow and should be prevented from running on push by deleting the push line in .github/workflows/test.yml .
Visit the Actions tab, select the Build workflow, select Run workflow, select the Branch if desired, activate Run workflow, select the Artifacts, and unzip the downloaded zip file.
The layers are maintained in tables. U_NP
indicates the key is not present and is used to fill in the table around the thumb keys.
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 is maintained as separate tables for tap alphas, tap thumbs, and hold. Other layers are specified as a single hand including thumbs. Tables are combined to produce the keymap data for each layer.
Q W F P B J L U Y ’
A R S T G M N E I O
Z X C D V K H , DOT /
U_NP U_NP / MINS TAB SPC ENT BSPC U_NP U_NP
BOOT DF(U_TAP) DF(U_EXTRA) DF(U_BASE) DF(U_BASE) DF(U_EXTRA) DF(U_TAP) BOOT
LCTL LALT LGUI LSFT CAPSWRD CAPSWRD LSFT LGUI LALT LCTL
U_BUTTON ALGR LOCK_OPP LOCK_CUR LOCK_CUR LOCK_OPP ALGR U_BUTTON
U_NP U_NP U_MEDIA U_MOUSE U_SYM U_NAV U_NUM U_FUN U_NP U_NP
U_RDO U_PST U_CPY U_CUT U_UND
CAPS LEFT DOWN UP RGHT
INS HOME PGDN PGUP END
SPC PENT BSPC U_NP U_NP
U_RDO U_PST U_CPY U_CUT U_UND
MS_L MS_D MS_U MS_R
WH_L WH_D WH_U WH_R
BTN1 BTN3 BTN2 U_NP U_NP
U_UND U_CUT U_CPY U_PST U_RDO U_RDO U_PST U_CPY U_CUT U_UND
LCTL LALT LGUI LSFT RSFT RGUI RALT RCTL
U_UND U_CUT U_CPY U_PST U_RDO U_RDO U_PST U_CPY U_CUT U_UND
U_NP U_NP BTN2 BTN3 BTN1 SPC ENT BSPC U_NP U_NP
BL_TOGG BL_BRTG BRID BRIU BL_STEP
SLEP MPRV VOLD VOLU MNXT
RALT(KC_LBRC) RALT(KC_LCBR) RALT(KC_RBRC) RALT(KC_RCBR) RALT(KC_SCLN)
MPLY PENT MUTE U_NP U_NP
[ 7 8 9 ]
; 4 5 6 =
` 1 2 3 MINS
U_NP U_NP \ 0 DOT
{ & * ( }
: $ % ^ +
~ ! @ # _
U_NP U_NP PIPE < >
F12 F7 F8 F9 F13
F11 F4 F5 F6 PSCR
F10 F1 F2 F3 PAUS
U_NP U_NP SPC < >
MIRYOKU_ALPHAS=AVERAK
Q W R P F J Y O L ’
A S D T G M N E I U
Z X C V , DOT H B K ESC
MIRYOKU_ALPHAS=AZERTY
A Z E R T Y U I O P
Q S D F G H J K L M
W X C V B N , DOT / ’
MIRYOKU_ALPHAS=BEAKL15
Q H O U X G C R F Z
Y I E A DOT D S T N B
J / , K ’ W M L P V
MIRYOKU_ALPHAS=COLEMAK
Q W F P G J L U Y ’
A R S T D H N E I O
Z X C V B K M , DOT /
MIRYOKU_ALPHAS=COLEMAKDHK
Q W F P B J L U Y ’
A R S T G K N E I O
Z X C D V M H , DOT /
MIRYOKU_ALPHAS=DVORAK
‘ , DOT P Y F G C R L
A O E U I D H T N S
/ Q J K X B M W V Z
MIRYOKU_ALPHAS=HALMAK
W L R B Z ’ Q U D J
S H N T , DOT A E O I
F M V C / G P X K Y
MIRYOKU_ALPHAS=WORKMAN
Q D R W B J F U P ’
A S H T G Y N E O I
Z X M C V K L , DOT /
MIRYOKU_ALPHAS=QWERTY
Q W E R T Y U I O P
A S D F G H J K L ;
Z X C V B N M , DOT ESC
MIRYOKU_ALPHAS=QWERTZ
Q W E R T Z U I O P
A S D F G H J K L ’
Y X C V B N M , DOT /
MIRYOKU_NAV=VI
Not available with MIRYOKU_LAYERS=FLIP
.
U_RDO U_PST U_CPY U_CUT U_UND
LEFT DOWN UP RGHT CAPS
HOME PGDN PGUP END INS
SPC PENT BSPC U_NP U_NP
U_RDO U_PST U_CPY U_CUT U_UND
MS_L MS_D MS_U MS_R
WH_L WH_D WH_U WH_R
BTN1 BTN3 BTN2 U_NP U_NP
BL_BRTG BRID BRIU BL_STEP BL_TOGG
MPRV VOLD VOLU MNXT SLEP
RALT(KC_LBRC) RALT(KC_LCBR) RALT(KC_RBRC) RALT(KC_RCBR) RALT(KC_SCLN)
MPLY PENT MUTE U_NP U_NP
MIRYOKU_NAV=INVERTEDT
INS HOME UP END PGUP
CAPS LEFT DOWN RGHT PGDN
U_RDO U_PST U_CPY U_CUT U_UND
SPC PENT BSPC U_NP U_NP
WH_L MS_U WH_R WH_U
MS_L MS_D MS_R WH_D
U_RDO U_PST U_CPY U_CUT U_UND
BTN1 BTN3 BTN2 U_NP U_NP
BL_TOGG BL_BRTG VOLU BL_STEP BRIU
SLEP MPRV VOLD MNXT BRID
RALT(KC_LBRC) RALT(KC_LCBR) RALT(KC_RBRC) RALT(KC_RCBR) RALT(KC_SCLN)
MPLY PENT MUTE U_NP U_NP
MIRYOKU_LAYERS=FLIP
U_NP U_NP DEL BSPC ENT TAB SPC ESC U_NP U_NP
BOOT DF(U_TAP) DF(U_EXTRA) DF(U_BASE) DF(U_BASE) DF(U_EXTRA) DF(U_TAP) BOOT
LCTL LALT LGUI LSFT CAPSWRD CAPSWRD LSFT LGUI LALT LCTL
U_BUTTON ALGR LOCK_OPP LOCK_CUR LOCK_CUR LOCK_OPP ALGR U_BUTTON
U_NP U_NP U_FUN U_NUM U_SYM U_MOUSE U_NAV U_MEDIA U_NP U_NP
[ 7 8 9 ]
= 4 5 6 ;
\ 1 2 3 `
MINS 0 DOT U_NP U_NP
{ & * ( }
+ $ % ^ :
PIPE ! @ # ~
_ ( ) U_NP U_NP
PSCR F7 F8 F9 F12
SLCK F4 F5 F6 F11
PAUS F1 F2 F3 F10
SPC < > U_NP U_NP
DefaultNav
HOME PGDN PGUP END INS
LEFT DOWN UP RGHT CAPS
U_UND U_CUT U_CPY U_PST U_RDO
U_NP U_NP SPC S(TAB) TAB
Mouse
WH_L WH_D WH_U WH_R
MS_L MS_D MS_U MS_R
U_UND U_CUT U_CPY U_PST U_RDO
U_NP U_NP BTN2 BTN3 BTN1
Media
RGB_MOD RGB_HUI RGB_SAI RGB_VAI RGB_TOG
MPRV VOLD VOLU MNXT EP_TOG
BT_SEL_0 BT_SEL_1 BT_SEL_2 BT_SEL_3 OUT_TOG
U_NP U_NP MUTE MPLY MSTP
Inverted-T
MIRYOKU_NAV=INVERTEDT
Nav
PGUP HOME UP END INS
PGDN LEFT DOWN RGHT CAPS
U_UND U_CUT U_CPY U_PST U_RDO
U_NP U_NP SPC BTAB TAB
Mouse
WH_U WH_L MS_U WH_R
WH_D MS_L MS_D MS_R
U_UND U_CUT U_CPY U_PST U_RDO
U_NP U_NP BTN2 BTN3 BTN1
Media
RGB_HUI RGB_SAI VOLU RGB_VAI RGB_TOG
RGB_MOD MPRV VOLD MNXT EP_TOG
BT_SEL_0 BT_SEL_1 BT_SEL_2 BT_SEL_3 OUT_TOG
U_NP U_NP MUTE MPLY MSTP
U_BASE Base
U_EXTRA Extra
U_TAP Tap
U_BUTTON Button
U_NAV Nav
U_MOUSE Mouse
U_MEDIA Media
U_NUM Num
U_SYM Sym
U_FUN Fun
Symbol, name, and shifted symbol mappings for use in tables.
` GRV ~ TILD
”-” MINS _ UNDS
= EQL + PLUS
[ LBRC { LCBR
] RBRC } RCBR
\ BSLS PIPE PIPE
; SCLN : COLN
‘ QUOT DQUO DQUO
, COMM < LT
”.” DOT > GT
/ SLSH ? QUES
1 1 ! EXLM
2 2 @ AT
3 3 # HASH
4 4 $ DLR
5 5 % PERC
6 6 ^ CIRC
7 7 & AMPR
8 8 * ASTR
9 9 ( LPRN
0 0 ) RPRN
Modifiers usable in hold table. Need to have the same name for KC_
and _T
versions.
Source keycode to implementation equivalent (source, QMK, ZMK, KMonad).
A A A a
B B B b
C C C c
D D D d
E E E e
F F F f
G G G g
H H H h
I I I i
J J J j
K K K k
L L L l
M M M m
N N N n
O O O o
P P P p
Q Q Q q
R R R r
S S S s
T T T t
U U U u
V V V v
W W W w
X X X x
Y Y Y y
Z Z Z z
0 0 NUM_0 0
1 1 NUM_1 1
2 2 NUM_2 2
3 3 NUM_3 3
4 4 NUM_4 4
5 5 NUM_5 5
6 6 NUM_6 6
7 7 NUM_7 7
8 8 NUM_8 8
9 9 NUM_9 9
ALGR ALGR RALT ralt
AMPR AMPR AMPS &
APP APP K_APP comp
ASTR ASTR ASTRK *
AT AT AT @
BRID BRID C_BRI_DN
BRIU BRIU C_BRI_UP
BSLS BSLS BSLH \
BSPC BSPC BSPC bspc
BTAB S(KC_TAB) LS(TAB)
BOOT RESET &bootloader
BT_CLR &bt BT_CLR
BT_SEL_0 &u_bt_sel_0
BT_SEL_1 &u_bt_sel_1
BT_SEL_2 &u_bt_sel_2
BT_SEL_3 &u_bt_sel_3
BT_SEL_4 &u_bt_sel_4
BTN1 BTN1 U_BTN1 #(kp/ kp5)
BTN2 BTN2 U_BTN2 #(kp- kp5)
BTN3 BTN3 U_BTN3 #(kp* kp5)
CAPS CAPS &u_caps_word caps
CIRC CIRC CRRT ^
COLN COLN COLON :
COMM COMM COMMA U_COMM
DEL DEL DEL del
DF(U_BASE) DF(U_BASE) &to U_BASE U_DF(U_BASE)
DF(U_EXTRA) DF(U_EXTRA) &to U_EXTRA U_DF(U_EXTRA)
DF(U_TAP) DF(U_TAP) &to U_TAP U_DF(U_TAP)
DLR DLR DLLR $
DOT DOT DOT .
DOWN DOWN DOWN down
DQUO DQUO DQT U_DQUO
END END END end
ENT ENT RET ent
EP_TOG &u_ep_tog
EQL EQL EQL =
ESC ESC ESC esc
EXLM EXLM EXCL !
F1 F1 F1 f1
F2 F2 F2 f2
F3 F3 F3 f3
F4 F4 F4 f4
F5 F5 F5 f5
F6 F6 F6 f6
F7 F7 F7 f7
F8 F8 F8 f8
F9 F9 F9 f9
F10 F10 F10 f10
F11 F11 F11 f11
F12 F12 F12 f12
GRV GRV GRAVE `
GT GT GT >
HASH HASH HASH #
HOME HOME HOME home
INS INS INS ins
LALT LALT LALT alt
LBRC LBRC LBKT [
LCBR LCBR LBRC {
LCTL LCTL LCTRL ctl
LEFT LEFT LEFT left
LGUI LGUI LGUI met
LPRN LPRN LPAR U_LPRN
LSFT LSFT LSHFT sft
LT LT LT <
MINS MINS MINUS -
MNXT MNXT C_NEXT nextsong
MPLY MPLY C_PP playpause
MPRV MPRV C_PREV previoussong
MS_D MS_D U_MS_D kp2
MS_L MS_L U_MS_L kp4
MS_R MS_R U_MS_R kp6
MS_U MS_U U_MS_U kp8
MSTP MSTP C_STOP stopcd
MUTE MUTE C_MUTE mute
NO NO &none XX
OUT_TOG OUT_AUTO &u_out_tog
OUT_BT OUT_BT &out OUT_BT
OUT_USB OUT_USB &out OUT_USB
PAUS PAUS PAUSE_BREAK pause
PENT PENT KP_ENTER
PERC PERC PRCT %
PGDN PGDN PG_DN pgdn
PGUP PGUP PG_UP pgup
PIPE PIPE PIPE U_PIPE
PLUS PLUS PLUS +
PSCR G(S(KC_4)) PSCRN sysrq
QUES QUES QMARK ?
QUOT TD(QUOT) SQT U_QUOT
RBRC RBRC RBKT ]
RCBR RCBR RBRC }
RESET &reset
RGB_HUI RGB_HUI &u_rgb_hui
RGB_MOD RGB_MOD &u_rgb_eff
RGB_SAI RGB_SAI &u_rgb_sai
RGB_TOG RGB_TOG &rgb_ug RGB_TOG
RGB_VAI RGB_VAI &u_rgb_bri
RGHT RGHT RIGHT right
RPRN RPRN RPAR U_RPRN
SCLN SCLN SEMI ;
SLCK SLCK SLCK slck
SLSH SLSH SLASH /
SPC SPC SPC spc
TAB TAB TAB tab
TILD TILD TILDE ~
TRNS TRNS &trans _
SLEP SLEP C_SLEEP
UNDS UNDS UNDER \_
UP UP UP up
VOLD VOLD C_VOL_DN vold
VOLU VOLU C_VOL_UP volu
WH_D WH_U U_WH_U
WH_L WH_R U_WH_R
WH_R WH_L U_WH_L
WH_U WH_D U_WH_D
width = 19
mods_dict = dict .fromkeys (mods_table [0 ])
layers_dict = {}
for layer , name in layers_table :
layers_dict [layer ] = name
symbol_names_dict = {}
shifted_symbol_names_dict = {}
for symbol , name , shifted_symbol , shifted_name in symbol_names_table :
symbol_names_dict [symbol ] = name
symbol_names_dict [shifted_symbol ] = shifted_name
shifted_symbol_names_dict [symbol ] = shifted_name
keycode_translation_dict = {}
if target == 'qmk' :
nonbasic_tuple = tuple (nonkc_table [0 ])
basic_prefix = 'KC_'
for source , qmk , zmk , kmonad in keycode_translation_table :
keycode_translation_dict [source ] = qmk
elif target == 'zmk' :
nonbasic_tuple = tuple (nonkp_table [0 ])
basic_prefix = '&kp '
for source , qmk , zmk , kmonad in keycode_translation_table :
keycode_translation_dict [source ] = zmk
elif target == 'kmonad' :
nonbasic_tuple = ()
basic_prefix = ''
for source , qmk , zmk , kmonad in keycode_translation_table :
keycode_translation_dict [source ] = kmonad
results = '// target: ' + target
results
Produce base layer from separate alphas, thumbs, and hold tables.
results = ''
for tap_row , hold_row in zip (alphas_table + thumbs_table , hold_table ):
for tap , hold in zip (tap_row , hold_row ):
code = tap
if code in symbol_names_dict :
code = symbol_names_dict [code ]
if code in keycode_translation_dict :
code = keycode_translation_dict [code ]
if code == '' :
code = 'U_NU'
if hold in mods_dict :
if hold in keycode_translation_dict :
hold = keycode_translation_dict [hold ]
if target == 'qmk' :
code = basic_prefix + str (code )
code = str (hold ) + '_T(' + code + ')'
elif target == 'zmk' :
code = '&hm ' + str (hold ) + ' ' + code
elif target == 'kmonad' :
code = 'U_MT(' + code + ', ' + str (hold ) + ')'
elif hold in layers_dict :
if target == 'qmk' :
code = basic_prefix + str (code )
code = 'LT(' + str (hold ) + ',' + code + ')'
elif target == 'zmk' :
code = '< ' + str (hold ) + ' ' + code
elif target == 'kmonad' :
code = 'U_LT(' + code + ', ' + str (hold ) + ')'
elif not str (code ).startswith (nonbasic_tuple ):
code = basic_prefix + str (code )
results += (code + ',' ).ljust (width )
results += '\\ \n '
results = results .rstrip (', \\ \n ' )
results
Produce sub layers from single hand and hold tables.
length = len (half_table [0 ])
results = ''
for half_row , hold_row in zip (half_table , hold_table ):
hold_row_l , hold_row_r = hold_row [:length ], hold_row [length :]
for lr , hold_row_lr in ('l' , hold_row_l ), ('r' , hold_row_r ):
if lr == mode :
for half in half_row :
if shift == "true" and half in shifted_symbol_names_dict :
code = shifted_symbol_names_dict [half ]
elif half in symbol_names_dict :
code = symbol_names_dict [half ]
else :
code = half
if code in keycode_translation_dict :
code = keycode_translation_dict [code ]
if code == '' :
code = 'U_NU'
if not str (code ).startswith (nonbasic_tuple ):
code = basic_prefix + str (code )
results += (str (code ) + ',' ).ljust (width )
else :
for hold in hold_row_lr :
if hold in mods_dict :
if hold in keycode_translation_dict :
hold = keycode_translation_dict [hold ]
code = basic_prefix + str (hold )
else :
if hold in keycode_translation_dict :
hold = keycode_translation_dict [hold ]
if hold == '' or hold in layers_dict :
code = 'U_NA'
elif hold == 'LOCK_CUR' or hold == 'LOCK_OPP' :
if hold == 'LOCK_CUR' :
layer_name = current_layer_name
else :
layer_name = opposite_layer_name
if target == 'qmk' :
code = 'DF(' + layer_name + ')'
elif target == 'zmk' :
code = '&to ' + layer_name
elif target == 'kmonad' :
code = 'U_DF(' + layer_name + ')'
elif str (hold ).startswith (nonbasic_tuple ):
code = hold
else :
code = basic_prefix + str (hold )
results += (str (code ) + ',' ).ljust (width )
results += '\\ \n '
results = results .rstrip (', \\ \n ' )
results
Produce full layer from single table. Fill for unused keys is configurable.
results = ''
for row in alphas_table + thumbs_table :
for key in row :
if key in symbol_names_dict :
code = symbol_names_dict [key ]
else :
code = key
if code == '' :
code = fill
if code in keycode_translation_dict :
code = keycode_translation_dict [code ]
if code == '' :
code = 'U_NU'
if not str (code ).startswith (nonbasic_tuple ):
code = basic_prefix + str (code )
results += (code + ',' ).ljust (width )
results += '\\ \n '
results = results .rstrip (', \\ \n ' )
results
Body of miryoku_layer_selection.h.
#pragma once
#include "miryoku_layer_alternatives.h"
#if !defined(MIRYOKU_LAYER_BASE )
#if defined (MIRYOKU_LAYERS_FLIP )
#if defined (MIRYOKU_ALPHAS_AVERAK )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AVERAK_FLIP
#elif defined (MIRYOKU_ALPHAS_AZERTY )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP
#elif defined (MIRYOKU_ALPHAS_BEAKL15 )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP
#elif defined (MIRYOKU_ALPHAS_COLEMAK )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP
#elif defined (MIRYOKU_ALPHAS_COLEMAKDH )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
#elif defined (MIRYOKU_ALPHAS_COLEMAKDHK )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP
#elif defined (MIRYOKU_ALPHAS_DVORAK )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP
#elif defined (MIRYOKU_ALPHAS_HALMAK )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP
#elif defined (MIRYOKU_ALPHAS_WORKMAN )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP
#elif defined (MIRYOKU_ALPHAS_QWERTY )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
#elif defined (MIRYOKU_ALPHAS_QWERTZ )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP
#else
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
#endif
#else
#if defined (MIRYOKU_ALPHAS_AVERAK )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AVERAK
#elif defined (MIRYOKU_ALPHAS_AZERTY )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AZERTY
#elif defined (MIRYOKU_ALPHAS_BEAKL15 )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_BEAKL15
#elif defined (MIRYOKU_ALPHAS_COLEMAK )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAK
#elif defined (MIRYOKU_ALPHAS_COLEMAKDH )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
#elif defined (MIRYOKU_ALPHAS_COLEMAKDHK )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK
#elif defined (MIRYOKU_ALPHAS_DVORAK )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_DVORAK
#elif defined (MIRYOKU_ALPHAS_HALMAK )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_HALMAK
#elif defined (MIRYOKU_ALPHAS_WORKMAN )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_WORKMAN
#elif defined (MIRYOKU_ALPHAS_QWERTY )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTY
#elif defined (MIRYOKU_ALPHAS_QWERTZ )
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTZ
#else
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
#endif
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_BASE )
#define MIRYOKU_LAYERMAPPING_BASE MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_EXTRA )
#if defined (MIRYOKU_LAYERS_FLIP )
#if defined (MIRYOKU_EXTRA_AVERAK )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_AVERAK_FLIP
#elif defined (MIRYOKU_EXTRA_AZERTY )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP
#elif defined (MIRYOKU_EXTRA_BEAKL15 )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP
#elif defined (MIRYOKU_EXTRA_COLEMAK )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP
#elif defined (MIRYOKU_EXTRA_COLEMAKDH )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
#elif defined (MIRYOKU_EXTRA_COLEMAKDHK )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP
#elif defined (MIRYOKU_EXTRA_DVORAK )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP
#elif defined (MIRYOKU_EXTRA_HALMAK )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP
#elif defined (MIRYOKU_EXTRA_WORKMAN )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP
#elif defined (MIRYOKU_EXTRA_QWERTY )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
#elif defined (MIRYOKU_EXTRA_QWERTZ )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP
#else
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
#endif
#else
#if defined (MIRYOKU_EXTRA_AVERAK )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_AVERAK
#elif defined (MIRYOKU_EXTRA_AZERTY )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_AZERTY
#elif defined (MIRYOKU_EXTRA_BEAKL15 )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_BEAKL15
#elif defined (MIRYOKU_EXTRA_COLEMAK )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAK
#elif defined (MIRYOKU_EXTRA_COLEMAKDH )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
#elif defined (MIRYOKU_EXTRA_COLEMAKDHK )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK
#elif defined (MIRYOKU_EXTRA_DVORAK )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_DVORAK
#elif defined (MIRYOKU_EXTRA_HALMAK )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_HALMAK
#elif defined (MIRYOKU_EXTRA_WORKMAN )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_WORKMAN
#elif defined (MIRYOKU_EXTRA_QWERTY )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY
#elif defined (MIRYOKU_EXTRA_QWERTZ )
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTZ
#else
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY
#endif
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_EXTRA )
#define MIRYOKU_LAYERMAPPING_EXTRA MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_TAP )
#if defined (MIRYOKU_LAYERS_FLIP )
#if defined (MIRYOKU_TAP_AVERAK )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_AVERAK_FLIP
#elif defined (MIRYOKU_TAP_AZERTY )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP
#elif defined (MIRYOKU_TAP_BEAKL15 )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP
#elif defined (MIRYOKU_TAP_COLEMAK )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP
#elif defined (MIRYOKU_TAP_COLEMAKDH )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP
#elif defined (MIRYOKU_TAP_COLEMAKDHK )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP
#elif defined (MIRYOKU_TAP_DVORAK )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP
#elif defined (MIRYOKU_TAP_HALMAK )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP
#elif defined (MIRYOKU_TAP_WORKMAN )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP
#elif defined (MIRYOKU_TAP_QWERTY )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP
#elif defined (MIRYOKU_TAP_QWERTZ )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP
#else
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP
#endif
#else
#if defined (MIRYOKU_TAP_AVERAK )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_AVERAK
#elif defined (MIRYOKU_TAP_AZERTY )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_AZERTY
#elif defined (MIRYOKU_TAP_BEAKL15 )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_BEAKL15
#elif defined (MIRYOKU_TAP_COLEMAK )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAK
#elif defined (MIRYOKU_TAP_COLEMAKDH )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH
#elif defined (MIRYOKU_TAP_COLEMAKDHK )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK
#elif defined (MIRYOKU_TAP_DVORAK )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_DVORAK
#elif defined (MIRYOKU_TAP_HALMAK )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_HALMAK
#elif defined (MIRYOKU_TAP_WORKMAN )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_WORKMAN
#elif defined (MIRYOKU_TAP_QWERTY )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTY
#elif defined (MIRYOKU_TAP_QWERTZ )
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTZ
#else
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH
#endif
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_TAP )
#define MIRYOKU_LAYERMAPPING_TAP MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_BUTTON )
#define MIRYOKU_LAYER_BUTTON MIRYOKU_ALTERNATIVES_BUTTON
#endif
#if !defined(MIRYOKU_LAYERMAPPING_BUTTON )
#define MIRYOKU_LAYERMAPPING_BUTTON MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_NAV )
#if defined (MIRYOKU_LAYERS_FLIP )
#if defined (MIRYOKU_NAV_INVERTEDT )
#define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP
#else
#define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_FLIP
#endif
#else
#if defined (MIRYOKU_NAV_INVERTEDT )
#define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_INVERTEDT
#elif defined (MIRYOKU_NAV_VI )
#define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_VI
#else
#define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV
#endif
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_NAV )
#define MIRYOKU_LAYERMAPPING_NAV MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_MOUSE )
#if defined (MIRYOKU_LAYERS_FLIP )
#if defined (MIRYOKU_NAV_INVERTEDT )
#define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP
#else
#define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_FLIP
#endif
#else
#if defined (MIRYOKU_NAV_INVERTEDT )
#define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT
#elif defined (MIRYOKU_NAV_VI )
#define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_VI
#else
#define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE
#endif
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_MOUSE )
#define MIRYOKU_LAYERMAPPING_MOUSE MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_MEDIA )
#if defined (MIRYOKU_LAYERS_FLIP )
#if defined (MIRYOKU_NAV_INVERTEDT )
#define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP
#else
#define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_FLIP
#endif
#else
#if defined (MIRYOKU_NAV_INVERTEDT )
#define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT
#elif defined (MIRYOKU_NAV_VI )
#define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_VI
#else
#define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA
#endif
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_MEDIA )
#define MIRYOKU_LAYERMAPPING_MEDIA MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_NUM )
#if defined (MIRYOKU_LAYERS_FLIP )
#define MIRYOKU_LAYER_NUM MIRYOKU_ALTERNATIVES_NUM_FLIP
#else
#define MIRYOKU_LAYER_NUM MIRYOKU_ALTERNATIVES_NUM
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_NUM )
#define MIRYOKU_LAYERMAPPING_NUM MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_SYM )
#if defined (MIRYOKU_LAYERS_FLIP )
#define MIRYOKU_LAYER_SYM MIRYOKU_ALTERNATIVES_SYM_FLIP
#else
#define MIRYOKU_LAYER_SYM MIRYOKU_ALTERNATIVES_SYM
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_SYM )
#define MIRYOKU_LAYERMAPPING_SYM MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_FUN )
#if defined (MIRYOKU_LAYERS_FLIP )
#define MIRYOKU_LAYER_FUN MIRYOKU_ALTERNATIVES_FUN_FLIP
#else
#define MIRYOKU_LAYER_FUN MIRYOKU_ALTERNATIVES_FUN
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_FUN )
#define MIRYOKU_LAYERMAPPING_FUN MIRYOKU_MAPPING
#endif
width = 8
results = '#define MIRYOKU_LAYER_LIST \\ \n '
for layer , name in layers_table :
stripped = layer .lstrip ('U_' )
results += 'MIRYOKU_X(' + ( stripped + ', ' ).ljust (width ) + '"' + name + '") \\ \n '
results = results .rstrip ('\\ \n ' )
return results
width = 9
results = ''
i = 0
for layer , name in layers_table :
results += '#define ' + ( layer + ' ' ).ljust (width ) + str (i ) + '\n '
i += 1
return results
Keycodes that match any of these prefixes will not have KC_
automatically
prepended.
U_ RGB_ OUT_ RESET S( C( G( SCMD( LCMD( DF( RALT( BL_ QK_ TD( CAPSWRD
License for tangled QMK C source files.
// 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/>.
Keycodes that match any of these prefixes will not have &kp
automatically
prepended.
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
<<table - layer - init (target = "qmk" )>>
<<license - qmk >>
#pragma once
#define MIRYOKU_ALTERNATIVES_BASE_AVERAK_FLIP \
<<table-layer-taphold(alphas_table=averak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP \
<<table-layer-taphold(alphas_table=azerty, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP \
<<table-layer-taphold(alphas_table=beakl15, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP \
<<table-layer-taphold(alphas_table=colemak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP \
<<table-layer-taphold(alphas_table=colemakdh, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP \
<<table-layer-taphold(alphas_table=colemakdhk, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP \
<<table-layer-taphold(alphas_table=dvorak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP \
<<table-layer-taphold(alphas_table=halmak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP \
<<table-layer-taphold(alphas_table=workman, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP \
<<table-layer-taphold(alphas_table=qwerty, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP \
<<table-layer-taphold(alphas_table=qwertz, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_AVERAK \
<<table-layer-taphold(alphas_table=averak)>>
#define MIRYOKU_ALTERNATIVES_BASE_AZERTY \
<<table-layer-taphold(alphas_table=azerty)>>
#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15 \
<<table-layer-taphold(alphas_table=beakl15)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK \
<<table-layer-taphold(alphas_table=colemak)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH \
<<table-layer-taphold(alphas_table=colemakdh)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK \
<<table-layer-taphold(alphas_table=colemakdhk)>>
#define MIRYOKU_ALTERNATIVES_BASE_DVORAK \
<<table-layer-taphold(alphas_table=dvorak)>>
#define MIRYOKU_ALTERNATIVES_BASE_HALMAK \
<<table-layer-taphold(alphas_table=halmak)>>
#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN \
<<table-layer-taphold(alphas_table=workman)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTY \
<<table-layer-taphold(alphas_table=qwerty)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ \
<<table-layer-taphold(alphas_table=qwertz)>>
#define MIRYOKU_ALTERNATIVES_TAP_AVERAK_FLIP \
<<table-layer-full(alphas_table=averak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP \
<<table-layer-full(alphas_table=azerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
<<table-layer-full(alphas_table=beakl15, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
<<table-layer-full(alphas_table=colemak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
<<table-layer-full(alphas_table=colemakdh, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
<<table-layer-full(alphas_table=colemakdhk, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
<<table-layer-full(alphas_table=dvorak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
<<table-layer-full(alphas_table=halmak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
<<table-layer-full(alphas_table=workman, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
<<table-layer-full(alphas_table=qwerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
<<table-layer-full(alphas_table=qwertz, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AVERAK \
<<table-layer-full(alphas_table=averak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
<<table-layer-full(alphas_table=azerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
<<table-layer-full(alphas_table=beakl15, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
<<table-layer-full(alphas_table=colemak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
<<table-layer-full(alphas_table=colemakdh, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
<<table-layer-full(alphas_table=colemakdhk, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
<<table-layer-full(alphas_table=dvorak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
<<table-layer-full(alphas_table=halmak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
<<table-layer-full(alphas_table=workman, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY \
<<table-layer-full(alphas_table=qwerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
<<table-layer-full(alphas_table=qwertz, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-l-invertedt, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_NAV_FLIP \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-l, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-r-invertedt, mode="r")>>
#define MIRYOKU_ALTERNATIVES_NAV_VI \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-r-vi, mode="r")>>
#define MIRYOKU_ALTERNATIVES_NAV \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-r, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-l-invertedt, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MOUSE_FLIP \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-l, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-r-invertedt, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MOUSE_VI \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-r-vi, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MOUSE \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-r, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-l-invertedt, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MEDIA_FLIP \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-l, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-r-invertedt, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MEDIA_VI \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-r-vi, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MEDIA \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-r, mode="r")>>
#define MIRYOKU_ALTERNATIVES_NUM_FLIP \
<<table-layer-half(current_layer_name="U_NUM", opposite_layer_name="U_NAV", half_table=num-r, mode="r", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_NUM \
<<table-layer-half(current_layer_name="U_NUM", opposite_layer_name="U_NAV", half_table=num-l, mode="l")>>
#define MIRYOKU_ALTERNATIVES_SYM_FLIP \
<<table-layer-half(current_layer_name="U_SYM", opposite_layer_name="U_MOUSE", half_table=sym-r, mode="r", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_SYM \
<<table-layer-half(current_layer_name="U_SYM", opposite_layer_name="U_MOUSE", half_table=sym-l, mode="l")>>
#define MIRYOKU_ALTERNATIVES_FUN_FLIP \
<<table-layer-half(current_layer_name="U_FUN", opposite_layer_name="U_MEDIA", half_table=fun-r, mode="r", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_FUN \
<<table-layer-half(current_layer_name="U_FUN", opposite_layer_name="U_MEDIA", half_table=fun-l, mode="l")>>
#define MIRYOKU_ALTERNATIVES_BUTTON \
<<table-layer-full(alphas_table=button, thumbs_table=button-thumbs)>>
// Copyright 2019 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
<<license - qmk >>
<<layer - body >>
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
<<license - qmk >>
#pragma once
#if !defined (MIRYOKU_LAYER_LIST )
<<layer - names - list ()>>
#endif
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
<<table - layer - init (target = "zmk" )>>
#pragma once
#define MIRYOKU_ALTERNATIVES_BASE_AVERAK_FLIP \
<<table-layer-taphold(alphas_table=averak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP \
<<table-layer-taphold(alphas_table=azerty, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP \
<<table-layer-taphold(alphas_table=beakl15, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP \
<<table-layer-taphold(alphas_table=colemak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP \
<<table-layer-taphold(alphas_table=colemakdh, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP \
<<table-layer-taphold(alphas_table=colemakdhk, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP \
<<table-layer-taphold(alphas_table=dvorak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP \
<<table-layer-taphold(alphas_table=halmak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP \
<<table-layer-taphold(alphas_table=workman, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP \
<<table-layer-taphold(alphas_table=qwerty, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP \
<<table-layer-taphold(alphas_table=qwertz, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_AVERAK \
<<table-layer-taphold(alphas_table=averak)>>
#define MIRYOKU_ALTERNATIVES_BASE_AZERTY \
<<table-layer-taphold(alphas_table=azerty)>>
#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15 \
<<table-layer-taphold(alphas_table=beakl15)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK \
<<table-layer-taphold(alphas_table=colemak)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH \
<<table-layer-taphold(alphas_table=colemakdh)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK \
<<table-layer-taphold(alphas_table=colemakdhk)>>
#define MIRYOKU_ALTERNATIVES_BASE_DVORAK \
<<table-layer-taphold(alphas_table=dvorak)>>
#define MIRYOKU_ALTERNATIVES_BASE_HALMAK \
<<table-layer-taphold(alphas_table=halmak)>>
#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN \
<<table-layer-taphold(alphas_table=workman)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTY \
<<table-layer-taphold(alphas_table=qwerty)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ \
<<table-layer-taphold(alphas_table=qwertz)>>
#define MIRYOKU_ALTERNATIVES_TAP_AVERAK_FLIP \
<<table-layer-full(alphas_table=averak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP \
<<table-layer-full(alphas_table=azerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
<<table-layer-full(alphas_table=beakl15, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
<<table-layer-full(alphas_table=colemak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
<<table-layer-full(alphas_table=colemakdh, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
<<table-layer-full(alphas_table=colemakdhk, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
<<table-layer-full(alphas_table=dvorak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
<<table-layer-full(alphas_table=halmak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
<<table-layer-full(alphas_table=workman, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
<<table-layer-full(alphas_table=qwerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
<<table-layer-full(alphas_table=qwertz, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AVERAK \
<<table-layer-full(alphas_table=averak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
<<table-layer-full(alphas_table=azerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
<<table-layer-full(alphas_table=beakl15, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
<<table-layer-full(alphas_table=colemak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
<<table-layer-full(alphas_table=colemakdh, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
<<table-layer-full(alphas_table=colemakdhk, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
<<table-layer-full(alphas_table=dvorak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
<<table-layer-full(alphas_table=halmak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
<<table-layer-full(alphas_table=workman, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY \
<<table-layer-full(alphas_table=qwerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
<<table-layer-full(alphas_table=qwertz, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-l-invertedt, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_NAV_FLIP \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-l, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-r-invertedt, mode="r")>>
#define MIRYOKU_ALTERNATIVES_NAV_VI \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-r-vi, mode="r")>>
#define MIRYOKU_ALTERNATIVES_NAV \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-r, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-l-invertedt, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MOUSE_FLIP \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-l, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-r-invertedt, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MOUSE_VI \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-r-vi, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MOUSE \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-r, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-l-invertedt, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MEDIA_FLIP \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-l, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-r-invertedt, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MEDIA_VI \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-r-vi, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MEDIA \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-r, mode="r")>>
#define MIRYOKU_ALTERNATIVES_NUM_FLIP \
<<table-layer-half(current_layer_name="U_NUM", opposite_layer_name="U_NAV", half_table=num-r, mode="r", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_NUM \
<<table-layer-half(current_layer_name="U_NUM", opposite_layer_name="U_NAV", half_table=num-l, mode="l")>>
#define MIRYOKU_ALTERNATIVES_SYM_FLIP \
<<table-layer-half(current_layer_name="U_SYM", opposite_layer_name="U_MOUSE", half_table=sym-r, mode="r", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_SYM \
<<table-layer-half(current_layer_name="U_SYM", opposite_layer_name="U_MOUSE", half_table=sym-l, mode="l")>>
#define MIRYOKU_ALTERNATIVES_FUN_FLIP \
<<table-layer-half(current_layer_name="U_FUN", opposite_layer_name="U_MEDIA", half_table=fun-r, mode="r", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_FUN \
<<table-layer-half(current_layer_name="U_FUN", opposite_layer_name="U_MEDIA", half_table=fun-l, mode="l")>>
#define MIRYOKU_ALTERNATIVES_BUTTON \
<<table-layer-full(alphas_table=button, thumbs_table=button-thumbs)>>
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
<<layer - body >>
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
#pragma once
#if !defined (MIRYOKU_LAYER_LIST )
<<layer - names - list ()>>
<<layer - names - defines ()>>
#endif
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
<<table - layer - init (target = "kmonad" )>>
#pragma once
#define MIRYOKU_ALTERNATIVES_BASE_AVERAK_FLIP \
<<table-layer-taphold(alphas_table=averak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP \
<<table-layer-taphold(alphas_table=azerty, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP \
<<table-layer-taphold(alphas_table=beakl15, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP \
<<table-layer-taphold(alphas_table=colemak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP \
<<table-layer-taphold(alphas_table=colemakdh, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP \
<<table-layer-taphold(alphas_table=colemakdhk, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP \
<<table-layer-taphold(alphas_table=dvorak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP \
<<table-layer-taphold(alphas_table=halmak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP \
<<table-layer-taphold(alphas_table=workman, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP \
<<table-layer-taphold(alphas_table=qwerty, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP \
<<table-layer-taphold(alphas_table=qwertz, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_BASE_AVERAK \
<<table-layer-taphold(alphas_table=averak)>>
#define MIRYOKU_ALTERNATIVES_BASE_AZERTY \
<<table-layer-taphold(alphas_table=azerty)>>
#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15 \
<<table-layer-taphold(alphas_table=beakl15)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK \
<<table-layer-taphold(alphas_table=colemak)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH \
<<table-layer-taphold(alphas_table=colemakdh)>>
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK \
<<table-layer-taphold(alphas_table=colemakdhk)>>
#define MIRYOKU_ALTERNATIVES_BASE_DVORAK \
<<table-layer-taphold(alphas_table=dvorak)>>
#define MIRYOKU_ALTERNATIVES_BASE_HALMAK \
<<table-layer-taphold(alphas_table=halmak)>>
#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN \
<<table-layer-taphold(alphas_table=workman)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTY \
<<table-layer-taphold(alphas_table=qwerty)>>
#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ \
<<table-layer-taphold(alphas_table=qwertz)>>
#define MIRYOKU_ALTERNATIVES_TAP_AVERAK_FLIP \
<<table-layer-full(alphas_table=averak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP \
<<table-layer-full(alphas_table=azerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
<<table-layer-full(alphas_table=beakl15, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
<<table-layer-full(alphas_table=colemak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
<<table-layer-full(alphas_table=colemakdh, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
<<table-layer-full(alphas_table=colemakdhk, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
<<table-layer-full(alphas_table=dvorak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
<<table-layer-full(alphas_table=halmak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
<<table-layer-full(alphas_table=workman, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
<<table-layer-full(alphas_table=qwerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
<<table-layer-full(alphas_table=qwertz, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AVERAK \
<<table-layer-full(alphas_table=averak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
<<table-layer-full(alphas_table=azerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
<<table-layer-full(alphas_table=beakl15, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
<<table-layer-full(alphas_table=colemak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
<<table-layer-full(alphas_table=colemakdh, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
<<table-layer-full(alphas_table=colemakdhk, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
<<table-layer-full(alphas_table=dvorak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
<<table-layer-full(alphas_table=halmak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
<<table-layer-full(alphas_table=workman, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY \
<<table-layer-full(alphas_table=qwerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
<<table-layer-full(alphas_table=qwertz, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-l-invertedt, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_NAV_FLIP \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-l, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-r-invertedt, mode="r")>>
#define MIRYOKU_ALTERNATIVES_NAV_VI \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-r-vi, mode="r")>>
#define MIRYOKU_ALTERNATIVES_NAV \
<<table-layer-half(current_layer_name="U_NAV", opposite_layer_name="U_NUM", half_table=nav-r, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-l-invertedt, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MOUSE_FLIP \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-l, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-r-invertedt, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MOUSE_VI \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-r-vi, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MOUSE \
<<table-layer-half(current_layer_name="U_MOUSE", opposite_layer_name="U_SYM", half_table=mouse-r, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-l-invertedt, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MEDIA_FLIP \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-l, mode="l", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-r-invertedt, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MEDIA_VI \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-r-vi, mode="r")>>
#define MIRYOKU_ALTERNATIVES_MEDIA \
<<table-layer-half(current_layer_name="U_MEDIA", opposite_layer_name="U_FUN", half_table=media-r, mode="r")>>
#define MIRYOKU_ALTERNATIVES_NUM_FLIP \
<<table-layer-half(current_layer_name="U_NUM", opposite_layer_name="U_NAV", half_table=num-r, mode="r", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_NUM \
<<table-layer-half(current_layer_name="U_NUM", opposite_layer_name="U_NAV", half_table=num-l, mode="l")>>
#define MIRYOKU_ALTERNATIVES_SYM_FLIP \
<<table-layer-half(current_layer_name="U_SYM", opposite_layer_name="U_MOUSE", half_table=sym-r, mode="r", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_SYM \
<<table-layer-half(current_layer_name="U_SYM", opposite_layer_name="U_MOUSE", half_table=sym-l, mode="l")>>
#define MIRYOKU_ALTERNATIVES_FUN_FLIP \
<<table-layer-half(current_layer_name="U_FUN", opposite_layer_name="U_MEDIA", half_table=fun-r, mode="r", hold_table=hold-flip)>>
#define MIRYOKU_ALTERNATIVES_FUN \
<<table-layer-half(current_layer_name="U_FUN", opposite_layer_name="U_MEDIA", half_table=fun-l, mode="l")>>
#define MIRYOKU_ALTERNATIVES_BUTTON \
<<table-layer-full(alphas_table=button, thumbs_table=button-thumbs)>>
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
<<layer - body >>
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
#pragma once
#if !defined (MIRYOKU_LAYER_LIST )
<<layer - names - list ()>>
#endif