Add keycode translation

This commit is contained in:
Manna Harbour 2020-10-29 22:38:46 +11:00
parent bd31acd370
commit ce5424721c
2 changed files with 212 additions and 72 deletions

View File

@ -31,6 +31,7 @@ Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout.
- [[#symbol-names][symbol-names]] - [[#symbol-names][symbol-names]]
- [[#mods][mods]] - [[#mods][mods]]
- [[#nonkp][nonkp]] - [[#nonkp][nonkp]]
- [[#keycode-translation][keycode-translation]]
- [[#header][header]] - [[#header][header]]
- [[#subset-mapping][Subset Mapping]] - [[#subset-mapping][Subset Mapping]]
- [[#miryoku-include][miryoku include]] - [[#miryoku-include][miryoku include]]
@ -79,7 +80,7 @@ included for prose, dot and slash for file and directory names.
**** Hold **** Hold
#+NAME: hold #+NAME: hold
| &rst | | | | | | | | | &rst | | RESET | | | | | | | | | RESET |
| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | | LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI |
| | ALGR | | | | | | | ALGR | | | | ALGR | | | | | | | ALGR | |
| X_NP | X_NP | MEDR | NAVR | MOUR | NSSL | NSL | FUNL | X_NP | X_NP | | X_NP | X_NP | MEDR | NAVR | MOUR | NSSL | NSL | FUNL | X_NP | X_NP |
@ -332,15 +333,19 @@ Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat.
Produce base layer from separate tap and hold tables. Produce base layer from separate tap and hold tables.
#+NAME: table-map-taphold #+NAME: table-map-taphold
#+BEGIN_SRC python :var tap_table=colemakdhm :var hold_table=hold :var symbol_names_table=symbol-names :var mods_table=mods :var nonkp_table=nonkp :tangle no :results verbatim #+BEGIN_SRC python :var tap_table=colemakdhm :var hold_table=hold :var symbol_names_table=symbol-names :var mods_table=mods :var nonkp_table=nonkp :var layers_table=layers :var keycode_translation_table=keycode-translation :tangle no :results verbatim
width = 14 width = 14
mods_dict = dict.fromkeys(mods_table[0]) mods_dict = dict.fromkeys(mods_table[0])
nonkp_tuple = tuple(nonkp_table[0]) nonkp_tuple = tuple(nonkp_table[0])
layers_dict = dict.fromkeys(layers_table[0])
symbol_names_dict = {} symbol_names_dict = {}
results = ''
for symbol, name, shifted_symbol, shifted_name in symbol_names_table: for symbol, name, shifted_symbol, shifted_name in symbol_names_table:
symbol_names_dict[symbol] = name symbol_names_dict[symbol] = name
symbol_names_dict[shifted_symbol] = shifted_name symbol_names_dict[shifted_symbol] = shifted_name
keycode_translation_dict = {}
for standard, local in keycode_translation_table:
keycode_translation_dict[standard] = local
results = ''
for tap_row, hold_row in map(None, tap_table, hold_table): for tap_row, hold_row in map(None, tap_table, hold_table):
for tap, hold in map(None, tap_row, hold_row): for tap, hold in map(None, tap_row, hold_row):
if tap == '': if tap == '':
@ -349,9 +354,13 @@ for tap_row, hold_row in map(None, tap_table, hold_table):
code = symbol_names_dict[tap] code = symbol_names_dict[tap]
else: else:
code = tap code = tap
if code in keycode_translation_dict:
code = keycode_translation_dict[code]
if hold in mods_dict: if hold in mods_dict:
if hold in keycode_translation_dict:
hold = keycode_translation_dict[hold]
code = '&hm ' + str(hold) + ' ' + code code = '&hm ' + str(hold) + ' ' + code
elif hold != '' and not str(hold).startswith(nonkp_tuple): elif hold in layers_dict:
code = '&lt ' + str(hold) + ' ' + code code = '&lt ' + str(hold) + ' ' + code
elif not str(code).startswith(nonkp_tuple): elif not str(code).startswith(nonkp_tuple):
code = '&kp ' + str(code) code = '&kp ' + str(code)
@ -364,8 +373,8 @@ return results
#+RESULTS: table-map-taphold #+RESULTS: table-map-taphold
: &kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp QUOT, : &kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp QUOT,
: &hm LGUI A, &hm LALT R, &hm LCTL S, &hm LSFT T, &kp G, &kp M, &hm LSFT N, &hm LCTL E, &hm LALT I, &hm LGUI O, : &hm LGUI A, &hm LALT R, &hm LCTL S, &hm LSFT T, &kp G, &kp M, &hm LSFT N, &hm LCTL E, &hm LALT I, &hm LGUI O,
: &kp Z, &hm ALGR X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMM, &hm ALGR DOT, &kp SLSH, : &kp Z, &hm RALT X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp CMMA, &hm RALT DOT, &kp FSLH,
: X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL ENT, &lt NSL BSPC, &lt FUNL DEL, X_NP, X_NP : X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BKSP, &lt FUNL DEL, X_NP, X_NP
*** table-map-half *** table-map-half
@ -375,9 +384,10 @@ incorporating mods and reset from base layer. Layer names must end with 'R' or
'L'. A layer with shifted symbols can also be generated. 'L'. A layer with shifted symbols can also be generated.
#+NAME: table-map-half #+NAME: table-map-half
#+BEGIN_SRC python :var hold_table=hold :var mode="l" :var half_table=nsl :var symbol_names_table=symbol-names :var mods_table=mods :var nonkp_table=nonkp :var shift="false" :tangle no :results verbatim #+BEGIN_SRC python :var hold_table=hold :var mode="r" :var half_table=navr :var symbol_names_table=symbol-names :var mods_table=mods :var nonkp_table=nonkp :var shift="false" :var layers_table=layers :var keycode_translation_table=keycode-translation :tangle no :results verbatim
width = 10 width = 13
mods_dict = dict.fromkeys(mods_table[0]) mods_dict = dict.fromkeys(mods_table[0])
layers_dict = dict.fromkeys(layers_table[0])
nonkp_tuple = tuple(nonkp_table[0]) nonkp_tuple = tuple(nonkp_table[0])
symbol_names_dict = {} symbol_names_dict = {}
shifted_symbol_names_dict = {} shifted_symbol_names_dict = {}
@ -385,6 +395,9 @@ for symbol, name, shifted_symbol, shifted_name in symbol_names_table:
symbol_names_dict[symbol] = name symbol_names_dict[symbol] = name
symbol_names_dict[shifted_symbol] = shifted_name symbol_names_dict[shifted_symbol] = shifted_name
shifted_symbol_names_dict[symbol] = shifted_name shifted_symbol_names_dict[symbol] = shifted_name
keycode_translation_dict = {}
for standard, local in keycode_translation_table:
keycode_translation_dict[standard] = local
length = len(half_table[0]) length = len(half_table[0])
results = '' results = ''
for half_row, hold_row in map(None, half_table, hold_table): for half_row, hold_row in map(None, half_table, hold_table):
@ -400,17 +413,26 @@ for half_row, hold_row in map(None, half_table, hold_table):
code = symbol_names_dict[half] code = symbol_names_dict[half]
else: else:
code = half code = half
if code in keycode_translation_dict:
code = keycode_translation_dict[code]
if not str(code).startswith(nonkp_tuple): if not str(code).startswith(nonkp_tuple):
code = '&kp ' + str(code) code = '&kp ' + str(code)
results += (str(code) + ', ').ljust(width) results += (str(code) + ', ').ljust(width)
else: else:
for hold in hold_row_lr: for hold in hold_row_lr:
if hold == '' or not str(hold).startswith(nonkp_tuple) and hold not in mods_dict: if hold in mods_dict:
code = 'X_NA' if hold in keycode_translation_dict:
hold = keycode_translation_dict[hold]
code = '&kp ' + str(hold)
else: else:
if hold in keycode_translation_dict:
hold = keycode_translation_dict[hold]
if hold == '' or hold in layers_dict:
code = 'X_NA'
elif str(hold).startswith(nonkp_tuple):
code = hold code = hold
if not str(code).startswith(nonkp_tuple): else:
code = '&kp ' + str(code) code = '&kp ' + str(hold)
results += (str(code) + ', ').ljust(width) results += (str(code) + ', ').ljust(width)
results = results.rstrip(' ') + '\n' results = results.rstrip(' ') + '\n'
results = results.rstrip('\n, ') results = results.rstrip('\n, ')
@ -418,10 +440,10 @@ return results
#+END_SRC #+END_SRC
#+RESULTS: table-map-half #+RESULTS: table-map-half
: &kp LBRC, &kp 7, &kp 8, &kp 9, &kp RBRC, X_NA, X_NA, X_NA, X_NA, &rst, : &bootloader, X_NA, X_NA, X_NA, X_NA, X_NU, &kp UNDO, &kp CUT, &kp COPY, &kp PSTE,
: &kp SCLN, &kp 4, &kp 5, &kp 6, &kp EQL, X_NA, &kp LSFT, &kp LCTL, &kp LALT, &kp LGUI, : &kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, &kp CLCK, &kp LARW, &kp DARW, &kp UARW, &kp RARW,
: &kp GRV, &kp 1, &kp 2, &kp 3, &kp BSLS, X_NA, X_NA, X_NA, &kp ALGR, X_NA, : X_NA, &kp RALT, X_NA, X_NA, X_NA, &kp INS, &kp HOME, &kp PGDN, &kp PGUP, &kp END,
: X_NP, X_NP, &kp DOT, &kp 0, &kp MINS, X_NA, X_NA, X_NA, X_NP, X_NP : X_NP, X_NP, X_NA, X_NA, X_NA, &kp RET, &kp BKSP, &kp DEL, X_NP, X_NP
*** table-map-full *** table-map-full
@ -429,13 +451,16 @@ return results
Produce full layer from single table. Fill for unused keys is configurable. Produce full layer from single table. Fill for unused keys is configurable.
#+NAME: table-map-full #+NAME: table-map-full
#+BEGIN_SRC python :var table=mbo :var fill="&trans" :var symbol_names_table=symbol-names :var nonkp_table=nonkp :tangle no :results verbatim #+BEGIN_SRC python :var table=mbo :var fill="&trans" :var symbol_names_table=symbol-names :var nonkp_table=nonkp :var keycode_translation_table=keycode-translation :tangle no :results verbatim
width = 10 width = 10
symbol_names_dict = {} symbol_names_dict = {}
nonkp_tuple = tuple(nonkp_table[0]) nonkp_tuple = tuple(nonkp_table[0])
for symbol, name, shifted_symbol, shifted_name in symbol_names_table: for symbol, name, shifted_symbol, shifted_name in symbol_names_table:
symbol_names_dict[symbol] = name symbol_names_dict[symbol] = name
symbol_names_dict[shifted_symbol] = shifted_name symbol_names_dict[shifted_symbol] = shifted_name
keycode_translation_dict = {}
for standard, local in keycode_translation_table:
keycode_translation_dict[standard] = local
results = '' results = ''
for row in table: for row in table:
for key in row: for key in row:
@ -445,6 +470,8 @@ for row in table:
code = symbol_names_dict[key] code = symbol_names_dict[key]
else: else:
code = key code = key
if code in keycode_translation_dict:
code = keycode_translation_dict[code]
if not str(code).startswith(nonkp_tuple): if not str(code).startswith(nonkp_tuple):
code = '&kp ' + str(code) code = '&kp ' + str(code)
results += (code + ', ').ljust(width) results += (code + ', ').ljust(width)
@ -457,7 +484,7 @@ 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, : &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,
: X_NP, X_NP, &trans, &trans, &trans, &kp BTN1, &kp BTN3, &kp BTN2, X_NP, X_NP : X_NP, X_NP, &trans, &trans, &trans, X_NU, X_NU, X_NU, X_NP, X_NP
*** table-layer-defines *** table-layer-defines
@ -540,6 +567,119 @@ prepended.
#+NAME: nonkp #+NAME: nonkp
| X_ | & | | X_ | & |
*** keycode-translation
standard keycode to implementation equivalent
#+NAME: keycode-translation
| 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 | X_NU |
| ALGR | RALT |
| AMPR | X_NU |
| APP | X_NU |
| ASTR | X_NU |
| AT | X_NU |
| BSLS | BSLH |
| BSPC | BKSP |
| BTN1 | X_NU |
| BTN2 | X_NU |
| BTN3 | X_NU |
| CAPS | CLCK |
| CIRC | X_NU |
| COLN | X_NU |
| COMM | CMMA |
| COPY | COPY |
| CUT | CUT |
| DEL | DEL |
| DLR | X_NU |
| DOT | DOT |
| DOWN | DARW |
| DQUO | X_NU |
| END | END |
| ENT | RET |
| EQL | EQL |
| ESC | ESC |
| EXLM | X_NU |
| F1 | F1 |
| F10 | F10 |
| F11 | F11 |
| F12 | F12 |
| F2 | F2 |
| F3 | F3 |
| F4 | F4 |
| F5 | F5 |
| F6 | F6 |
| F7 | F7 |
| F8 | F8 |
| F9 | F9 |
| GRV | GRAV |
| GT | X_NU |
| HASH | X_NU |
| HOME | HOME |
| INS | INS |
| LALT | LALT |
| LBRC | LBKT |
| LCBR | X_NU |
| LCTL | LCTL |
| LEFT | LARW |
| LGUI | LGUI |
| LPRN | X_NU |
| LSFT | LSFT |
| LT | X_NU |
| MINS | MINUS |
| MNXT | M_NEXT |
| MPLY | M_PLAY |
| MPRV | M_PREV |
| MS_D | X_NU |
| MS_L | X_NU |
| MS_R | X_NU |
| MSTP | M_STOP |
| MS_U | X_NU |
| MUTE | M_MUTE |
| PAUS | PAUS |
| PERC | X_NU |
| PGDN | PGDN |
| PGUP | PGUP |
| PIPE | X_NU |
| PLUS | X_NU |
| PSCR | PRSC |
| PSTE | PSTE |
| QUES | X_NU |
| QUOT | QUOT |
| RBRC | RBKT |
| RCBR | X_NU |
| RESET | &bootloader |
| RGB_HUI | X_NU |
| RGB_MOD | X_NU |
| RGB_SAI | X_NU |
| RGB_TOG | X_NU |
| RGB_VAI | X_NU |
| RGHT | RARW |
| RPRN | X_NU |
| SCLN | SCLN |
| SLCK | SCLK |
| SLSH | FSLH |
| SPC | SPC |
| TAB | TAB |
| TILD | X_NU |
| UNDO | UNDO |
| UNDS | X_NU |
| UP | UARW |
| VOLD | VOLD |
| VOLU | VOLU |
| WH_D | X_NU |
| WH_L | X_NU |
| WH_R | X_NU |
| WH_U | X_NU |
*** header *** header

View File

@ -47,50 +47,50 @@
SUBMAP( SUBMAP(
&kp Q, &kp W, &kp F, &kp P, &kp G, &kp J, &kp L, &kp U, &kp Y, &kp QUOT, &kp Q, &kp W, &kp F, &kp P, &kp G, &kp J, &kp L, &kp U, &kp Y, &kp QUOT,
&hm LGUI A, &hm LALT R, &hm LCTL S, &hm LSFT T, &kp D, &kp H, &hm LSFT N, &hm LCTL E, &hm LALT I, &hm LGUI O, &hm LGUI A, &hm LALT R, &hm LCTL S, &hm LSFT T, &kp D, &kp H, &hm LSFT N, &hm LCTL E, &hm LALT I, &hm LGUI O,
&kp Z, &hm ALGR X, &kp C, &kp V, &kp B, &kp K, &kp M, &kp COMM, &hm ALGR DOT, &kp SLSH, &kp Z, &hm RALT X, &kp C, &kp V, &kp B, &kp K, &kp M, &kp CMMA, &hm RALT DOT, &kp FSLH,
X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL ENT, &lt NSL BSPC, &lt FUNL DEL, X_NP, X_NP X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BKSP, &lt FUNL DEL, X_NP, X_NP
) )
#elif defined MIRYOKU_ALPHAS_COLEMAKDH #elif defined MIRYOKU_ALPHAS_COLEMAKDH
SUBMAP( SUBMAP(
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp QUOT, &kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp QUOT,
&hm LGUI A, &hm LALT R, &hm LCTL S, &hm LSFT T, &kp G, &kp K, &hm LSFT N, &hm LCTL E, &hm LALT I, &hm LGUI O, &hm LGUI A, &hm LALT R, &hm LCTL S, &hm LSFT T, &kp G, &kp K, &hm LSFT N, &hm LCTL E, &hm LALT I, &hm LGUI O,
&kp Z, &hm ALGR X, &kp C, &kp D, &kp V, &kp M, &kp H, &kp COMM, &hm ALGR DOT, &kp SLSH, &kp Z, &hm RALT X, &kp C, &kp D, &kp V, &kp M, &kp H, &kp CMMA, &hm RALT DOT, &kp FSLH,
X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL ENT, &lt NSL BSPC, &lt FUNL DEL, X_NP, X_NP X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BKSP, &lt FUNL DEL, X_NP, X_NP
) )
#elif defined MIRYOKU_ALPHAS_DVORAK #elif defined MIRYOKU_ALPHAS_DVORAK
SUBMAP( SUBMAP(
&kp QUOT, &kp COMM, &kp DOT, &kp P, &kp Y, &kp F, &kp G, &kp C, &kp R, &kp L, &kp QUOT, &kp CMMA, &kp DOT, &kp P, &kp Y, &kp F, &kp G, &kp C, &kp R, &kp L,
&hm LGUI A, &hm LALT O, &hm LCTL E, &hm LSFT U, &kp I, &kp D, &hm LSFT H, &hm LCTL T, &hm LALT N, &hm LGUI S, &hm LGUI A, &hm LALT O, &hm LCTL E, &hm LSFT U, &kp I, &kp D, &hm LSFT H, &hm LCTL T, &hm LALT N, &hm LGUI S,
&kp SLSH, &hm ALGR Q, &kp J, &kp K, &kp X, &kp B, &kp M, &kp W, &hm ALGR V, &kp Z, &kp FSLH, &hm RALT Q, &kp J, &kp K, &kp X, &kp B, &kp M, &kp W, &hm RALT V, &kp Z,
X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL ENT, &lt NSL BSPC, &lt FUNL DEL, X_NP, X_NP X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BKSP, &lt FUNL DEL, X_NP, X_NP
) )
#elif defined MIRYOKU_ALPHAS_HALMAK #elif defined MIRYOKU_ALPHAS_HALMAK
SUBMAP( SUBMAP(
&kp W, &kp L, &kp R, &kp B, &kp Z, &kp QUOT, &kp Q, &kp U, &kp D, &kp J, &kp W, &kp L, &kp R, &kp B, &kp Z, &kp QUOT, &kp Q, &kp U, &kp D, &kp J,
&hm LGUI S, &hm LALT H, &hm LCTL N, &hm LSFT T, &kp COMM, &kp DOT, &hm LSFT A, &hm LCTL E, &hm LALT O, &hm LGUI I, &hm LGUI S, &hm LALT H, &hm LCTL N, &hm LSFT T, &kp CMMA, &kp DOT, &hm LSFT A, &hm LCTL E, &hm LALT O, &hm LGUI I,
&kp F, &hm ALGR M, &kp V, &kp C, &kp SLSH, &kp G, &kp P, &kp X, &hm ALGR K, &kp Y, &kp F, &hm RALT M, &kp V, &kp C, &kp FSLH, &kp G, &kp P, &kp X, &hm RALT K, &kp Y,
X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL ENT, &lt NSL BSPC, &lt FUNL DEL, X_NP, X_NP X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BKSP, &lt FUNL DEL, X_NP, X_NP
) )
#elif defined MIRYOKU_ALPHAS_WORKMAN #elif defined MIRYOKU_ALPHAS_WORKMAN
SUBMAP( SUBMAP(
&kp Q, &kp D, &kp R, &kp W, &kp B, &kp J, &kp F, &kp U, &kp P, &kp QUOT, &kp Q, &kp D, &kp R, &kp W, &kp B, &kp J, &kp F, &kp U, &kp P, &kp QUOT,
&hm LGUI A, &hm LALT S, &hm LCTL H, &hm LSFT T, &kp G, &kp Y, &hm LSFT N, &hm LCTL E, &hm LALT O, &hm LGUI I, &hm LGUI A, &hm LALT S, &hm LCTL H, &hm LSFT T, &kp G, &kp Y, &hm LSFT N, &hm LCTL E, &hm LALT O, &hm LGUI I,
&kp Z, &hm ALGR X, &kp M, &kp C, &kp V, &kp K, &kp L, &kp COMM, &hm ALGR DOT, &kp SLSH, &kp Z, &hm RALT X, &kp M, &kp C, &kp V, &kp K, &kp L, &kp CMMA, &hm RALT DOT, &kp FSLH,
X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL ENT, &lt NSL BSPC, &lt FUNL DEL, X_NP, X_NP X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BKSP, &lt FUNL DEL, X_NP, X_NP
) )
#elif defined MIRYOKU_ALPHAS_QWERTY #elif defined MIRYOKU_ALPHAS_QWERTY
SUBMAP( SUBMAP(
&kp Q, &kp W, &kp E, &kp R, &kp T, &kp Y, &kp U, &kp I, &kp O, &kp P, &kp Q, &kp W, &kp E, &kp R, &kp T, &kp Y, &kp U, &kp I, &kp O, &kp P,
&hm LGUI A, &hm LALT S, &hm LCTL D, &hm LSFT F, &kp G, &kp H, &hm LSFT J, &hm LCTL K, &hm LALT L, &hm LGUI QUOT, &hm LGUI A, &hm LALT S, &hm LCTL D, &hm LSFT F, &kp G, &kp H, &hm LSFT J, &hm LCTL K, &hm LALT L, &hm LGUI QUOT,
&kp Z, &hm ALGR X, &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMM, &hm ALGR DOT, &kp SLSH, &kp Z, &hm RALT X, &kp C, &kp V, &kp B, &kp N, &kp M, &kp CMMA, &hm RALT DOT, &kp FSLH,
X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL ENT, &lt NSL BSPC, &lt FUNL DEL, X_NP, X_NP X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BKSP, &lt FUNL DEL, X_NP, X_NP
) )
#else #else
SUBMAP( SUBMAP(
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp QUOT, &kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp QUOT,
&hm LGUI A, &hm LALT R, &hm LCTL S, &hm LSFT T, &kp G, &kp M, &hm LSFT N, &hm LCTL E, &hm LALT I, &hm LGUI O, &hm LGUI A, &hm LALT R, &hm LCTL S, &hm LSFT T, &kp G, &kp M, &hm LSFT N, &hm LCTL E, &hm LALT I, &hm LGUI O,
&kp Z, &hm ALGR X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMM, &hm ALGR DOT, &kp SLSH, &kp Z, &hm RALT X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp CMMA, &hm RALT DOT, &kp FSLH,
X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL ENT, &lt NSL BSPC, &lt FUNL DEL, X_NP, X_NP X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL RET, &lt NSL BKSP, &lt FUNL DEL, X_NP, X_NP
) )
#endif #endif
>; >;
@ -101,7 +101,7 @@ X_NP, X_NP, &lt MEDR ESC, &lt NAVR SPC, &lt MOUR TAB, &lt NSSL E
&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, &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,
X_NP, X_NP, &trans, &trans, &trans, &kp BTN1, &kp BTN3, &kp BTN2, X_NP, X_NP X_NP, X_NP, &trans, &trans, &trans, X_NU, X_NU, X_NU, X_NP, X_NP
) )
>; >;
}; };
@ -109,17 +109,17 @@ X_NP, X_NP, &trans, &trans, &trans, &kp BTN1, &kp BTN3, &kp BTN2,
bindings = < bindings = <
#if defined MIRYOKU_NAV_VI #if defined MIRYOKU_NAV_VI
SUBMAP( SUBMAP(
&rst, X_NA, X_NA, X_NA, X_NA, &kp AGIN, &kp UNDO, &kp CUT, &kp COPY, &kp PSTE, &bootloader, X_NA, X_NA, X_NA, X_NA, X_NU, &kp UNDO, &kp CUT, &kp COPY, &kp PSTE,
&kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, &kp LEFT, &kp DOWN, &kp UP, &kp RGHT, &kp CAPS, &kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, &kp LARW, &kp DARW, &kp UARW, &kp RARW, &kp CLCK,
X_NA, &kp ALGR, X_NA, X_NA, X_NA, &kp HOME, &kp PGDN, &kp PGUP, &kp END, &kp INS, X_NA, &kp RALT, X_NA, X_NA, X_NA, &kp HOME, &kp PGDN, &kp PGUP, &kp END, &kp INS,
X_NP, X_NP, X_NA, X_NA, X_NA, &kp ENT, &kp BSPC, &kp DEL, X_NP, X_NP X_NP, X_NP, X_NA, X_NA, X_NA, &kp RET, &kp BKSP, &kp DEL, X_NP, X_NP
) )
#else #else
SUBMAP( SUBMAP(
&rst, X_NA, X_NA, X_NA, X_NA, &kp AGIN, &kp UNDO, &kp CUT, &kp COPY, &kp PSTE, &bootloader, X_NA, X_NA, X_NA, X_NA, X_NU, &kp UNDO, &kp CUT, &kp COPY, &kp PSTE,
&kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, &kp CAPS, &kp LEFT, &kp DOWN, &kp UP, &kp RGHT, &kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, &kp CLCK, &kp LARW, &kp DARW, &kp UARW, &kp RARW,
X_NA, &kp ALGR, X_NA, X_NA, X_NA, &kp INS, &kp HOME, &kp PGDN, &kp PGUP, &kp END, X_NA, &kp RALT, X_NA, X_NA, X_NA, &kp INS, &kp HOME, &kp PGDN, &kp PGUP, &kp END,
X_NP, X_NP, X_NA, X_NA, X_NA, &kp ENT, &kp BSPC, &kp DEL, X_NP, X_NP X_NP, X_NP, X_NA, X_NA, X_NA, &kp RET, &kp BKSP, &kp DEL, X_NP, X_NP
) )
#endif #endif
>; >;
@ -128,17 +128,17 @@ X_NP, X_NP, X_NA, X_NA, X_NA, &kp ENT, &kp BSPC, &kp DEL,
bindings = < bindings = <
#if defined MIRYOKU_NAV_VI #if defined MIRYOKU_NAV_VI
SUBMAP( SUBMAP(
&rst, X_NA, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU, &bootloader, X_NA, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU,
&kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, &kp MS_L, &kp MS_D, &kp MS_U, &kp MS_R, X_NU, &kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU,
X_NA, &kp ALGR, X_NA, X_NA, X_NA, &kp WH_L, &kp WH_D, &kp WH_U, &kp WH_R, X_NU, X_NA, &kp RALT, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU,
X_NP, X_NP, X_NA, X_NA, X_NA, &kp BTN1, &kp BTN3, &kp BTN2, X_NP, X_NP X_NP, X_NP, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NP, X_NP
) )
#else #else
SUBMAP( SUBMAP(
&rst, X_NA, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU, &bootloader, X_NA, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU,
&kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, X_NU, &kp MS_L, &kp MS_D, &kp MS_U, &kp MS_R, &kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU,
X_NA, &kp ALGR, X_NA, X_NA, X_NA, X_NU, &kp WH_L, &kp WH_D, &kp WH_U, &kp WH_R, X_NA, &kp RALT, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU,
X_NP, X_NP, X_NA, X_NA, X_NA, &kp BTN1, &kp BTN3, &kp BTN2, X_NP, X_NP X_NP, X_NP, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NP, X_NP
) )
#endif #endif
>; >;
@ -147,17 +147,17 @@ X_NP, X_NP, X_NA, X_NA, X_NA, &kp BTN1, &kp BTN3, &kp BTN2,
bindings = < bindings = <
#if defined MIRYOKU_NAV_VI #if defined MIRYOKU_NAV_VI
SUBMAP( SUBMAP(
&rst, X_NA, X_NA, X_NA, X_NA, &kp RGB_TOG, &kp RGB_MOD, &kp RGB_HUI, &kp RGB_SAI, &kp RGB_VAI, &bootloader, X_NA, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU,
&kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, &kp MPRV, &kp VOLD, &kp VOLU, &kp MNXT, X_NU, &kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, &kp M_PREV, &kp VOLD, &kp VOLU, &kp M_NEXT, X_NU,
X_NA, &kp ALGR, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU, X_NA, &kp RALT, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU,
X_NP, X_NP, X_NA, X_NA, X_NA, &kp MSTP, &kp MPLY, &kp MUTE, X_NP, X_NP X_NP, X_NP, X_NA, X_NA, X_NA, &kp M_STOP, &kp M_PLAY, &kp M_MUTE, X_NP, X_NP
) )
#else #else
SUBMAP( SUBMAP(
&rst, X_NA, X_NA, X_NA, X_NA, &kp RGB_TOG, &kp RGB_MOD, &kp RGB_HUI, &kp RGB_SAI, &kp RGB_VAI, &bootloader, X_NA, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU,
&kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, X_NU, &kp MPRV, &kp VOLD, &kp VOLU, &kp MNXT, &kp LGUI, &kp LALT, &kp LCTL, &kp LSFT, X_NA, X_NU, &kp M_PREV, &kp VOLD, &kp VOLU, &kp M_NEXT,
X_NA, &kp ALGR, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU, X_NA, &kp RALT, X_NA, X_NA, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU,
X_NP, X_NP, X_NA, X_NA, X_NA, &kp MSTP, &kp MPLY, &kp MUTE, X_NP, X_NP X_NP, X_NP, X_NA, X_NA, X_NA, &kp M_STOP, &kp M_PLAY, &kp M_MUTE, X_NP, X_NP
) )
#endif #endif
>; >;
@ -165,30 +165,30 @@ X_NP, X_NP, X_NA, X_NA, X_NA, &kp MSTP, &kp MPLY, &kp MUTE,
NSL_layer { NSL_layer {
bindings = < bindings = <
SUBMAP( SUBMAP(
&kp LBRC, &kp 7, &kp 8, &kp 9, &kp RBRC, X_NA, X_NA, X_NA, X_NA, &rst, &kp LBKT, &kp NUM_7, &kp NUM_8, &kp NUM_9, &kp RBKT, X_NA, X_NA, X_NA, X_NA, &bootloader,
&kp SCLN, &kp 4, &kp 5, &kp 6, &kp EQL, X_NA, &kp LSFT, &kp LCTL, &kp LALT, &kp LGUI, &kp SCLN, &kp NUM_4, &kp NUM_5, &kp NUM_6, &kp EQL, X_NA, &kp LSFT, &kp LCTL, &kp LALT, &kp LGUI,
&kp GRV, &kp 1, &kp 2, &kp 3, &kp BSLS, X_NA, X_NA, X_NA, &kp ALGR, X_NA, &kp GRAV, &kp NUM_1, &kp NUM_2, &kp NUM_3, &kp BSLH, X_NA, X_NA, X_NA, &kp RALT, X_NA,
X_NP, X_NP, &kp DOT, &kp 0, &kp MINS, X_NA, X_NA, X_NA, X_NP, X_NP X_NP, X_NP, &kp DOT, &kp NUM_0, &kp MINUS, X_NA, X_NA, X_NA, X_NP, X_NP
) )
>; >;
}; };
NSSL_layer { NSSL_layer {
bindings = < bindings = <
SUBMAP( SUBMAP(
&kp LCBR, &kp AMPR, &kp ASTR, &kp LPRN, &kp RCBR, X_NA, X_NA, X_NA, X_NA, &rst, X_NU, X_NU, X_NU, X_NU, X_NU, X_NA, X_NA, X_NA, X_NA, &bootloader,
&kp COLN, &kp DLR, &kp PERC, &kp CIRC, &kp PLUS, X_NA, &kp LSFT, &kp LCTL, &kp LALT, &kp LGUI, X_NU, X_NU, X_NU, X_NU, X_NU, X_NA, &kp LSFT, &kp LCTL, &kp LALT, &kp LGUI,
&kp TILD, &kp EXLM, &kp AT, &kp HASH, &kp PIPE, X_NA, X_NA, X_NA, &kp ALGR, X_NA, X_NU, X_NU, X_NU, X_NU, X_NU, X_NA, X_NA, X_NA, &kp RALT, X_NA,
X_NP, X_NP, &kp LPRN, &kp RPRN, &kp UNDS, X_NA, X_NA, X_NA, X_NP, X_NP X_NP, X_NP, X_NU, X_NU, X_NU, X_NA, X_NA, X_NA, X_NP, X_NP
) )
>; >;
}; };
FUNL_layer { FUNL_layer {
bindings = < bindings = <
SUBMAP( SUBMAP(
&kp F12, &kp F7, &kp F8, &kp F9, &kp PSCR, X_NA, X_NA, X_NA, X_NA, &rst, &kp F12, &kp F7, &kp F8, &kp F9, &kp PRSC, X_NA, X_NA, X_NA, X_NA, &bootloader,
&kp F11, &kp F4, &kp F5, &kp F6, &kp SLCK, X_NA, &kp LSFT, &kp LCTL, &kp LALT, &kp LGUI, &kp F11, &kp F4, &kp F5, &kp F6, &kp SCLK, X_NA, &kp LSFT, &kp LCTL, &kp LALT, &kp LGUI,
&kp F10, &kp F1, &kp F2, &kp F3, &kp PAUS, X_NA, X_NA, X_NA, &kp ALGR, X_NA, &kp F10, &kp F1, &kp F2, &kp F3, &kp PAUS, X_NA, X_NA, X_NA, &kp RALT, X_NA,
X_NP, X_NP, &kp APP, &kp SPC, &kp TAB, X_NA, X_NA, X_NA, X_NP, X_NP X_NP, X_NP, X_NU, &kp SPC, &kp TAB, X_NA, X_NA, X_NA, X_NP, X_NP
) )
>; >;
}; };