summaryrefslogtreecommitdiffstats
path: root/users/manna-harbour_miryoku
diff options
context:
space:
mode:
Diffstat (limited to 'users/manna-harbour_miryoku')
-rw-r--r--users/manna-harbour_miryoku/config.h12
-rw-r--r--users/manna-harbour_miryoku/manna-harbour_miryoku.c247
-rw-r--r--users/manna-harbour_miryoku/manna-harbour_miryoku.h44
-rw-r--r--users/manna-harbour_miryoku/miryoku.org2399
-rw-r--r--users/manna-harbour_miryoku/rules.mk24
5 files changed, 2324 insertions, 402 deletions
diff --git a/users/manna-harbour_miryoku/config.h b/users/manna-harbour_miryoku/config.h
index db16088158..38d363299e 100644
--- a/users/manna-harbour_miryoku/config.h
+++ b/users/manna-harbour_miryoku/config.h
@@ -1,8 +1,13 @@
+// Copyright 2019 Manna Harbour
+// https://github.com/manna-harbour/miryoku
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
+// 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/>.
+
#pragma once
-// default but important
+// default but used in macros
+#undef TAPPING_TERM
#define TAPPING_TERM 200
// Prevent normal rollover on alphas from accidentally triggering mods.
@@ -11,6 +16,11 @@
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
#define TAPPING_FORCE_HOLD
+// Auto Shift
+#define NO_AUTO_SHIFT_ALPHA
+#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
+#define AUTO_SHIFT_NO_SETUP
+
// Recommended for heavy chording.
#define QMK_KEYS_PER_SCAN 4
diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.c b/users/manna-harbour_miryoku/manna-harbour_miryoku.c
index 9bc0f17e63..ff25b77934 100644
--- a/users/manna-harbour_miryoku/manna-harbour_miryoku.c
+++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.c
@@ -1,91 +1,216 @@
+// Copyright 2019 Manna Harbour
+// https://github.com/manna-harbour/miryoku
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
+// 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/>.
+
#include "manna-harbour_miryoku.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#if defined MIRYOKU_ALPHAS_QWERTY
+#if defined MIRYOKU_LAYERS_FLIP
[BASE] = LAYOUT_miryoku(
+ #if defined MIRYOKU_ALPHAS_COLEMAK
+ KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
+ LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O),
+ KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
+ U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP
+ #elif defined MIRYOKU_ALPHAS_COLEMAKDHK
+ KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
+ LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O),
+ KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
+ U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP
+ #elif defined MIRYOKU_ALPHAS_DVORAK
+ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
+ LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S),
+ KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z,
+ U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP
+ #elif defined MIRYOKU_ALPHAS_HALMAK
+ KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J,
+ LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I),
+ KC_F, ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), KC_Y,
+ U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP
+ #elif defined MIRYOKU_ALPHAS_WORKMAN
+ KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT,
+ LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I),
+ KC_Z, ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
+ U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP
+ #elif defined MIRYOKU_ALPHAS_QWERTY
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT),
KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
- KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
+ U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP
+ #else
+ KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
+ LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O),
+ KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
+ U_NP, U_NP, LT(FUN, KC_DEL), LT(NUM, KC_BSPC), LT(SYM, KC_ENT), LT(MOUSE, KC_TAB), LT(NAV, KC_SPC), LT(MEDIA, KC_ESC), U_NP, U_NP
+ #endif
),
-#elif defined MIRYOKU_ALPHAS_DVORAK
- [BASE] = LAYOUT_miryoku(
- KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
- LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S),
- KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z,
- KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
+ #if defined MIRYOKU_NAV_INVERTEDT
+ [NAV] = LAYOUT_miryoku(
+ KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, U_NA, U_NA, U_NA, U_NA, RESET,
+ KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_CAPS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
+ U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA,
+ U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, U_NA, U_NA, U_NA, U_NP, U_NP
+ ),
+ [MOUSE] = LAYOUT_miryoku(
+ KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, U_NU, U_NA, U_NA, U_NA, U_NA, RESET,
+ KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
+ U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA,
+ U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, U_NA, U_NA, U_NA, U_NP, U_NP
+ ),
+ [MEDIA] = LAYOUT_miryoku(
+ U_NU, U_NU, KC_VOLU, U_NU, U_NU, U_NA, U_NA, U_NA, U_NA, RESET,
+ U_NU, KC_MPRV, KC_VOLD, KC_MNXT, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
+ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, U_NA, U_NA, U_NA, KC_ALGR, U_NA,
+ U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP
+ ),
+ #else
+ [NAV] = LAYOUT_miryoku(
+ KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, U_NA, U_NA, U_NA, U_NA, RESET,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAPS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
+ U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA,
+ U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, U_NA, U_NA, U_NA, U_NP, U_NP
+ ),
+ [MOUSE] = LAYOUT_miryoku(
+ KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, U_NU, U_NA, U_NA, U_NA, U_NA, RESET,
+ KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
+ U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, U_NA, U_NA, KC_ALGR, U_NA,
+ U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, U_NA, U_NA, U_NA, U_NP, U_NP
+ ),
+ [MEDIA] = LAYOUT_miryoku(
+ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, U_NA, U_NA, U_NA, U_NA, RESET,
+ KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
+ U_NU, U_NU, U_NU, U_NU, U_NU, U_NA, U_NA, U_NA, KC_ALGR, U_NA,
+ U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP
+ ),
+ #endif
+ [MBO] = LAYOUT_miryoku(
+ U_RDO, U_PST, U_CPY, U_CUT, U_UND, U_RDO, U_PST, U_CPY, U_CUT, U_UND,
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP
+ ),
+ [NUM] = LAYOUT_miryoku(
+ RESET, U_NA, U_NA, U_NA, U_NA, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC,
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN,
+ U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV,
+ U_NP, U_NP, U_NA, U_NA, U_NA, KC_MINS, KC_0, KC_DOT, U_NP, U_NP
),
-#elif defined MIRYOKU_ALPHAS_COLEMAK
+ [SYM] = LAYOUT_miryoku(
+ RESET, U_NA, U_NA, U_NA, U_NA, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR,
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_PLUS, KC_DLR, KC_PERC, KC_CIRC, KC_COLN,
+ U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_PIPE, KC_EXLM, KC_AT, KC_HASH, KC_TILD,
+ U_NP, U_NP, U_NA, U_NA, U_NA, KC_UNDS, KC_LPRN, KC_RPRN, U_NP, U_NP
+ ),
+ [FUN] = LAYOUT_miryoku(
+ RESET, U_NA, U_NA, U_NA, U_NA, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12,
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_SLCK, KC_F4, KC_F5, KC_F6, KC_F11,
+ U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10,
+ U_NP, U_NP, U_NA, U_NA, U_NA, KC_TAB, KC_SPC, KC_APP, U_NP, U_NP
+ )
+,
+#else
[BASE] = LAYOUT_miryoku(
+ #if defined MIRYOKU_ALPHAS_COLEMAK
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O),
KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
- KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
- ),
-#elif defined MIRYOKU_ALPHAS_COLEMAKDH
- [BASE] = LAYOUT_miryoku(
+ U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP
+ #elif defined MIRYOKU_ALPHAS_COLEMAKDHK
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O),
KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
- KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
- ),
-#elif defined MIRYOKU_ALPHAS_WORKMAN
- [BASE] = LAYOUT_miryoku(
+ U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP
+ #elif defined MIRYOKU_ALPHAS_DVORAK
+ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
+ LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S),
+ KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z,
+ U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP
+ #elif defined MIRYOKU_ALPHAS_HALMAK
+ KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J,
+ LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I),
+ KC_F, ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), KC_Y,
+ U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP
+ #elif defined MIRYOKU_ALPHAS_WORKMAN
KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT,
LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I),
KC_Z, ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
- KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
- ),
-#else
- [BASE] = LAYOUT_miryoku(
+ U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP
+ #elif defined MIRYOKU_ALPHAS_QWERTY
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT),
+ KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
+ U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP
+ #else
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O),
KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH,
- KC_NP, KC_NP, LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_NP, KC_NP
+ U_NP, U_NP, LT(MEDIA, KC_ESC), LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), LT(SYM, KC_ENT), LT(NUM, KC_BSPC), LT(FUN, KC_DEL), U_NP, U_NP
+ #endif
),
-#endif
- [NAVR] = LAYOUT_miryoku(
- KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_AGIN, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE,
- KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
- KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
- KC_NP, KC_NP, KC_NA, KC_NA, KC_NA, KC_ENT, KC_BSPC, KC_DEL, KC_NP, KC_NP
- ),
- [MOUR] = LAYOUT_miryoku(
- KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_NU, KC_NU, KC_NU, KC_NU, KC_NU,
- KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R,
- KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R,
- KC_NP, KC_NP, KC_NA, KC_NA, KC_NA, KC_BTN1, KC_BTN3, KC_BTN2, KC_NP, KC_NP
+ #if defined MIRYOKU_NAV_VI
+ [NAV] = LAYOUT_miryoku(
+ RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND,
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAPS,
+ U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS,
+ U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
+ ),
+ [MOUSE] = LAYOUT_miryoku(
+ RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND,
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, U_NU,
+ U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, U_NU,
+ U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP
+ ),
+ [MEDIA] = LAYOUT_miryoku(
+ RESET, U_NA, U_NA, U_NA, U_NA, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI,
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, U_NU,
+ U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU,
+ U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP
+ ),
+ #else
+ [NAV] = LAYOUT_miryoku(
+ RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND,
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
+ U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
+ U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
+ ),
+ [MOUSE] = LAYOUT_miryoku(
+ RESET, U_NA, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND,
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R,
+ U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R,
+ U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP
),
+ [MEDIA] = LAYOUT_miryoku(
+ RESET, U_NA, U_NA, U_NA, U_NA, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI,
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT,
+ U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_NU, U_NU, U_NU, U_NU, U_NU,
+ U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP
+ ),
+ #endif
[MBO] = LAYOUT_miryoku(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_NP, KC_NP, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2, KC_NP, KC_NP
- ),
- [MEDR] = LAYOUT_miryoku(
- KC_RST, KC_NA, KC_NA, KC_NA, KC_NA, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI,
- KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_NU, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT,
- KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_NU, KC_NU, KC_NU, KC_NU, KC_NU,
- KC_NP, KC_NP, KC_NA, KC_NA, KC_NA, KC_MSTP, KC_MPLY, KC_MUTE, KC_NP, KC_NP
- ),
- [FUNL] = LAYOUT_miryoku(
- KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_NA, KC_NA, KC_NA, KC_NA, KC_RST,
- KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
- KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_NA, KC_NA, KC_NA, KC_ALGR, KC_NA,
- KC_NP, KC_NP, KC_APP, KC_SPC, KC_TAB, KC_NA, KC_NA, KC_NA, KC_NP, KC_NP
- ),
- [NSL] = LAYOUT_miryoku(
- KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_NA, KC_NA, KC_NA, KC_NA, KC_RST,
- KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, KC_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
- KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, KC_NA, KC_NA, KC_NA, KC_ALGR, KC_NA,
- KC_NP, KC_NP, KC_DOT, KC_0, KC_MINS, KC_NA, KC_NA, KC_NA, KC_NP, KC_NP
- ),
- [NSSL] = LAYOUT_miryoku(
- KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NA, KC_NA, KC_NA, KC_NA, KC_RST,
- KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NA, KC_NA, KC_NA, KC_ALGR, KC_NA,
- KC_NP, KC_NP, KC_GT, KC_RPRN, KC_UNDS, KC_NA, KC_NA, KC_NA, KC_NP, KC_NP
+ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_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, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP
+ ),
+ [NUM] = LAYOUT_miryoku(
+ KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, U_NA, U_NA, U_NA, U_NA, RESET,
+ KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
+ KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, U_NA, U_NA, U_NA, KC_ALGR, U_NA,
+ U_NP, U_NP, KC_DOT, KC_0, KC_MINS, U_NA, U_NA, U_NA, U_NP, U_NP
+ ),
+ [SYM] = LAYOUT_miryoku(
+ KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, U_NA, U_NA, U_NA, U_NA, RESET,
+ KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, U_NA, U_NA, U_NA, KC_ALGR, U_NA,
+ U_NP, U_NP, KC_LPRN, KC_RPRN, KC_UNDS, U_NA, U_NA, U_NA, U_NP, U_NP
+ ),
+ [FUN] = LAYOUT_miryoku(
+ KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, U_NA, U_NA, U_NA, U_NA, RESET,
+ KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
+ KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, U_NA, U_NA, U_NA, KC_ALGR, U_NA,
+ U_NP, U_NP, KC_APP, KC_SPC, KC_TAB, U_NA, U_NA, U_NA, U_NP, U_NP
)
+#endif
};
diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.h b/users/manna-harbour_miryoku/manna-harbour_miryoku.h
index 5f543cb0f6..4d62c17079 100644
--- a/users/manna-harbour_miryoku/manna-harbour_miryoku.h
+++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.h
@@ -1,19 +1,41 @@
+// Copyright 2019 Manna Harbour
+// https://github.com/manna-harbour/miryoku
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
+// 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/>.
+
#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
+#define U_NP KC_NO // key is not present
+#define U_NA KC_NO // present but not available for use
+#define U_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
+enum layers { BASE, MBO, MEDIA, NAV, MOUSE, SYM, NUM, FUN };
-enum layers { BASE, MBO, MEDR, NAVR, MOUR, NSSL, NSL, FUNL };
+#if defined MIRYOKU_CLIPBOARD_FUN
+#define U_RDO KC_AGIN
+#define U_PST KC_PSTE
+#define U_CPY KC_COPY
+#define U_CUT KC_CUT
+#define U_UND KC_UNDO
+#elif defined MIRYOKU_CLIPBOARD_MAC
+#define U_RDO SCMD(KC_Z)
+#define U_PST LCMD(KC_V)
+#define U_CPY LCMD(KC_C)
+#define U_CUT LCMD(KC_X)
+#define U_UND LCMD(KC_Z)
+#elif defined MIRYOKU_CLIPBOARD_WIN
+#define U_RDO C(KC_Y)
+#define U_PST C(KC_V)
+#define U_CPY C(KC_C)
+#define U_CUT C(KC_X)
+#define U_UND C(KC_Z)
+#else
+#define U_RDO KC_AGIN
+#define U_PST S(KC_INS)
+#define U_CPY C(KC_INS)
+#define U_CUT S(KC_DEL)
+#define U_UND KC_UNDO
+#endif
diff --git a/users/manna-harbour_miryoku/miryoku.org b/users/manna-harbour_miryoku/miryoku.org
index 011e43455a..2f6b1d5a88 100644
--- a/users/manna-harbour_miryoku/miryoku.org
+++ b/users/manna-harbour_miryoku/miryoku.org
@@ -1,8 +1,8 @@
# After making changes to code or tables call org-babel-tangle (C-c C-v t).
-#+Title: Miryoku [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/miryoku-roa-32.png]]
+#+Title: Miryoku [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]]
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/kle-miryoku-keycodes.png]]
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/cover/miryoku-kle-cover.png]]
Miryoku is an ergonomic, minimal, orthogonal layout for ergo or ortho keyboards,
implemented as part of the QMK firmware.
@@ -13,23 +13,83 @@ different physical layouts as a subset without code duplication using the QMK
userspace feature and C macros.
Please see the [[https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org][development branch]] for any [[https://github.com/qmk/qmk_firmware/compare/master...manna-harbour:miryoku][updates not yet merged into QMK]].
-Additional visualisations are provided outside QMK in the [[https://github.com/manna-harbour/miryoku/blob/master/README.org][Miryoku (Extras) repository]].
-* Contents :TOC:
+To checkout the development branch in your existing QMK build environment:
+#+BEGIN_SRC sh :tangle no
+git remote add manna-harbour git@github.com:manna-harbour/qmk_firmware.git # ssh
+git remote add manna-harbour https://github.com/manna-harbour/qmk_firmware.git # https
+git fetch manna-harbour
+git checkout --track manna-harbour/miryoku
+#+END_SRC
+
+Additional implementations and visualisations are provided outside QMK in the
+[[https://github.com/manna-harbour/miryoku/blob/master/README.org][Miryoku (Extras) repository]].
+
+
+* Contents :TOC_3:
- [[#layout][Layout]]
- [[#general-principles][General Principles]]
- [[#details][Details]]
- [[#layers][Layers]]
+ - [[#base][Base]]
+ - [[#nav][Nav]]
+ - [[#mouse][Mouse]]
+ - [[#mouse-buttons-overlay][Mouse Buttons Overlay]]
+ - [[#media][Media]]
+ - [[#num][Num]]
+ - [[#sym][Sym]]
+ - [[#fun][Fun]]
+ - [[#alternative-layouts][Alternative Layouts]]
- [[#code-generation][Code Generation]]
- [[#table-conversion-scripts][Table Conversion Scripts]]
+ - [[#table-layout-taphold][table-layout-taphold]]
+ - [[#table-layout-half][table-layout-half]]
+ - [[#table-layout-full][table-layout-full]]
+ - [[#table-enums][table-enums]]
+ - [[#table-keycode-mappings][table-keycode-mappings]]
- [[#data][Data]]
+ - [[#symbol-names][symbol-names]]
+ - [[#mods][mods]]
+ - [[#nonkc][nonkc]]
+ - [[#header][header]]
+ - [[#license-qmk][license-qmk]]
- [[#subset-mapping][Subset Mapping]]
- [[#userspace][Userspace]]
+ - [[#usersmanna-harbour_miryokurulesmk][users/manna-harbour_miryoku/rules.mk]]
+ - [[#usersmanna-harbour_miryokuconfigh][users/manna-harbour_miryoku/config.h]]
+ - [[#usersmanna-harbour_miryokumanna-harbour_miryokuh][users/manna-harbour_miryoku/manna-harbour_miryoku.h]]
+ - [[#usersmanna-harbour_miryokumanna-harbour_miryokuc][users/manna-harbour_miryoku/manna-harbour_miryoku.c]]
- [[#layouts][Layouts]]
+ - [[#60_ansi][60_ansi]]
+ - [[#ergodox][ergodox]]
+ - [[#ortho_4x10][ortho_4x10]]
+ - [[#ortho_4x12][ortho_4x12]]
+ - [[#ortho_5x12][ortho_5x12]]
+ - [[#ortho_5x15][ortho_5x15]]
+ - [[#planck_mit][planck_mit]]
+ - [[#split_3x5_3][split_3x5_3]]
+ - [[#split_3x6_3][split_3x6_3]]
- [[#keyboards][Keyboards]]
+ - [[#atreus][atreus]]
+ - [[#ergotravel][ergotravel]]
+ - [[#for_science][for_science]]
+ - [[#gergo][gergo]]
+ - [[#handwireddactyl_manuform4x5][handwired/dactyl_manuform/4x5]]
+ - [[#handwireddactyl_manuform5x6][handwired/dactyl_manuform/5x6]]
+ - [[#keebioiris][keebio/iris]]
+ - [[#keyboardioatreus][keyboardio/atreus]]
+ - [[#kyria][kyria]]
+ - [[#lily58][lily58]]
+ - [[#moonlander][moonlander]]
+ - [[#redox_w][redox_w]]
+ - [[#sofle][sofle]]
+ - [[#torn][torn]]
+ - [[#customisation][Customisation]]
+ - [[#examples][Examples]]
+- [[#experimental-features][Experimental Features]]
+ - [[#bilateral-combinations][Bilateral Combinations]]
+ - [[#retro-shift][Retro Shift]]
- [[#documentation][Documentation]]
- - [[#qmk][QMK]]
- - [[#org-mode][Org Mode]]
- [[#contact][Contact]]
* Layout
@@ -70,184 +130,465 @@ Additional visualisations are provided outside QMK in the [[https://github.com/m
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.
+- Auto Shift for numbers and symbols.
** 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.
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-reference.png]]
+
+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. 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 '-' (~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 for each layer.
-Basic keycodes are entered without the KC_ prefix. Symbols can be entered as-is
-(excepting '"' (DQUO) and '|' (PIPE)). Empty cells are unused.
+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.
-The base layer has both halves of the layout joined for convenience. Other
-layers are specified as a single hand.
-*** Base (BASE)
+*** Base
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-base.png]]
-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. RST and
-mods will be available on sub layers on the same hand as the layer change thumb
-key. Unknown names are considered to be layer names.
+The base layer alphas are Colemak Mod-DH. Dot, comma, slash, and apostrophe are
+included with the alphas. The primary, secondary, and tertiary thumb keys are
+backspace, enter, delete on the right and space, tab, escape on the left.
+
+Alternative alpha arrangements are also available.
-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.
**** Tap
-#+NAME: colemakdhm
-| 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 |
+
+***** Alphas
+
+#+NAME: colemakdh
+| 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 | / |
+
+
+***** Thumbs
+
+#+NAME: thumbs
+| U_NP | U_NP | ESC | SPC | TAB | ENT | BSPC | DEL | U_NP | U_NP |
**** Hold
#+NAME: hold
-| RST | | | | | | | | | RST |
-| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI |
-| | ALGR | | | | | | | ALGR | |
-| NP | NP | MEDR | NAVR | MOUR | NSSL | NSL | FUNL | NP | NP |
+| RESET | | | | | | | | | RESET |
+| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI |
+| | ALGR | | | | | | | ALGR | |
+| U_NP | U_NP | MEDIA | NAV | MOUSE | SYM | NUM | FUN | U_NP | U_NP |
-**** Alternative Base Layer Alphas
+*** Nav
-Alternative base layer alphas are provided. To select, append
-e.g. ~MIRYOKU_ALPHAS=QWERTY~ to the make command line when building.
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-nav.png]]
-***** QWERTY (QWERTY)
-#+NAME: 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 |
+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.
+Alternative clipboard key mappings and navigation key arrangements are
+available.
-***** Dvorak (DVORAK)
-#+NAME: 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 |
+#+NAME: nav-r
+| 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 |
-***** Colemak (COLEMAK)
+*** Mouse
+
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-mouse.png]]
+
+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. Clipboard keys are duplicated from the Nav
+layer.
+
+#+NAME: mouse-r
+| U_RDO | U_PST | U_CPY | U_CUT | U_UND |
+| | MS_L | MS_D | MS_U | MS_R |
+| | WH_L | WH_D | WH_U | WH_R |
+| BTN1 | BTN3 | BTN2 | U_NP | U_NP |
+
+
+*** Mouse Buttons Overlay
+
+Available for automatic activation depending on keyboard hardware and
+configuration. Not activated manually.
+
+#+NAME: 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_NP | U_NP | BTN2 | BTN3 | BTN1 | BTN1 | BTN3 | BTN2 | U_NP | U_NP |
+
+
+*** Media
+
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-media.png]]
+
+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.
+
+#+NAME: media-r
+| RGB_TOG | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI |
+| | MPRV | VOLD | VOLU | MNXT |
+| | | | | |
+| MSTP | MPLY | MUTE | U_NP | U_NP |
+
+
+*** Num
+
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-num.png]]
+
+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.
+
+#+NAME: num-l
+| [ | 7 | 8 | 9 | ] |
+| ; | 4 | 5 | 6 | = |
+| ` | 1 | 2 | 3 | \ |
+| U_NP | U_NP | DOT | 0 | MINS |
+
+
+*** Sym
+
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-sym.png]]
+
+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.
+
+#+NAME: sym-l
+| { | & | * | ( | } |
+| : | $ | % | ^ | + |
+| ~ | ! | @ | # | PIPE |
+| U_NP | U_NP | ( | ) | _ |
+
+
+*** Fun
+
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-fun.png]]
+
+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.
+
+
+#+NAME: fun-l
+| F12 | F7 | F8 | F9 | PSCR |
+| F11 | F4 | F5 | F6 | SLCK |
+| F10 | F1 | F2 | F3 | PAUS |
+| U_NP | U_NP | APP | SPC | TAB |
+
+
+*** Alternative Layouts
+
+The defaults are recommended, but alternative layouts are provided to
+accommodate existing muscle memory and platform differences.
+
+