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 .
Overview
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.
Tangling
Locally
Emacs, python, and org 9.4 or later are required.
Within Emacs
Initial Setup
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 )
Tangle
Call org-babel-tangle
(C-c
C-v
t
).
Outside Emacs
See the Install Org and Tangle steps in .github/workflows/main.yml for example shell commands that can be run locally.
GitHub Actions Workflow
Initial Setup
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 .
Tangle
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.
Layer Tables
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 a common 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.
Base
Tap
Alphas
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 BSPC DOT ,
Thumbs
U_NP U_NP ESC SPC TAB ENT BSPC DEL U_NP U_NP
Hold
BOOT DF(U_TAP) DF(U_EXTRA) DF(U_BASE) DF(U_BASE) DF(U_EXTRA) DF(U_TAP) BOOT
LGUI LALT LCTL LSFT LSFT LCTL LALT LGUI
U_BUTTON ALGR LOCK_OPP LOCK_CUR LOCK_CUR LOCK_OPP ALGR U_BUTTON
U_NP U_NP U_MEDIA U_NAV U_MOUSE U_SYM U_NUM U_FUN U_NP U_NP
Nav
U_RDO U_PST U_CPY U_CUT U_UND
CPSWRD LEFT DOWN UP RGHT
INS HOME PGDN PGUP END
ENT BSPC DEL U_NP U_NP
Mouse
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
BTN2 BTN1 BTN3 U_NP U_NP
Button
COLONQ COLONW COLONWQ COLONQEX : ALGR_Y ( )
ALGR_Q AUTOCLOS_CURLYBRA ALGR_S AUTOCLOS_SQBRA AUTOCLOS_ANGLEBRA TODO AUTOCLOS_QUOTE AUTOCLOS_PAREN FIFTEENSTARS ALGR_P
VOLD VOLU MUTE < LEFTARR ELLIPSIS RIGHTARR >
U_NP U_NP REC_STOP REC_PLAY2 REC_START2 REC_START1 REC_PLAY1 REC_STOP U_NP U_NP
Media
RGB_TOG RGB_MOD RGB_HUI RGB_SAI RGB_VAI
EP_TOG MPRV VOLD VOLU MNXT
OUT_TOG BT_SEL_0 BT_SEL_1 BT_SEL_2 BT_SEL_3
MSTP MPLY MUTE U_NP U_NP
Num
[ 7 8 9 ]
; 4 5 6 =
` 1 2 3 \
U_NP U_NP DOT 0 MINS
Sym
{ & * ( }
: $ % ^ +
~ ! @ # PIPE
U_NP U_NP ( ) _
Fun
F12 F7 F8 F9 PSCR
F11 F4 F5 F6 SLCK
F10 F1 F2 F3 PAUS
U_NP U_NP APP SPC TAB
Alternative Layouts
Alphas
AZERTY
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 / ’
BEAKL-15
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
Colemak
MIRYOKU_ALPHAS=COLEMAK
Q W F P G J L U Y ’
A R S T D M N E I O
Z X C V B K H BSPC DOT ,
Colemak Mod-DHk
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 /
Dvorak
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
Halmak
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
Workman
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 /
QWERTY
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 /
QWERTZ
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 /
Nav
vi-Style
MIRYOKU_NAV=VI
Not available with MIRYOKU_LAYERS=FLIP
.
Nav
U_RDO U_PST U_CPY U_CUT U_UND
LEFT DOWN UP RGHT CPSWRD
HOME PGDN PGUP END INS
ENT BSPC DEL U_NP U_NP
Mouse
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
BTN2 BTN1 BTN3 U_NP U_NP
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
MSTP MPLY MUTE U_NP U_NP
Inverted-T
MIRYOKU_NAV=INVERTEDT
Nav
INS HOME UP END PGUP
CPSWRD LEFT DOWN RGHT PGDN
U_RDO U_PST U_CPY U_CUT U_UND
ENT BSPC DEL U_NP U_NP
Mouse
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
BTN2 BTN1 BTN3 U_NP U_NP
Media
RGB_TOG RGB_MOD VOLU RGB_HUI RGB_SAI
EP_TOG MPRV VOLD MNXT RGB_VAI
OUT_TOG BT_SEL_0 BT_SEL_1 BT_SEL_2 BT_SEL_3
MSTP MPLY MUTE U_NP U_NP
Layers
Flip
MIRYOKU_LAYERS=FLIP
Thumbs
U_NP U_NP APP_SWITCHER OSL_U_NUM_ESC OSM_LSFT_ENT SPC SPC REPEAT U_NP U_NP
Hold
BOOT DF(U_TAP) DF(U_EXTRA) DF(U_BASE) DF(U_BASE) DF(U_EXTRA) DF(U_TAP) BOOT
LGUI LALT LCTL LSFT LSFT LCTL LALT LGUI
U_BUTTON U_FUN ALGR U_SYM LOCK_CUR U_NAV LOCK_OPP U_MEDIA U_BUTTON
U_NP U_NP U_NA U_NA U_NA U_MOUSE U_NAV U_NA U_NP U_NP
Num Half-table
[ 7 8 9 ]
= 4 5 6 -
\ 1 2 3 `
_ 0 DOT U_NP U_NP
Full-table
CG_LEFT CG_RIGHT TAB DEL ESC [ 7 8 9 ]
LGUI LALT LCTL LSFT_SLSH ? = 4 5 6 MINS
U_UND U_CUT U_CPY U_PST U_RDO \ 1 2 3 `
U_NP U_NP DF(U_BASE) U_NA * _ 0 DOT U_NP U_NP
Sym
{ & * ( }
+ $ % ^ _
PIPE ! @ # ~
MINS ) U_NP U_NP U_NP
Fun
PSCR F7 F8 F9 F12
SLCK F4 F5 F6 F11
PAUS F1 F2 F3 F10
TAB SPC ESC U_NP U_NP
Nav DefaultNav
HOME PGDN PGUP END INS
LEFT DOWN UP RGHT CPSWRD
U_UND U_CUT U_CPY U_PST U_RDO
U_NP U_NP DEL BSPC ENT
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 BTN3 BTN1 BTN2
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 CPSWRD
BSPC U_CUT U_CPY U_PST DEL
U_NP U_NP ESC APP ENT
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 BTN3 BTN1 BTN2
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
Scripts and Data
Common
layers
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-names
Symbol to name mappings for use in tables.
` GRV
”-” MINS
= EQL
[ LBRC
] RBRC
\ BSLS
; SCLN
‘ QUOT
, COMM
”.” DOT
/ SLSH
~ TILD
_ UNDS
+ PLUS
{ LCBR
} RCBR
: COLN
< LT
> GT
? QUES
! EXLM
@ AT
# HASH
$ DLR
% PERC
^ CIRC
& AMPR
* ASTR
( LPRN
) RPRN
shifted-names
Shifted mappings for use in tables.
GRV TILD
MINS UNDS
EQL PLUS
LBRC LCBR
RBRC RCBR
BSLS PIPE
SCLN COLN
QUOT DQUO
COMM LT
DOT GT
SLSH QUES
1 EXLM
2 AT
3 HASH
4 DLR
5 PERC
6 CIRC
7 AMPR
8 ASTR
9 LPRN
0 RPRN
BT_SEL_0 BT_CLR_0
BT_SEL_1 BT_CLR_1
BT_SEL_2 BT_CLR_2
BT_SEL_3 BT_CLR_3
BT_SEL_4 BT_CLR_4
CPSWRD CAPS
EP_TOG EP_OFF
OUT_TOG OUT_USB
RGB_HUI RGB_HUD
RGB_MOD RGB_RMOD
RGB_SAI RGB_SAD
RGB_TOG RGB_OFF
RGB_VAI RGB_VAD
mods
Modifiers usable in hold table. Need to have the same name for KC_
and _T
versions.
keycode-translation
Source keycode to implementation equivalent (source, QMK, ZMK, KMonad, SVG, KMK).
A A A a A A
B B B b B B
C C C c C C
D D D d D D
E E E e E E
F F F f F F
G G G g G G
H H H h H H
I I I i I I
J J J j J J
K K K k K K
L L L l L L
M M M m M M
N N N n N N
O O O o O O
P P P p P P
Q Q Q q Q Q
R R R r R R
S S S s S S
T T T t T T
U U U u U U
V V V v V V
W W W w W W
X X X x X X
Y Y Y y Y Y
Z Z Z z Z Z
0 0 N0 0 0 N0
1 1 N1 1 1 N1
2 2 N2 2 2 N2
3 3 N3 3 3 N3
4 4 N4 4 4 N4
5 5 N5 5 5 N5
6 6 N6 6 6 N6
7 7 N7 7 7 N7
8 8 N8 8 8 N8
9 9 N9 9 9 N9
ALGR ALGR RALT ralt AltGr RALT
AMPR AMPR AMPS & & AMPR
APP APP K_APP comp App APP
ASTR ASTR ASTRK * * ASTR
AT AT AT @ @ AT
BSLS BSLS BSLH \ \ BSLS
BSPC BSPC BSPC bspc Back Space BSPC
BOOT TD(U_TD_BOOT) U_BOOT U_BOOT U_BOOT
BT_CLR &bt BT_CLR BT Clear
BT_CLR_0 BT 0 Clear
BT_CLR_1 BT 1 Clear
BT_CLR_2 BT 2 Clear
BT_CLR_3 BT 3 Clear
BT_CLR_4 BT 4 Clear
BT_SEL_0 &u_bt_sel_0 BT 0 Select
BT_SEL_1 &u_bt_sel_1 BT 1 Select
BT_SEL_2 &u_bt_sel_2 BT 2 Select
BT_SEL_3 &u_bt_sel_3 BT 3 Select
BT_SEL_4 &u_bt_sel_4 BT 4 Select
BTN1 BTN1 U_BTN1 #(kp/ kp5) Left Button MB_LMB
BTN2 BTN2 U_BTN2 #(kp- kp5) Right Button MB_RMB
BTN3 BTN3 U_BTN3 #(kp* kp5) Middle Button MB_MMB
CAPS CAPS CAPS caps Caps Lock CAPS
CIRC CIRC CARET ^ ^ CIRC
COLN COLN COLON : : COLN
COMM COMM COMMA U_COMM S_COMM COMM
CPSWRD CW_TOGG &u_caps_word caps Caps Word U_CW
DEL DEL DEL del Delete DEL
DF(U_BASE) TD(U_TD_U_BASE) &u_to_U_BASE U_DF(U_BASE) U_DF(U_BASE) U_DF(U_BASE)
DF(U_EXTRA) TD(U_TD_U_EXTRA) &u_to_U_EXTRA U_DF(U_EXTRA) U_DF(U_EXTRA) U_DF(U_EXTRA)
DF(U_TAP) TD(U_TD_U_TAP) &u_to_U_TAP U_DF(U_TAP) U_DF(U_TAP) U_DF(U_TAP)
DLR DLR DLLR $ $ DLR
DOT DOT DOT . . DOT
DOWN DOWN DOWN down Down DOWN
DQUO DQUO DQT U_DQUO " DQUO
END END END end End END
ENT ENT RET ent Enter ENT
EP_OFF EP Off PS_OFF
EP_TOG U_EP_TOG EP Toggle PS_TOG
EQL EQL EQUAL = = EQL
ESC ESC ESC esc Esc ESC
EXLM EXLM EXCL ! ! EXLM
F1 F1 F1 f1 F1 F1
F2 F2 F2 f2 F2 F2
F3 F3 F3 f3 F3 F3
F4 F4 F4 f4 F4 F4
F5 F5 F5 f5 F5 F5
F6 F6 F6 f6 F6 F6
F7 F7 F7 f7 F7 F7
F8 F8 F8 f8 F8 F8
F9 F9 F9 f9 F9 F9
F10 F10 F10 f10 F10 F10
F11 F11 F11 f11 F11 F11
F12 F12 F12 f12 F12 F12
GRV GRV GRAVE ` ` GRV
GT GT GT > > RABK
HASH HASH HASH # # HASH
HOME HOME HOME home Home HOME
INS INS INS ins Insert INS
LALT LALT LALT alt Alt LALT
LBRC LBRC LBKT [ [ LBRC
LCBR LCBR LBRC { { LCBR
LCTL LCTL LCTRL ctl Ctrl LCTL
LEFT LEFT LEFT left Left LEFT
LGUI LGUI LGUI met Meta LGUI
LPRN LPRN LPAR U_LPRN S_LPRN LPRN
LSFT LSFT LSHFT sft Shift LSFT
LT LT LT < < LABK
MINS MINS MINUS - - MINS
MNXT MNXT C_NEXT nextsong Next MNXT
MPLY MPLY C_PP playpause Play Pause MPLY
MPRV MPRV C_PREV previoussong Prev MPRV
MS_D MS_D U_MS_D kp2 Mouse Down MS_DN
MS_L MS_L U_MS_L kp4 Mouse Left MS_LT
MS_R MS_R U_MS_R kp6 Mouse Right MS_RT
MS_U MS_U U_MS_U kp8 Mouse Up MS_UP
MSTP MSTP C_STOP stopcd Stop MSTP
MUTE MUTE C_MUTE mute Mute MUTE
NO NO &none XX NO
OUT_TOG OU_AUTO &u_out_tog Out Toggle HID
OUT_BT OU_BT &out OUT_BT Out BT
OUT_USB OU_USB &out OUT_USB Out USB
PAUS PAUS PAUSE_BREAK pause Pause Break PAUS
PERC PERC PRCNT % % PERC
PGDN PGDN PG_DN pgdn Page Down PGDN
PGUP PGUP PG_UP pgup Page Up PGUP
PIPE PIPE PIPE U_PIPE S_PIPE PIPE
PLUS PLUS PLUS + + PLUS
PSCR PSCR PSCRN sysrq PrtScn SysRq PSCR
QUES QUES QMARK ? ? QUES
QUOT QUOT SQT U_QUOT ’ QUOT
RBRC RBRC RBKT ] ] RBRC
RCBR RCBR RBRC } } RCBR
RESET QK_RBT &reset Reset RESET
RGB_HUD RGB_HUD RGB Hue - U_RGB_HUD
RGB_HUI RGB_HUI U_RGB_HUI RGB Hue + U_RGB_HUI
RGB_MOD RGB_MOD U_RGB_EFF RGB Mode + U_RGB_MOD
RGB_RMOD RGB_RMOD RGB Mode - U_RGB_RMOD
RGB_OFF RGB Off U_RGB_OFF
RGB_SAD RGB_SAD RGB Sat - U_RGB_SAD
RGB_SAI RGB_SAI U_RGB_SAI RGB Sat + U_RGB_SAI
RGB_TOG RGB_TOG U_RGB_TOG RGB Toggle U_RGB_TOG
RGB_VAD RGB_VAD RGB Value - U_RGB_VAD
RGB_VAI RGB_VAI U_RGB_BRI RGB Value + U_RGB_VAI
RGHT RGHT RIGHT right Right RGHT
RPRN RPRN RPAR U_RPRN S_RPRN RPRN
SCLN SCLN SEMI ; ; SCLN
SLCK SCRL SLCK slck Scroll Lock SLCK
SLSH SLSH SLASH / / SLSH
SPC SPC SPACE spc Space SPC
TAB TAB TAB tab Tab TAB
TILD TILD TILDE ~ ~ TILD
TRNS TRNS &trans _ Trans TRNS
UNDS UNDS UNDER \_ _ UNDS
UP UP UP up Up UP
VOLD VOLD C_VOL_DN vold Volume Down VOLD
VOLU VOLU C_VOL_UP volu Volume Up VOLU
WH_D WH_D U_WH_D Scroll Down MW_DN
WH_L WH_L U_WH_L Scroll Left
WH_R WH_R U_WH_R Scroll Right
WH_U WH_U U_WH_U Scroll Up MW_UP
REC_START1 QK_DYNAMIC_MACRO_RECORD_START_1
REC_PLAY1 QK_DYNAMIC_MACRO_PLAY_1
REC_STOP QK_DYNAMIC_MACRO_RECORD_STOP
REC_START2 QK_DYNAMIC_MACRO_RECORD_START_2
REC_PLAY2 QK_DYNAMIC_MACRO_PLAY_2
OSL_U_NUM OSL(U_NUM) &sl U_NUM
OSL_U_NUM_ESC TD(OSL_U_NUM_ESC) &td_skq U_NUM
OSM_LSFT OSM(MOD_LSFT) &skq LSHFT
OSM_LSFT_ENT TD(OSM_LSFT_ENT) &td_skq LSHFT
ALGR_Q RALT(KC_Q) RA(Q)
ALGR_P RALT(KC_P) RA(P)
ALGR_S RALT(KC_S) RA(S)
ALGR_Y RALT(KC_Y) RA(Y)
CG_LEFT C(G(KC_LEFT)) LC(LG(LEFT))
CG_RIGHT C(G(KC_RIGHT)) LC(LG(RIGHT))
APP_SWITCHER AT_SPECIAL LA(TAB)
REPEAT REPEAT &key_repeat
LSFT_SLSH LSFT_T(KC_SLSH) &mt LSHIFT SLASH
table-layer-init
import os
def wrap_basic (code ):
if not str (code ).startswith (nonbasic_tuple ):
code = basic_prefix + str (code ) + basic_suffix
return code
def convert_symbol (code ):
if code in symbol_names_dict :
code = symbol_names_dict [code ]
return code
def get_translated (code ):
if code in keycode_translation_dict :
code = keycode_translation_dict [code ]
return code
def get_shifted (code ):
if code in shifted_symbol_names_dict :
code = shifted_symbol_names_dict [code ]
code = get_translated (code )
else :
code = None
return code
def trim_shifted (code , shifted_code ):
code = str (code )
shifted_code = str (shifted_code )
prefix = os .path .commonprefix ([code , shifted_code ])
space_index = prefix .find (" " )
doublespace_index = prefix .find (" " )
if space_index != - 1 and space_index != doublespace_index :
index = space_index + 1
else :
index = len (prefix )
shifted_code = shifted_code [index :]
return shifted_code
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 in symbol_names_table :
symbol_names_dict [symbol ] = name
for name , shifted_name in shifted_names_table :
shifted_symbol_names_dict [name ] = shifted_name
keycode_translation_dict = {}
if target == 'qmk' :
nonbasic_tuple = tuple (nonkc_table [0 ])
basic_prefix = 'KC_'
basic_suffix = ''
for source , qmk , zmk , kmonad , long , kmk in keycode_translation_table :
keycode_translation_dict [source ] = qmk
elif target == 'zmk' :
nonbasic_tuple = tuple (nonkp_table [0 ])
basic_prefix = '&kp '
basic_suffix = ''
for source , qmk , zmk , kmonad , long , kmk in keycode_translation_table :
keycode_translation_dict [source ] = zmk
elif target == 'kmonad' :
nonbasic_tuple = ()
basic_prefix = ''
basic_suffix = ''
for source , qmk , zmk , kmonad , long , kmk in keycode_translation_table :
keycode_translation_dict [source ] = kmonad
elif target == 'svg' :
nonbasic_tuple = tuple (nonquote_table [0 ])
basic_prefix = '"'
basic_suffix = '"'
for source , qmk , zmk , kmonad , long , kmk in keycode_translation_table :
keycode_translation_dict [source ] = long
elif target == 'kmk' :
nonbasic_tuple = tuple (nonkcdot_table [0 ])
basic_prefix = 'KC.'
basic_suffix = ''
for source , qmk , zmk , kmonad , long , kmk in keycode_translation_table :
keycode_translation_dict [source ] = kmk
results = '// target: ' + target
results
table-layer-taphold
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
code = convert_symbol (code )
shifted_code = get_shifted (code )
code = get_translated (code )
if code == '' :
code = 'U_NU'
if hold in mods_dict :
hold = get_translated (hold )
if target == 'qmk' :
code = wrap_basic (code )
code = str (hold ) + '_T(' + code + ')'
elif target == 'zmk' :
code = 'U_MT(' + str (hold ) + ', ' + code + ')'
elif target == 'kmonad' :
code = 'U_MT(' + code + ', ' + str (hold ) + ')'
elif target == 'svg' :
code = wrap_basic (code )
hold = wrap_basic (hold )
if shifted_code != None :
shifted_code = wrap_basic (shifted_code )
code = 'U_SMT(' + shifted_code + ', ' + code + ', ' + hold + ')'
else :
code = 'U_MT(' + code + ', ' + hold + ')'
elif target == 'kmk' :
code = wrap_basic (code )
hold = wrap_basic (hold )
code = 'U_MT(' + code + ',' + hold + ')'
elif hold in layers_dict :
if target == 'qmk' :
code = wrap_basic (code )
code = 'LT(' + str (hold ) + ',' + code + ')'
elif target == 'zmk' :
code = 'U_LT(' + str (hold ) + ', ' + code + ')'
elif target == 'kmonad' :
code = 'U_LT(' + code + ', ' + str (hold ) + ')'
elif target == 'svg' :
code = wrap_basic (code )
if shifted_code != None :
shifted_code = wrap_basic (shifted_code )
code = 'U_SLT(' + shifted_code + ', ' + code + ', ' + str (hold ) + ')'
else :
code = 'U_LT(' + code + ', ' + str (hold ) + ')'
if target == 'kmk' :
code = wrap_basic (code )
code = 'U_LT(' + str (hold ) + ',' + code + ')'
else :
if target == 'svg' and shifted_code != None :
shifted_code = trim_shifted (code , shifted_code )
shifted_code = wrap_basic (shifted_code )
code = wrap_basic (code )
code = 'U_S(' + shifted_code + ', ' + code + ')'
else :
code = wrap_basic (code )
results += (code + ',' ).ljust (width )
results += '\\ \n '
results = results .rstrip (', \\ \n ' )
results
table-layer-half
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 :
code = half
code = convert_symbol (code )
shifted_code = get_shifted (code )
if shift == "true" and shifted_code != None :
code = shifted_code
elif target == 'svg' and shifted_code != None :
code = get_translated (code )
shifted_code = trim_shifted (code , shifted_code )
code = 'U_S(' + str (wrap_basic (shifted_code )) + ', ' + str (wrap_basic (code )) + ')'
code = get_translated (code )
if code == '' :
code = 'U_NU'
code = wrap_basic (code )
results += (str (code ) + ',' ).ljust (width )
else :
for hold in hold_row_lr :
if hold in mods_dict :
code = wrap_basic (get_translated (hold ))
else :
hold = get_translated (hold )
if hold == '' or hold in layers_dict :
code = 'U_NA'
if target == 'svg' and hold == current_layer_name :
code = 'U_HELD(' + code + ')'
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 = 'TD(U_TD_' + layer_name + ')'
elif target == 'zmk' :
code = '&u_to_' + layer_name
elif target == 'kmonad' :
code = 'U_DF(' + layer_name + ')'
elif target == 'svg' :
code = 'U_DF(' + layer_name + ')'
elif target == 'kmk' :
code = 'U_DF(' + layer_name + ')'
else :
code = wrap_basic (hold )
results += (str (code ) + ',' ).ljust (width )
results += '\\ \n '
results = results .rstrip (', \\ \n ' )
results
table-layer-full
Produce full layer from single table. Fill for unused keys is configurable.
results = ''
for full_row , hold_row in zip (alphas_table + thumbs_table , hold_table ):
for key , hold in zip (full_row , hold_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 = wrap_basic (code )
if target == 'svg' and hold == current_layer_name :
code = 'U_HELD(' + code + ')'
results += (code + ',' ).ljust (width )
results += '\\ \n '
results = results .rstrip (', \\ \n ' )
results
layer-body
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_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_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_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_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_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_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
layer-names-list
width = 8
results = '#define MIRYOKU_LAYER_LIST \\ \n '
for layer , name in layers_table :
stripped = layer .lstrip ('U_' )
results += 'MIRYOKU_X(' + ( stripped + ', ' ).ljust (width )
results += '"' + name + '"'
results += ') \\ \n '
results = results .rstrip (' \\ \n ' )
return results
layer-names-defines
width = 9
results = ''
i = 0
for layer , name in layers_table :
results += '#define ' + ( layer + ' ' ).ljust (width )
if target == 'zmk' or target == 'kmk' :
results += str (i ) + '\n '
elif target == 'svg' :
results += '"' + name + '"' + '\n '
i += 1
results = results .rstrip ('\n ' )
return results
Miryoku QMK
nonkc
Keycodes that match any of these prefixes will not have KC_
automatically
prepended.
U_ RGB_ OU_ QK_ S( C( SCMD( LCMD( TD( CW_TOGG DYN_ OSL( OSM( RALT( LSFT_T( APP_SWITCHER
license-qmk
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/>.
Miryoku ZMK
nonkp
Keycodes that match any of these prefixes will not have &kp
automatically
prepended.
Miryoku SVG
nonquote
Keycodes that match any of these prefixes will not be automatically quoted.
Miryoku KMK
nonkcdot
Keycodes that match any of these prefixes will not have KC.
automatically prepended.
Tangled Files
Miryoku QMK
// 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_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_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_AZERTY_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=azerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=beakl15, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdh, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdhk, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=dvorak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=halmak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=workman, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwertz, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=azerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=beakl15, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdh, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdhk, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=dvorak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=halmak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=workman, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
<<table-layer-full(current_layer_name="U_TAP", 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-full(alphas_table=num-r-full-table, thumbs_table=num-r-full-table-thumbs)>>
#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(current_layer_name="U_BUTTON", 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
Miryoku ZMK
// 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_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_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_AZERTY_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=azerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=beakl15, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdh, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdhk, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=dvorak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=halmak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=workman, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwertz, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=azerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=beakl15, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdh, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdhk, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=dvorak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=halmak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=workman, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
<<table-layer-full(current_layer_name="U_TAP", 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-full(alphas_table=num-r-full-table, thumbs_table=num-r-full-table-thumbs)>>
#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(current_layer_name="U_BUTTON", 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 (target = "zmk" )>>
#endif
Miryoku KMonad
// 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_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_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_AZERTY_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=azerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=beakl15, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdh, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdhk, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=dvorak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=halmak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=workman, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwertz, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=azerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=beakl15, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdh, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdhk, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=dvorak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=halmak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=workman, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
<<table-layer-full(current_layer_name="U_TAP", 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-full(alphas_table=num-r-full-table, thumbs_table=num-r-full-table-thumbs)>>
#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(current_layer_name="U_BUTTON", 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
Miryoku SVG
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
<<table - layer - init (target = "svg" )>>
#pragma once
#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_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_AZERTY_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=azerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=beakl15, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdh, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdhk, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=dvorak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=halmak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=workman, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwertz, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=azerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=beakl15, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdh, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdhk, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=dvorak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=halmak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=workman, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
<<table-layer-full(current_layer_name="U_TAP", 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(current_layer_name="U_BUTTON", 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 (target = "svg" )>>
<<layer - names - defines (target = "svg" )>>
#endif
Miryoku KMK
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
<<table - layer - init (target = "kmk" )>>
#pragma once
#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_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_AZERTY_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=azerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=beakl15, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdh, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdhk, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=dvorak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=halmak, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=workman, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwerty, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwertz, thumbs_table=thumbs-flip)>>
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=azerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=beakl15, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdh, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=colemakdhk, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=dvorak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=halmak, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=workman, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY \
<<table-layer-full(current_layer_name="U_TAP", alphas_table=qwerty, thumbs_table=thumbs)>>
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
<<table-layer-full(current_layer_name="U_TAP", 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(current_layer_name="U_BUTTON", 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 (target = "kmk" )>>
#endif