qmk_firmware/miryoku.org at miryoku · manna-harbour/qmk_firmware · GitHub
source link: https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Miryoku
Miryoku is an ergonomic, minimal, orthogonal layout for ergo or ortho keyboards, implemented as part of the QMK firmware.
The layout is maintained in emacs org-mode tables and converted to QMK keymap data structures using embedded python scripts. It is mapped onto keyboards with different physical layouts as a subset without code duplication using the QMK userspace feature and C macros.
Please see the development branch for any updates not yet merged into QMK. Additional implementations and visualisations are provided outside QMK in the Miryoku (Extras) repository.
Contents
Layout
General Principles
- Use layers instead of reaching.
- Use both hands instead of contortions.
- Use the home positions as much as possible.
- Make full use of the thumbs.
- Avoid unnecessary complication.
Details
- 5 columns, 3 rows, 3 thumb keys, 2 hands.
- Can be used on almost any split or non-split ergo or ortho keyboard.
- Includes all keys found on a US layout TKL keyboard, plus media keys and mouse emulation.
- Home row is the middle row, home thumb key is the middle thumb key.
- Maximum 1-u movement from home position for fingers and thumbs, and only along one axis (except for the inner index finger column which is deprioritised compared with the home columns).
- Dual-function modifiers on home row, mirrored on both hands.
- Dual-function layer change on thumbs.
- Layers are designed orthogonally with a single purpose per hand and are accessed by holding a thumb key on the opposite hand.
- All layers on the same hand are based on the same basic key arrangement.
- Holding layer change and modifiers on one hand combined with a single key press on the other hand can produce any combination of modifiers and single keys without any finger contortions.
- Single function mods are also defined on layers on the same hand as the layer change thumb key so layer change and mods can be held in any order or simultaneously without race conditions.
- As mods are only enabled on the opposite hand, auto-repeat is available on the home row on layers for use with cursor and mouse keys.
- Tap-hold auto-repeat is disabled to permit faster tap-hold switching on thumbs, but thumb tap keys are mirrored onto some layers for use with auto-repeat. On other layers thumb keys are redefined with important functions for that layer.
Layers
The layers are maintained in tables, with the thumb keys on the bottom row. NP indicates the key is not present and is used to fill in the table around the thumb keys. The grid arrangement of the tables does not imply a particular physical layout.
Basic keycodes are entered without the KC_
prefix. Symbols can be entered
as-is, except for ‘”’ (DQUO
) and ‘|’ (PIPE
). Empty cells are unused.
The base layer has both halves of the layout joined for convenience. Other layers are specified as a single hand.
Base (BASE
)
The base layer is maintained as separate tap and hold tables and are combined into the corresponding tap-hold keycodes for mods and layer change. Mods (and reset) will be available on sub layers on the same hand as the layer change thumb key. Unknown names are considered to be layer names.
Base layer alphas are Colemak-DHm. Thumb keys are backspace, enter, delete on the right and space, tab, escape on the left. Dot, comma and apostrophe are included for prose, dot and slash for file and directory names.
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 | , | . | / |
NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP |
RST | RST | ||||||||
LGUI | LALT | LCTL | LSFT | LSFT | LCTL | LALT | LGUI | ||
ALGR | ALGR | ||||||||
NP | NP | MEDR | NAVR | MOUR | NSSL | NSL | FUNL | NP | NP |
Navigation (NAVR
)
Primary right-hand layer (left home thumb) is navigation and editing. Cursor keys are on the home position, line and page movement below, clipboard above, caps lock and insert on the inner column. Thumb keys are duplicated from the base layer to avoid having to layer change mid edit and to enable auto-repeat.
AGIN | UNDO | CUT | COPY | PSTE |
CAPS | LEFT | DOWN | UP | RGHT |
INS | HOME | PGDN | PGUP | END |
ENT | BSPC | DEL | NP | NP |
Mouse (MOUR
)
Secondary right-hand layer is mouse emulation. Mouse movement mirrors cursor navigation on home and wheel mirrors line / page movement below. Buttons are on the thumbs (L, M, R). Mouse movement, click, and drag with modifiers can be performed from the home position. Unused keys are available for other related functions.
MS_L | MS_D | MS_U | MS_R | |
WH_L | WH_D | WH_U | WH_R | |
BTN1 | BTN3 | BTN2 | NP | NP |
Mouse Buttons Overlay (MBO
)
Available for automatic activation depending on keyboard hardware and configuration. Not activated manually.
NP | NP | BTN1 | BTN3 | BTN2 | NP | NP |
Media (MEDR
)
Tertiary right-hand layer is media control, with volume up / down and next / prev mirroring the navigation keys. Pause, stop and mute are on thumbs. RGB control is on the top row (combine with shift to invert). Unused keys are available for other related functions.
TOG | MOD | HUI | SAI | VAI |
MPRV | VOLD | VOLU | MNXT | |
MSTP | MPLY | MUTE | NP | NP |
Numerals and Symbols (NSL
)
Primary left-hand layer (right home thumb) is numerals and symbols. Numerals are in the standard numpad locations with symbols in the remaining positions. Dot is duplicated from the base layer.
[ | 7 | 8 | 9 | ] |
; | 4 | 5 | 6 | = |
` | 1 | 2 | 3 | \ |
NP | NP | . | 0 | - |
Shifted Numerals and Symbols (NSSL
)
Secondary left-hand layer has shifted symbols in the same locations to reduce chording when using mods with shifted symbols. Open parenthesis is duplicated next to close parenthesis.
{ | & | * | ( | } |
: | $ | % | ^ | + |
~ | ! | @ | # | PIPE |
NP | NP | ( | ) | _ |
Function and System (FUNL
)
Tertiary left-hand layer has function keys mirroring the numerals on the primary layer with extras on the pinkie column, plus system keys on the inner column. App (menu) is on the tertiary thumb key and other thumb keys are duplicated from the base layer to enable auto-repeat.
F12 | F7 | F8 | F9 | PSCR |
F11 | F4 | F5 | F6 | SLCK |
F10 | F1 | F2 | F3 | PAUS |
NP | NP | APP | SPC | TAB |
Alternative Layouts
The defaults are recommended, but alternative layouts are provided to accommodate existing muscle memory.
Base Layer Alphas
To select, append the corresponding option to the make
command line when
building, e.g. MIRYOKU_ALPHAS=QWERTY
.
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 | , | . | / |
NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP |
Dvorak (MIRYOKU_ALPHAS=DVORAK
)
‘ | , | . | 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 |
NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP |
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 | , | . | / |
NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | 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 | , | . | / |
NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | 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 | , | . | / |
NP | NP | ESC | SPC | TAB | ENT | BSPC | DEL | NP | NP |
vi-Style Navigation
To select, append MIRYOKU_NAV=VI
to the make
command line when building.
Navigation (NAVR)
AGIN | UNDO | CUT | COPY | PSTE |
LEFT | DOWN | UP | RGHT | CAPS |
HOME | PGDN | PGUP | END | INS |
ENT | BSPC | DEL | NP | NP |
Mouse (MOUR)
MS_L | MS_D | MS_U | MS_R | |
WH_L | WH_D | WH_U | WH_R | |
BTN1 | BTN3 | BTN2 | NP | NP |
Media (MEDR)
TOG | MOD | HUI | SAI | VAI |
MPRV | VOLD | VOLU | MNXT | |
MSTP | MPLY | MUTE | NP | NP |
Code Generation
Table Conversion Scripts
table-layout-taphold
Produce base layer from separate tap and hold tables.
width = 19 mods_dict = dict.fromkeys(mods_list) 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 = ' [' + layer_name + '] = LAYOUT_miryoku(\n' for tap_row, hold_row in map(None, tap_table, hold_table): results += ' ' for tap, hold in map(None, tap_row, hold_row): if tap == '': code = 'NU' elif tap in symbol_names_dict: code = symbol_names_dict[tap] else: code = tap code = 'KC_' + str(code) if hold in mods_dict: code = str(hold) + '_T(' + code + ')' elif hold != '' and hold != 'NP' and hold != 'RST': code = 'LT(' + str(hold) + ', ' + code + ')' results += (code + ', ').ljust(width) results = results.rstrip(' ') + '\n' results = results.rstrip('\n, ') + '\n )' return results
table-layout-half
Produce sub layers given layer name and corresponding table for single hand and incorporating mods and reset from base layer. Layer names must end with ‘R’ or ‘L’. A layer with shifted symbols can also be generated.
width = 9 mods_dict = dict.fromkeys(mods_list) 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 length = len(half_table[0]) mode = layer_name[-1:].lower() results = ' [' + layer_name + '] = LAYOUT_miryoku(\n' for half_row, hold_row in map(None, half_table, hold_table): results += ' ' 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 = '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 results += ('KC_' + str(code) + ', ').ljust(width) else: for hold in hold_row_lr: if hold == '' or hold != 'NP' and hold != 'RST' and hold not in mods_dict: code = 'NA' else: code = hold results += ('KC_' + str(code) + ', ').ljust(width) results = results.rstrip(' ') + '\n' results = results.rstrip('\n, ') + '\n )' return results
table-layout-full
Produce full layer from single table. Fill for unused keys is configurable.
width = 9 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 = ' [' + layer_name + '] = LAYOUT_miryoku(\n' for row in table: results += ' ' for key in row: if key == '': code = fill elif key in symbol_names_dict: code = symbol_names_dict[key] else: code = key code = 'KC_' + str(code) results += (code + ', ').ljust(width) results = results.rstrip(' ') + '\n' results = results.rstrip('\n, ') + '\n )' return results
table-enums
Produce layer enums from layer names in hold table.
mods_dict = dict.fromkeys(mods_list) results = 'enum layers { BASE, MBO, ' for hold_row in hold_table: for hold in hold_row: if hold not in mods_dict and hold != '' and hold != 'NP' and hold != 'RST': results += hold + ', ' results = results.rstrip(', ') + ' };' return results
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 |
Modifiers usable in hold table. Need to have the same name for KC_
and _T
versions.
header
Header for tangled source files.
generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
Subset Mapping
The keymap, build options, and configuration are shared between keyboards. The layout is mapped onto keyboards with different physical layouts as a subset.
Userspace
The keymap is defined for LAYOUT_miryoku
which is 10x4, with the outer 2
positions on the bottom row unused and the rest of the bottom row being the
thumb keys.
users/manna-harbour_miryoku/rules.mk
Build options. Automatically included.
# <<header>> MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control SRC += manna-harbour_miryoku.c # keymap # select alternative base layer alphas ifneq ($(strip $(MIRYOKU_ALPHAS)),) OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS) endif # select alternative nav ifneq ($(strip $(MIRYOKU_NAV)),) OPT_DEFS += -DMIRYOKU_NAV_$(MIRYOKU_NAV) endif # select alternative subset mappings ifneq ($(strip $(MIRYOKU_MAPPING)),) OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING) endif
users/manna-harbour_miryoku/config.h
Config options. Automatically included.
// <<header>> #pragma once // default but important #define TAPPING_TERM 200 // Prevent normal rollover on alphas from accidentally triggering mods. #define IGNORE_MOD_TAP_INTERRUPT // Enable rapid switch from tap to hold, disables double tap hold auto-repeat. #define TAPPING_FORCE_HOLD // Recommended for heavy chording. #define QMK_KEYS_PER_SCAN 4 // Mouse key speed and acceleration. #undef MOUSEKEY_DELAY #define MOUSEKEY_DELAY 0 #undef MOUSEKEY_INTERVAL #define MOUSEKEY_INTERVAL 16 #undef MOUSEKEY_WHEEL_DELAY #define MOUSEKEY_WHEEL_DELAY 0 #undef MOUSEKEY_MAX_SPEED #define MOUSEKEY_MAX_SPEED 6 #undef MOUSEKEY_TIME_TO_MAX #define MOUSEKEY_TIME_TO_MAX 64
users/manna-harbour_miryoku/manna-harbour_miryoku.h
Keymap-related definitions. Included from manna-harbour_miryoku.c
. Can be
included from keymap or layout keymap.c
if needed.
// <<header>> #pragma once #include QMK_KEYBOARD_H #define KC_NP KC_NO // key is not present #define KC_NA KC_NO // present but not available for use #define KC_NU KC_NO // available but not used // non-KC_ keycodes #define KC_RST RESET #define KC_TOG RGB_TOG #define KC_MOD RGB_MOD #define KC_HUI RGB_HUI #define KC_SAI RGB_SAI #define KC_VAI RGB_VAI <<table-enums()>>
users/manna-harbour_miryoku/manna-harbour_miryoku.c
Contains the keymap. Added from rules.mk
.
// <<header>> #include "manna-harbour_miryoku.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined MIRYOKU_ALPHAS_QWERTY <<table-layout-taphold(layer_name="BASE", tap_table=qwerty, hold_table=hold)>>, #elif defined MIRYOKU_ALPHAS_DVORAK <<table-layout-taphold(layer_name="BASE", tap_table=dvorak, hold_table=hold)>>, #elif defined MIRYOKU_ALPHAS_COLEMAK <<table-layout-taphold(layer_name="BASE", tap_table=colemak, hold_table=hold)>>, #elif defined MIRYOKU_ALPHAS_COLEMAKDH <<table-layout-taphold(layer_name="BASE", tap_table=colemakdh, hold_table=hold)>>, #elif defined MIRYOKU_ALPHAS_WORKMAN <<table-layout-taphold(layer_name="BASE", tap_table=workman, hold_table=hold)>>, #else <<table-layout-taphold(layer_name="BASE", tap_table=colemakdhm, hold_table=hold)>>, #endif #if defined MIRYOKU_NAV_VI <<table-layout-half(layer_name="NAVR", half_table=navr-vi)>>, <<table-layout-half(layer_name="MOUR", half_table=mour-vi)>>, <<table-layout-half(layer_name="MEDR", half_table=medr-vi)>>, #else <<table-layout-half(layer_name="NAVR", half_table=navr)>>, <<table-layout-half(layer_name="MOUR", half_table=mour)>>, <<table-layout-half(layer_name="MEDR", half_table=medr)>>, #endif <<table-layout-full(layer_name="MBO", table=mbo, fill="TRNS")>>, <<table-layout-half(layer_name="FUNL", half_table=funl)>>, <<table-layout-half(layer_name="NSL", half_table=nsl)>>, <<table-layout-half(layer_name="NSSL", half_table=nssl)>> };
Layouts
To use the keymap on a keyboard supporting the layouts feature, LAYOUT_miryoku
is defined as a macro mapping onto the layout’s own LAYOUT
macro, leaving the
unused keys as KC_NO
.
ergodox
For the ergodox layout, the main 5x3 alphas are used as usual. The primary and secondary thumb keys are the inner and outer 2u thumb keys and the tertiary thumb key is the innermost key of the partial bottom row. The remaining keys are unused.
To build for any keyboard using the this layout (ergodone, ergodox_ez, ergodox_infinity, hotdox) e.g. the ergodox_ez,
make ergodox_ez:manna-harbour_miryoku:flash
layouts/community/ergodox/manna-harbour_miryoku/config.h
Contains subset mapping.
// <<header>> #pragma once #define XXX KC_NO #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ )\ LAYOUT_ergodox_pretty(\ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX,\ XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ XXX, XXX, XXX, XXX, K32, K37, XXX, XXX, XXX, XXX,\ XXX, XXX, XXX, XXX,\ XXX, XXX,\ K33, K34, XXX, XXX, K35, K36\ )
layouts/community/ergodox/manna-harbour_miryoku/keymap.c
Required by the build system.
// <<header>>
ortho_4x12
For the ortho_4x12 layout, the middle two columns, and the 2 keys on each end of the bottom row are unused. This allows the hands to be positioned without ulnar deviation of the wrists.
In the implementation, the 2 unused middle columns bottom row keys are mapped as duplicates of their adjacent keys to support alternative bottom row physical layouts including 1x2uC (MIT), 1x2uR, 1x2uL, and 2x2u.
For split keyboards using this layout the halves can be positioned and rotated
for each hand and so an alternative mapping is provided. The right half is as
follows: The rightmost column bottom 3 keys is the pinkie column. The middle 4
columns top 3 rows are for the remaining fingers. The pinkie column is one row
lower than the other columns to provide some column stagger. The bottom row
left 3 keys are the thumb keys. The remaining keys are unused. To select this
mapping, append MIRYOKU_MAPPING=SPLIT
to the make
command line when
building.
To build for any keyboard using this layout (4x4, nori, chimera_ls, contra, divergetm2, jj40, lets_split, lets_split_eh, meira, niu_mini, planck, telophase, vitamins_included, zinc, zlant, ortho48, kbd4x, levinson, wavelet, plaid):
make planck/rev6:manna-harbour_miryoku:flash # planck make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SPLIT # levinson
layouts/community/ortho_4x12/manna-harbour_miryoku/config.h
Contains subset mapping.
// <<header>> #pragma once #if defined MIRYOKU_MAPPING_SPLIT #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ )\ LAYOUT_ortho_4x12(\ KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, KC_NO,\ K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09,\ K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\ K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\ ) #else #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ )\ LAYOUT_ortho_4x12(\ K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\ KC_NO, KC_NO, K32, K33, K34, K34, K35, K35, K36, K37, KC_NO, KC_NO\ ) #endif
layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
Required by the build system.
// <<header>>
Keyboards
To use the keymap on a keyboard which does not support the layouts feature,
LAYOUT_miryoku
is defined as a macro mapping onto the keyboard’s own LAYOUT
macro, leaving the unused keys as KC_NO
.
atreus
Only the main 5x3 alphas and the inner 3 thumb keys are used.
To build for this keyboard,
make atreus:manna-harbour_miryoku:flash
keyboards/atreus/keymaps/manna-harbour_miryoku/config.h
Contains subset mapping.
// <<header>> #pragma once #define XXX KC_NO #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ )\ LAYOUT(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX\ )
keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c
Required by the build system.
// <<header>>
crkbd
The outer columns are unused.
To build for this keyboard,
make crkbd:manna-harbour_miryoku:flash
keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h
Contains subset mapping.
// <<header>> #pragma once #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ )\ LAYOUT(\ KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO,\ KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO,\ KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO,\ K32, K33, K34, K35, K36, K37\ )
keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c
Required by the build system.
// <<header>>
gergo
Only the main 5x3 alphas and the outer 3 thumb keys are used.
To build for this keyboard,
make gergo:manna-harbour_miryoku:flash
keyboards/gergo/keymaps/manna-harbour_miryoku/config.h
Contains subset mapping.
// <<header>> #pragma once #define XXX KC_NO #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ )\ LAYOUT_gergo(\ XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\ XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ K32, K33, K34, XXX, XXX, K35, K36, K37\ )
keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c
Required by the build system.
// <<header>>
Only the main 5x3 alphas and the bottom 3 thumb keys are used.
To build for this keyboard,
make keebio/iris/rev4:manna-harbour_miryoku:flash
keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h
Contains subset mapping.
// <<header>> #pragma once #define XXX KC_NO #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ )\ LAYOUT(\ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ K32, K33, K34, K35, K36, K37\ )
keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c
Required by the build system.
// <<header>>
kyria
Only the main 5x3 alphas and the middle 3 lower thumb keys are used.
To build for this keyboard,
make kyria/rev1:manna-harbour_miryoku:flash
keyboards/kyria/keymaps/manna-harbour_miryoku/config.h
Contains subset mapping.
// <<header>> #pragma once #define XXX KC_NO #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ )\ LAYOUT(\ XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX\ )
keyboards/kyria/keymaps/manna-harbour_miryoku/keymap.c
Required by the build system.
// <<header>>
lily58
Only the main 5x3 alphas and the inner 3 thumb keys are used.
To build for this keyboard,
make lily58:manna-harbour_miryoku:flash
keyboards/lily58/keymaps/manna-harbour_miryoku/config.h
Contains subset mapping.
// <<header>> #pragma once #define XXX KC_NO #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ )\ LAYOUT(\ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\ XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\ XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\ XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\ XXX, K32, K33, K34, K35, K36, K37, XXX\ )
keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c
Required by the build system.
// <<header>>
minidox
To build for this keyboard,
make minidox/rev1:manna-harbour_miryoku:flash
keyboards/minidox/keymaps/manna-harbour_miryoku/config.h
Contains subset mapping.
// <<header>> #pragma once #define XXX KC_NO #define LAYOUT_miryoku(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ )\ LAYOUT(\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ K32, K33, K34, K35, K36, K37\ )
keyboards/minidox/keymaps/manna-harbour_miryoku/keymap.c
Required by the build system.
// <<header>>
Customisation
To add customisations to a keyboard or layout while importing the miryoku
keymap, copy config.h
and keymap.c
from the keyboard or layout’s
manna-harbour_miryoku/
directory to a new directory, and create rules.mk
containing USER_NAME := manna-harbour_miryoku
. The miryoku keymap will be
imported and customisations can be added to those files as usual. Keycodes can
be added to unused keys by editing LAYOUT_miryoku
in config.h
.
For an unsupported keyboard or layout, do as above with a similar keyboard or
layout and modify LAYOUT_miryoku
in config.h
referring to the keyboard or
layout’s LAYOUT
macro.
Documentation
Org Mode
Contact
For issues with this branch, or to request support for additional base layer alphas, layouts, or keyboards, please open an issue.
For more general discussion, please join a recent relevant thread or send a PM.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK