mirror of
https://github.com/ClaytonWWilson/miryoku_zmk.git
synced 2025-12-13 09:48:47 +00:00
26 KiB
26 KiB
Miryoku ZMK Babel 
- Layers
- Code Generation
Layers
Base (BASE)
Tap
| 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 | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP |
Hold
| RESET | DF(TAP) | DF(TAP) | RESET | ||||||
| LGUI | LALT | LCTL | LSFT | LSFT | LCTL | LALT | LGUI | ||
| MBO | ALGR | ALGR | MBO | ||||||
| U_NP | U_NP | MEDR | NAVR | MOUR | NSSL | NSL | FUNL | U_NP | U_NP |
Navigation (NAVR)
| U_RDO | U_PST | U_CPY | U_CUT | U_UND |
| CAPS | LEFT | DOWN | UP | RGHT |
| INS | HOME | PGDN | PGUP | END |
| ENT | BSPC | DEL | U_NP | U_NP |
Mouse (MOUR)
| MS_L | MS_D | MS_U | MS_R | |
| U_MT | WH_L | WH_D | WH_U | WH_R |
| BTN1 | BTN3 | BTN2 | U_NP | U_NP |
Mouse Buttons Overlay (MBO)
| U_RDO | U_PST | U_CPY | U_CUT | U_UND | U_RDO | U_PST | U_CPY | U_CUT | U_UND |
| LGUI | LALT | LCTL | LSFT | LSFT | LCTL | LALT | LGUI | ||
| U_RDO | U_PST | U_CPY | U_CUT | U_UND | U_RDO | U_PST | U_CPY | U_CUT | U_UND |
| U_NP | U_NP | BTN2 | BTN3 | BTN1 | BTN1 | BTN3 | BTN2 | U_NP | U_NP |
Media (MEDR)
BT control is on the bottom row, and USB / BT output toggle on the home row inner index.
| RGB_TOG | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI |
| &out OUT_TOG | MPRV | VOLD | VOLU | MNXT |
| &bt BT_CLR | &bt BT_SEL 0 | &bt BT_SEL 1 | &bt BT_SEL 2 | &bt BT_SEL 3 |
| MSTP | MPLY | MUTE | U_NP | U_NP |
Numerals and Symbols (NSL)
| [ | 7 | 8 | 9 | ] |
| ; | 4 | 5 | 6 | = |
| ` | 1 | 2 | 3 | \ |
| U_NP | U_NP | DOT | 0 | MINS |
Shifted Numerals and Symbols (NSSL)
| { | & | * | ( | } |
| : | $ | % | ^ | + |
| ~ | ! | @ | # | PIPE |
| U_NP | U_NP | ( | ) | _ |
Function and System (FUNL)
| F12 | F7 | F8 | F9 | PSCR |
| F11 | F4 | F5 | F6 | SLCK |
| F10 | F1 | F2 | F3 | PAUS |
| U_NP | U_NP | APP | SPC | TAB |
Alternative Layouts
To select, translate the = to _ and add a #define to your keymap file
before the includes, e.g. for MIRYOKU_ALPHAS=QWERTY add #define
MIRYOKU_ALPHAS_QWERTY.
Base Layer Alphas
Colemak
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 | / |
| U_NP | U_NP | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP |
Colemak Mod-DH
MIRYOKU_ALPHAS=COLEMAKDH
| 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 | / |
| U_NP | U_NP | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP |
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 |
| U_NP | U_NP | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP |
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 |
| U_NP | U_NP | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP |
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 | / |
| U_NP | U_NP | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP |
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 | / |
| U_NP | U_NP | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP |
vi-Style Navigation
MIRYOKU_NAV=VI
Navigation (NAVR)
| U_RDO | U_PST | U_CPY | U_CUT | U_UND |
| LEFT | DOWN | UP | RGHT | CAPS |
| HOME | PGDN | PGUP | END | INS |
| ENT | BSPC | DEL | U_NP | U_NP |
Mouse (MOUR)
| MS_L | MS_D | MS_U | MS_R | |
| WH_L | WH_D | WH_U | WH_R | |
| BTN1 | BTN3 | BTN2 | U_NP | U_NP |
Media (MEDR)
| RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | RGB_TOG |
| MPRV | VOLD | VOLU | MNXT | &out OUT_TOG |
| &bt BT_SEL 0 | &bt BT_SEL 1 | &bt BT_SEL 2 | &bt BT_SEL 3 | &bt BT_CLR |
| MSTP | MPLY | MUTE | U_NP | U_NP |
Navigation Layer Clipboard Keys
Default
| U_RDO | AGIN |
| U_PST | S(KC_INS) |
| U_CPY | C(KC_INS) |
| U_CUT | S(KC_DEL) |
| U_UND | UNDO |
Fun Cluster
MIRYOKU_CLIPBOARD=FUN
| U_RDO | AGIN |
| U_PST | PSTE |
| U_CPY | COPY |
| U_CUT | CUT |
| U_UND | UNDO |
Mac
MIRYOKU_CLIPBOARD=MAC
| U_RDO | SCMD(KC_Z) |
| U_PST | LCMD(KC_V) |
| U_CPY | LCMD(KC_C) |
| U_CUT | LCMD(KC_X) |
| U_UND | LCMD(KC_Z) |
Windows
MIRYOKU_CLIPBOARD=WIN
| U_RDO | C(KC_Y) |
| U_PST | C(KC_V) |
| U_CPY | C(KC_C) |
| U_CUT | C(KC_X) |
| U_UND | C(KC_Z) |
COMMENT Templates
| U_NP | U_NP | U_NP | U_NP |
| ENT | BSPC | DEL | U_NP | U_NP |
| U_NP | U_NP | ESC | SPC | TAB |
Code Generation
Table Conversion Scripts
table-map-taphold
width = 14
mods_dict = dict.fromkeys(mods_table[0])
nonkp_tuple = tuple(nonkp_table[0])
layers_dict = dict.fromkeys(layers_table[0])
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
keycode_translation_dict = {}
for standard, local in keycode_translation_table:
if local != '':
keycode_translation_dict[standard] = local
results = ''
for tap_row, hold_row in zip(tap_table, hold_table):
for tap, hold in zip(tap_row, hold_row):
if tap == '':
code = 'U_NU'
elif tap in symbol_names_dict:
code = symbol_names_dict[tap]
else:
code = tap
if code in keycode_translation_dict:
code = keycode_translation_dict[code]
if hold in mods_dict:
if hold in keycode_translation_dict:
hold = keycode_translation_dict[hold]
code = '&hm ' + str(hold) + ' ' + code
elif hold in layers_dict:
code = '< ' + str(hold) + ' ' + code
elif not str(code).startswith(nonkp_tuple):
code = '&kp ' + str(code)
results += (code + ', ').ljust(width)
results = results.rstrip(' ') + '\n'
results = results.rstrip('\n, ')
return results
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT, &hm LGUI A, &hm LALT R, &hm LCTRL S, &hm LSHFT T, &kp G, &kp M, &hm LSHFT N, &hm LCTRL E, &hm LALT I, &hm LGUI O, &kp Z, &hm RALT X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMMA, &hm RALT DOT, &kp SLASH, U_NP, U_NP, < MEDR ESC, < NAVR SPC, < MOUR TAB, < NSSL RET, < NSL BSPC, < FUNL DEL, U_NP, U_NP
table-map-half
width = 13
mods_dict = dict.fromkeys(mods_table[0])
layers_dict = dict.fromkeys(layers_table[0])
nonkp_tuple = tuple(nonkp_table[0])
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 = {}
for standard, local in keycode_translation_table:
if local != '':
keycode_translation_dict[standard] = local
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 half == '':
code = 'U_NU'
elif 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 not str(code).startswith(nonkp_tuple):
code = '&kp ' + 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 = '&kp ' + 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 str(hold).startswith(nonkp_tuple):
code = hold
else:
code = '&kp ' + str(hold)
results += (str(code) + ', ').ljust(width)
results = results.rstrip(' ') + '\n'
results = results.rstrip('\n, ')
return results
&bootloader, U_NA, U_NA, U_NA, U_NA, &kp K_AGAIN, &kp K_UNDO, &kp K_CUT, &kp K_COPY, &kp K_PASTE, &kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp CAPS, &kp LEFT, &kp DOWN, &kp UP, &kp RIGHT, U_NA, &kp RALT, U_NA, U_NA, U_NA, &kp INS, &kp HOME, &kp PG_DN, &kp PG_UP, &kp END, U_NP, U_NP, U_NA, U_NA, U_NA, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
table-map-full
width = 10
symbol_names_dict = {}
nonkp_tuple = tuple(nonkp_table[0])
for symbol, name, shifted_symbol, shifted_name in symbol_names_table:
symbol_names_dict[symbol] = name
symbol_names_dict[shifted_symbol] = shifted_name
keycode_translation_dict = {}
for standard, local in keycode_translation_table:
if local != '':
keycode_translation_dict[standard] = local
results = ''
for row in table:
for key in row:
if key == '':
code = fill
elif key in symbol_names_dict:
code = symbol_names_dict[key]
else:
code = key
if code in keycode_translation_dict:
code = keycode_translation_dict[code]
if not str(code).startswith(nonkp_tuple):
code = '&kp ' + str(code)
results += (code + ', ').ljust(width)
results = results.rstrip(' ') + '\n'
results = results.rstrip('\n, ')
return results
&trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, &trans, U_NP, U_NP, &trans, &trans, &trans, U_NU, U_NU, U_NU, U_NP, U_NP
table-layer-defines
width = 5
layers_list = layers_table[0]
results = ''
i = 0
for layer in layers_list:
results += '#define ' + ( layer + ' ').ljust(width) + str(i) + '\n'
i += 1
return results
#define BASE 0 #define MBO 1 #define NAVR 2 #define MOUR 3 #define MEDR 4 #define NSL 5 #define NSSL 6 #define FUNL 7
table-keycode-mappings
nonkp_tuple = tuple(nonkp_table[0])
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
results = ''
keycode_translation_dict = {}
for standard, local in keycode_translation_table:
if local != '':
keycode_translation_dict[standard] = local
for f,t in table:
if t == '':
code = 'U_NU'
elif t in symbol_names_dict:
code = symbol_names_dict[t]
else:
code = t
if code in keycode_translation_dict:
code = keycode_translation_dict[code]
if not str(code).startswith(nonkp_tuple):
code = '&kp ' + str(code)
results += '#define ' + f + ' ' + code + '\n'
return results
#define U_RDO &kp K_AGAIN #define U_PST &kp LS(INS) #define U_CPY &kp LC(INS) #define U_CUT &kp S(DEL) #define U_UND &kp K_UNDO
Data
layers
| BASE | TAP | MBO | NAVR | MOUR | MEDR | NSL | NSSL | FUNL |
symbol-names
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 |
mods
Modifiers usable in hold table. Need to have the same name for KC_ and _T
versions.
| LSFT | LCTL | LALT | LGUI | ALGR |
nonkp
Keycodes that match any of these prefixes will not have KC_ automatically
prepended.
| U_ | & |
keycode-translation
standard keycode to implementation equivalent
| 0 | NUM_0 |
| 1 | NUM_1 |
| 2 | NUM_2 |
| 3 | NUM_3 |
| 4 | NUM_4 |
| 5 | NUM_5 |
| 6 | NUM_6 |
| 7 | NUM_7 |
| 8 | NUM_8 |
| 9 | NUM_9 |
| AGIN | K_AGAIN |
| ALGR | RALT |
| AMPR | AMPS |
| APP | K_APP |
| ASTR | ASTRK |
| AT | AT |
| BSLS | BSLH |
| BSPC | BSPC |
| BTN1 | KP_N5 |
| BTN2 | U_NU |
| BTN3 | U_NU |
| CAPS | |
| CIRC | CRRT |
| COLN | COLON |
| COMM | COMMA |
| COPY | K_COPY |
| CUT | K_CUT |
| DEL | |
| DLR | DLLR |
| DOT | |
| DOWN | |
| DQUO | DQT |
| END | |
| ENT | RET |
| EQL | |
| ESC | |
| EXLM | EXCL |
| F1 | |
| F10 | |
| F11 | |
| F12 | |
| F2 | |
| F3 | |
| F4 | |
| F5 | |
| F6 | |
| F7 | |
| F8 | |
| F9 | |
| GRV | GRAVE |
| GT | |
| HASH | |
| HOME | |
| INS | |
| LALT | |
| LBRC | LBKT |
| LCBR | LBRC |
| LCTL | LCTRL |
| LEFT | |
| LGUI | |
| LPRN | LPAR |
| LSFT | LSHFT |
| LT | |
| MINS | MINUS |
| MNXT | C_NEXT |
| MPLY | C_PP |
| MPRV | C_PREV |
| MS_D | KP_N2 |
| MS_L | KP_N4 |
| MS_R | KP_N6 |
| MSTP | C_STOP |
| MS_U | KP_N8 |
| MUTE | C_MUTE |
| PAUS | PAUSE_BREAK |
| PERC | PRCT |
| PGDN | PG_DN |
| PGUP | PG_UP |
| PIPE | |
| PLUS | |
| PSCR | PSCRN |
| PSTE | K_PASTE |
| QUES | QMARK |
| QUOT | SQT |
| RBRC | RBKT |
| RCBR | RBRC |
| RESET | &bootloader |
| RGB_HUI | &rgb_ug RGB_HUI |
| RGB_MOD | &rgb_ug RGB_EFF |
| RGB_SAI | &rgb_ug RGB_SAI |
| RGB_TOG | &rgb_ug RGB_TOG |
| RGB_VAI | &rgb_ug RGB_BRI |
| RGHT | RIGHT |
| RPRN | RPAR |
| SCLN | SEMI |
| SLCK | |
| SLSH | SLASH |
| SPC | |
| TAB | |
| TILD | TILDE |
| UNDO | K_UNDO |
| UNDS | UNDER |
| UP | |
| VOLD | C_VOL_DN |
| VOLU | C_VOL_UP |
| WH_D | U_NU |
| WH_L | U_NU |
| WH_R | U_NU |
| WH_U | U_NU |
| S(KC_INS) | LS(INS) |
| C(KC_INS) | LC(INS) |
| S(KC_DEL) | LS(DEL) |
| SCMD(KC_Z) | LS(LG(Z)) |
| LCMD(KC_V) | LG(V) |
| LCMD(KC_C) | LG(C) |
| LCMD(KC_X) | LG(X) |
| LCMD(KC_Z) | LG(Z) |
| C(KC_Y) | LC(Y) |
| C(KC_V) | LC(V) |
| C(KC_C) | LC(C) |
| C(KC_X) | LC(X) |
| C(KC_Z) | LC(Z) |
| DF(TAP) | &tog TAP |
| U_MT | LS(LNLCK) |
/ClaytonWWilson/miryoku_zmk/src/commit/33823c5c157fdc3aa9992cd9d695d3de63d71985/miryoku/miryoku.dtsi
// Copyright 2021 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/rgb.h>
#include <dt-bindings/zmk/outputs.h>
#include "config.h"
<<table-layer-defines()>>
#define U_NP &none // key is not present
#define U_NA &none // present but not available for use
#define U_NU &none // available but not used
#if defined MIRYOKU_CLIPBOARD_FUN
<<table-keycode-mappings(table=clipboard-fun)>>
#elif defined MIRYOKU_CLIPBOARD_MAC
<<table-keycode-mappings(table=clipboard-mac)>>
#elif defined MIRYOKU_CLIPBOARD_WIN
<<table-keycode-mappings(table=clipboard-win)>>
#else
<<table-keycode-mappings(table=clipboard)>>
#endif
/ {
behaviors {
hm: homerow_mods {
compatible = "zmk,behavior-hold-tap";
label = "HOMEROW_MODS";
#binding-cells = <2>;
tapping_term_ms = <200>;
flavor = "tap-preferred";
bindings = <&kp>, <&kp>;
};
};
};
/ {
keymap {
compatible = "zmk,keymap";
BASE_layer {
label = "Base";
bindings = <
#if defined MIRYOKU_ALPHAS_COLEMAK
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=colemak)>>
)
#elif defined MIRYOKU_ALPHAS_COLEMAKDH
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=colemakdh)>>
)
#elif defined MIRYOKU_ALPHAS_DVORAK
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=dvorak)>>
)
#elif defined MIRYOKU_ALPHAS_HALMAK
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=halmak)>>
)
#elif defined MIRYOKU_ALPHAS_WORKMAN
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=workman)>>
)
#elif defined MIRYOKU_ALPHAS_QWERTY
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=qwerty)>>
)
#else
MIRYOKU_MAPPING(
<<table-map-taphold(tap_table=colemakdhm)>>
)
#endif
>;
};
TAP_layer {
label = "Tap";
bindings = <
#if defined MIRYOKU_ALPHAS_COLEMAK
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=colemak)>>
)
#elif defined MIRYOKU_ALPHAS_COLEMAKDH
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=colemakdh)>>
)
#elif defined MIRYOKU_ALPHAS_DVORAK
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=dvorak)>>
)
#elif defined MIRYOKU_ALPHAS_HALMAK
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=halmak)>>
)
#elif defined MIRYOKU_ALPHAS_WORKMAN
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=workman)>>
)
#elif defined MIRYOKU_ALPHAS_QWERTY
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=qwerty)>>
)
#else
MIRYOKU_MAPPING_TAP(
<<table-map-full(table=colemakdhm)>>
)
#endif
>;
};
MBO_layer {
label = "Buttons";
bindings = <
MIRYOKU_MAPPING(
<<table-map-full(table=mbo)>>
)
>;
};
NAVR_layer {
label = "Nav";
bindings = <
#if defined MIRYOKU_NAV_VI
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=navr-vi)>>
)
#else
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=navr)>>
)
#endif
>;
};
MOUR_layer {
label = "Mouse";
bindings = <
#if defined MIRYOKU_NAV_VI
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=mour-vi)>>
)
#else
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=mour)>>
)
#endif
>;
};
MEDR_layer {
label = "Media";
bindings = <
#if defined MIRYOKU_NAV_VI
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=medr-vi)>>
)
#else
MIRYOKU_MAPPING(
<<table-map-half(mode="r", half_table=medr)>>
)
#endif
>;
};
NSL_layer {
label = "Num";
bindings = <
MIRYOKU_MAPPING(
<<table-map-half(mode="l", half_table=nsl)>>
)
>;
};
NSSL_layer {
label = "Sym";
bindings = <
MIRYOKU_MAPPING(
<<table-map-half(mode="l", half_table=nssl)>>
)
>;
};
FUNL_layer {
label = "Fun";
bindings = <
MIRYOKU_MAPPING(
<<table-map-half(mode="l", half_table=funl)>>
)
>;
};
};
};
#if defined (MIRYOKU_COMBO_TPS_ENABLE) && defined (MIRYOKU_COMBO_TPSL) && defined (MIRYOKU_COMBO_TPSR)
/ {
combos {
compatible = "zmk,combos";
combo_tpsl_BASE {
timeout-ms = <200>;
key-positions = <MIRYOKU_COMBO_TPSL>;
bindings = << MEDR ESC>;
layers = <BASE>;
};
combo_tpsr_BASE {
timeout-ms = <200>;
key-positions = <MIRYOKU_COMBO_TPSR>;
bindings = << FUNL DEL>;
layers = <BASE>;
};
combo_tpsr_MBO {
timeout-ms = <200>;
key-positions = <MIRYOKU_COMBO_TPSR>;
bindings = <U_NU>;
layers = <MBO>;
};
combo_tpsr_NAVR {
timeout-ms = <200>;
key-positions = <MIRYOKU_COMBO_TPSR>;
bindings = <&kp DEL>;
layers = <NAVR>;
};
combo_tpsr_MOUR {
timeout-ms = <200>;
key-positions = <MIRYOKU_COMBO_TPSR>;
bindings = <U_NU>;
layers = <MOUR>;
};
combo_tpsr_MEDR {
timeout-ms = <200>;
key-positions = <MIRYOKU_COMBO_TPSR>;
bindings = <&kp K_MUTE>;
layers = <MEDR>;
};
combo_tpsl_NSL {
timeout-ms = <200>;
key-positions = <MIRYOKU_COMBO_TPSL>;
bindings = <&kp DOT>;
layers = <NSL>;
};
combo_tpsl_NSSL {
timeout-ms = <200>;
key-positions = <MIRYOKU_COMBO_TPSL>;
bindings = <&kp LPAR>;
layers = <NSSL>;
};
combo_tpsl_FUNL {
timeout-ms = <200>;
key-positions = <MIRYOKU_COMBO_TPSL>;
bindings = <&kp K_APP>;
layers = <FUNL>;
};
};
};
#endif