summaryrefslogtreecommitdiff
path: root/users
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2022-07-02 11:26:57 +0000
committerQMK Bot <hello@qmk.fm>2022-07-02 11:26:57 +0000
commita949d32072e277150508590d048d5dfcba8083bd (patch)
treea5fbd12a469d2f57b5c6722f1d1cedcd1c940bcc /users
parent5d8b6847c7baaa12b76d5fea1eb93bdbf128946e (diff)
parent3842b15cf136a6edd4e6491abb3b9a85dbd5867f (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'users')
-rw-r--r--users/manna-harbour_miryoku/config.h14
-rw-r--r--users/manna-harbour_miryoku/custom_config.h7
-rw-r--r--users/manna-harbour_miryoku/custom_rules.mk3
-rw-r--r--users/manna-harbour_miryoku/manna-harbour_miryoku.c253
-rw-r--r--users/manna-harbour_miryoku/manna-harbour_miryoku.h54
-rw-r--r--users/manna-harbour_miryoku/miryoku_babel/miryoku_alternatives.h267
-rw-r--r--users/manna-harbour_miryoku/miryoku_babel/miryoku_layer.h139
-rw-r--r--users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_names.h9
-rw-r--r--users/manna-harbour_miryoku/post_rules.mk39
-rw-r--r--users/manna-harbour_miryoku/readme.org2253
-rw-r--r--users/manna-harbour_miryoku/rules.mk30
11 files changed, 658 insertions, 2410 deletions
diff --git a/users/manna-harbour_miryoku/config.h b/users/manna-harbour_miryoku/config.h
index d24f52edae..c4538ee304 100644
--- a/users/manna-harbour_miryoku/config.h
+++ b/users/manna-harbour_miryoku/config.h
@@ -1,6 +1,5 @@
// Copyright 2019 Manna Harbour
// https://github.com/manna-harbour/miryoku
-// generated -*- 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/>.
@@ -21,9 +20,6 @@
#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
#define AUTO_SHIFT_NO_SETUP
-// Recommended for heavy chording.
-#define QMK_KEYS_PER_SCAN 4
-
// Mouse key speed and acceleration.
#undef MOUSEKEY_DELAY
#define MOUSEKEY_DELAY 0
@@ -35,3 +31,13 @@
#define MOUSEKEY_MAX_SPEED 6
#undef MOUSEKEY_TIME_TO_MAX
#define MOUSEKEY_TIME_TO_MAX 64
+
+// Thumb Combos
+#if defined (MIRYOKU_KLUDGE_THUMBCOMBOS)
+ #define COMBO_COUNT 8
+ #define COMBO_TERM 200
+ #define EXTRA_SHORT_COMBOS
+#endif
+
+#include "custom_config.h"
+
diff --git a/users/manna-harbour_miryoku/custom_config.h b/users/manna-harbour_miryoku/custom_config.h
new file mode 100644
index 0000000000..f5ba5ab1b1
--- /dev/null
+++ b/users/manna-harbour_miryoku/custom_config.h
@@ -0,0 +1,7 @@
+// Copyright 2019 Manna Harbour
+// https://github.com/manna-harbour/miryoku
+
+// 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
+
diff --git a/users/manna-harbour_miryoku/custom_rules.mk b/users/manna-harbour_miryoku/custom_rules.mk
new file mode 100644
index 0000000000..6e222bb11c
--- /dev/null
+++ b/users/manna-harbour_miryoku/custom_rules.mk
@@ -0,0 +1,3 @@
+# Copyright 2019 Manna Harbour
+# https://github.com/manna-harbour/miryoku
+
diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.c b/users/manna-harbour_miryoku/manna-harbour_miryoku.c
index 6347183417..28ad18d1aa 100644
--- a/users/manna-harbour_miryoku/manna-harbour_miryoku.c
+++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.c
@@ -1,229 +1,50 @@
// Copyright 2019 Manna Harbour
// https://github.com/manna-harbour/miryoku
-// generated -*- 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 QMK_KEYBOARD_H
+
#include "manna-harbour_miryoku.h"
+enum layers { MIRYOKU_LAYER_NAMES };
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#if defined MIRYOKU_LAYERS_FLIP
- [BASE] = LAYOUT_miryoku(
- #if defined MIRYOKU_ALPHAS_AZERTY
- KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
- LGUI_T(KC_Q), 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_M),
- LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT),
- 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_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),
- LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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),
- LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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),
- LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, 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),
- LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, 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),
- LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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),
- LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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_QWERTZ
- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, 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),
- LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
- #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),
- LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
- ),
- #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
- [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
- ),
- [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_AZERTY
- KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
- LGUI_T(KC_Q), 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_M),
- LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT),
- 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_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),
- LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
- #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),
- LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
- #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),
- LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, 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),
- LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, 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),
- LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
- #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),
- LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
- #elif defined MIRYOKU_ALPHAS_QWERTZ
- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, 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),
- LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+ [BASE] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_BASE),
+ [NAV] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_NAV),
+ [MOUSE] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_MOUSE),
+ [MEDIA] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_MEDIA),
+ [NUM] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_NUM),
+ [SYM] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_SYM),
+ [FUN] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_FUN),
+ [BUTTON] = U_MACRO_VA_ARGS(LAYOUT_miryoku, MIRYOKU_LAYER_BUTTON)
+};
+
+#if defined (MIRYOKU_KLUDGE_THUMBCOMBOS)
+const uint16_t PROGMEM thumbcombos_base_right[] = {LT(SYM, KC_ENT), LT(NUM, KC_BSPC), COMBO_END};
+const uint16_t PROGMEM thumbcombos_base_left[] = {LT(NAV, KC_SPC), LT(MOUSE, KC_TAB), COMBO_END};
+const uint16_t PROGMEM thumbcombos_nav[] = {KC_ENT, KC_BSPC, COMBO_END};
+const uint16_t PROGMEM thumbcombos_mouse[] = {KC_BTN1, KC_BTN3, COMBO_END};
+const uint16_t PROGMEM thumbcombos_media[] = {KC_MSTP, KC_MPLY, COMBO_END};
+const uint16_t PROGMEM thumbcombos_num[] = {KC_0, KC_MINS, COMBO_END};
+ #if defined (MIRYOKU_LAYERS_FLIP)
+const uint16_t PROGMEM thumbcombos_sym[] = {KC_UNDS, KC_LPRN, COMBO_END};
#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),
- LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+const uint16_t PROGMEM thumbcombos_sym[] = {KC_RPRN, KC_UNDS, COMBO_END};
#endif
- ),
- #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
- ),
+const uint16_t PROGMEM thumbcombos_fun[] = {KC_SPC, KC_TAB, COMBO_END};
+combo_t key_combos[COMBO_COUNT] = {
+ COMBO(thumbcombos_base_right, LT(FUN, KC_DEL)),
+ COMBO(thumbcombos_base_left, LT(MEDIA, KC_ESC)),
+ COMBO(thumbcombos_nav, KC_DEL),
+ COMBO(thumbcombos_mouse, KC_BTN2),
+ COMBO(thumbcombos_media, KC_MUTE),
+ COMBO(thumbcombos_num, KC_DOT),
+ #if defined (MIRYOKU_LAYERS_FLIP)
+ COMBO(thumbcombos_sym, KC_RPRN),
#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
- ),
+ COMBO(thumbcombos_sym, KC_LPRN),
#endif
- [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
- [BUTTON] = LAYOUT_miryoku(
- U_UND, U_CUT, U_CPY, U_PST, U_RDO, 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,
- U_UND, U_CUT, U_CPY, U_PST, U_RDO, 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
- )
+ COMBO(thumbcombos_fun, KC_APP)
};
+#endif
diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.h b/users/manna-harbour_miryoku/manna-harbour_miryoku.h
index 1d14f61710..f6ef63c360 100644
--- a/users/manna-harbour_miryoku/manna-harbour_miryoku.h
+++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.h
@@ -1,41 +1,41 @@
// Copyright 2019 Manna Harbour
// https://github.com/manna-harbour/miryoku
-// generated -*- 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
+#include "miryoku_babel/miryoku_layer_names.h"
+#include "miryoku_babel/miryoku_layer.h"
+
+#define U_MACRO_VA_ARGS(macro, ...) macro(__VA_ARGS__)
#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
-enum layers { BASE, BUTTON, MEDIA, NAV, MOUSE, SYM, NUM, FUN };
-
-#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)
+#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
+ #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_babel/miryoku_alternatives.h b/users/manna-harbour_miryoku/miryoku_babel/miryoku_alternatives.h
new file mode 100644
index 0000000000..8a0e70a6b5
--- /dev/null
+++ b/users/manna-harbour_miryoku/miryoku_babel/miryoku_alternatives.h
@@ -0,0 +1,267 @@
+// Copyright 2019 Manna Harbour
+// https://github.com/manna-harbour/miryoku
+// generated -*- buffer-read-only: t -*-
+// target: qmk
+
+// 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP \
+KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
+LGUI_T(KC_Q), 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_M), \
+LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT), \
+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
+
+#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP \
+KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
+LGUI_T(KC_Y), LALT_T(KC_I), LCTL_T(KC_E), LSFT_T(KC_A), KC_DOT, KC_D, LSFT_T(KC_S), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_B), \
+LT(BUTTON, KC_J), ALGR_T(KC_SLSH), KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, ALGR_T(KC_P), LT(BUTTON, KC_V), \
+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
+
+#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP \
+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), \
+LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP \
+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), \
+LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP \
+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), \
+LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP \
+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), \
+LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP \
+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), \
+LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP \
+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), \
+LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP \
+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), \
+LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP \
+KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, 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), \
+LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_AZERTY \
+KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
+LGUI_T(KC_Q), 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_M), \
+LT(BUTTON, KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(BUTTON, KC_QUOT), \
+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
+
+#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15 \
+KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
+LGUI_T(KC_Y), LALT_T(KC_I), LCTL_T(KC_E), LSFT_T(KC_A), KC_DOT, KC_D, LSFT_T(KC_S), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_B), \
+LT(BUTTON, KC_J), ALGR_T(KC_SLSH), KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, ALGR_T(KC_P), LT(BUTTON, KC_V), \
+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
+
+#define MIRYOKU_ALTERNATIVES_BASE_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), \
+LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH \
+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), \
+LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_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), \
+LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_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), \
+LT(BUTTON, KC_SLSH), ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_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), \
+LT(BUTTON, KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_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), \
+LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_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), \
+LT(BUTTON, KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ \
+KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, 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), \
+LT(BUTTON, KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(BUTTON, 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
+
+
+#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP \
+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
+
+#define MIRYOKU_ALTERNATIVES_NAV_FLIP \
+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
+
+#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT \
+RESET, U_NA, U_NA, U_NA, U_NA, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, \
+KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, \
+U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
+U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
+
+#define MIRYOKU_ALTERNATIVES_NAV_VI \
+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
+
+#define MIRYOKU_ALTERNATIVES_NAV \
+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
+
+
+#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP \
+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
+
+#define MIRYOKU_ALTERNATIVES_MOUSE_FLIP \
+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
+
+#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT \
+RESET, U_NA, U_NA, U_NA, U_NA, U_NU, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, \
+KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, \
+U_NA, KC_ALGR, U_NA, U_NA, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
+U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP
+
+#define MIRYOKU_ALTERNATIVES_MOUSE_VI \
+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
+
+#define MIRYOKU_ALTERNATIVES_MOUSE \
+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
+
+
+#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP \
+RGB_SAI, RGB_HUI, KC_VOLU, RGB_MOD, RGB_TOG, U_NA, U_NA, U_NA, U_NA, RESET, \
+RGB_VAI, KC_MPRV, KC_VOLD, KC_MNXT, OUT_AUTO, 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
+
+#define MIRYOKU_ALTERNATIVES_MEDIA_FLIP \
+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, OUT_AUTO, 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
+
+#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT \
+RESET, U_NA, U_NA, U_NA, U_NA, RGB_TOG, RGB_MOD, KC_VOLU, RGB_HUI, RGB_SAI, \
+KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, OUT_AUTO, KC_MPRV, KC_VOLD, KC_MNXT, RGB_VAI, \
+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
+
+#define MIRYOKU_ALTERNATIVES_MEDIA_VI \
+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, OUT_AUTO, \
+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
+
+#define MIRYOKU_ALTERNATIVES_MEDIA \
+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, OUT_AUTO, 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
+
+
+#define MIRYOKU_ALTERNATIVES_NUM_FLIP \
+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
+
+#define MIRYOKU_ALTERNATIVES_NUM \
+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
+
+
+#define MIRYOKU_ALTERNATIVES_SYM_FLIP \
+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
+
+#define MIRYOKU_ALTERNATIVES_SYM \
+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
+
+
+#define MIRYOKU_ALTERNATIVES_FUN_FLIP \
+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
+
+#define MIRYOKU_ALTERNATIVES_FUN \
+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
+
+
+#define MIRYOKU_ALTERNATIVES_BUTTON \
+U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
+KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NO, KC_NO, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
+U_UND, U_CUT, U_CPY, U_PST, U_RDO, 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
diff --git a/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer.h b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer.h
new file mode 100644
index 0000000000..025bf3914c
--- /dev/null
+++ b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer.h
@@ -0,0 +1,139 @@
+// Copyright 2019 Manna Harbour
+// https://github.com/manna-harbour/miryoku
+// generated -*- 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 "miryoku_alternatives.h"
+
+#if !defined(MIRYOKU_LAYER_BASE)
+ #if defined (MIRYOKU_LAYERS_FLIP)
+ #if defined (MIRYOKU_ALPHAS_AZERTY)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP
+ #elif defined (MIRYOKU_ALPHAS_BEAKL15)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP
+ #elif defined (MIRYOKU_ALPHAS_COLEMAK)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP
+ #elif defined (MIRYOKU_ALPHAS_COLEMAKDHK)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP
+ #elif defined (MIRYOKU_ALPHAS_DVORAK)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP
+ #elif defined (MIRYOKU_ALPHAS_HALMAK)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP
+ #elif defined (MIRYOKU_ALPHAS_WORKMAN)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP
+ #elif defined (MIRYOKU_ALPHAS_QWERTY)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
+ #elif defined (MIRYOKU_ALPHAS_QWERTZ)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP
+ #else
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
+ #endif
+ #else
+ #if defined (MIRYOKU_ALPHAS_AZERTY)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AZERTY
+ #elif defined (MIRYOKU_ALPHAS_BEAKL15)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_BEAKL15
+ #elif defined (MIRYOKU_ALPHAS_COLEMAK)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAK
+ #elif defined (MIRYOKU_ALPHAS_COLEMAKDHK)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK
+ #elif defined (MIRYOKU_ALPHAS_DVORAK)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_DVORAK
+ #elif defined (MIRYOKU_ALPHAS_HALMAK)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_HALMAK
+ #elif defined (MIRYOKU_ALPHAS_WORKMAN)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_WORKMAN
+ #elif defined (MIRYOKU_ALPHAS_QWERTY)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTY
+ #elif defined (MIRYOKU_ALPHAS_QWERTZ)
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTZ
+ #else
+ #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
+ #endif
+ #endif
+#endif
+
+#if !defined(MIRYOKU_LAYER_NAV)
+ #if defined (MIRYOKU_LAYERS_FLIP)
+ #if defined (MIRYOKU_NAV_INVERTEDT)
+ #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP
+ #else
+ #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_FLIP
+ #endif
+ #else
+ #if defined (MIRYOKU_NAV_INVERTEDT)
+ #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_INVERTEDT
+ #elif defined (MIRYOKU_NAV_VI)
+ #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_VI
+ #else
+ #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV
+ #endif
+ #endif
+#endif
+
+#if !defined(MIRYOKU_LAYER_MOUSE)
+ #if defined (MIRYOKU_LAYERS_FLIP)
+ #if defined (MIRYOKU_NAV_INVERTEDT)
+ #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP
+ #else
+ #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_FLIP
+ #endif
+ #else
+ #if defined (MIRYOKU_NAV_INVERTEDT)
+ #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT
+ #elif defined (MIRYOKU_NAV_VI)
+ #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_VI
+ #else
+ #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE
+ #endif
+ #endif
+#endif
+
+#if !defined(MIRYOKU_LAYER_MEDIA)
+ #if defined (MIRYOKU_LAYERS_FLIP)
+ #if defined (MIRYOKU_NAV_INVERTEDT)
+ #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP
+ #else
+ #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_FLIP
+ #endif
+ #else
+ #if defined (MIRYOKU_NAV_INVERTEDT)
+ #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT
+ #elif defined (MIRYOKU_NAV_VI)
+ #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_VI
+ #else
+ #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA
+ #endif
+ #endif
+#endif
+
+#if !defined(MIRYOKU_LAYER_NUM)
+ #if defined (MIRYOKU_LAYERS_FLIP)
+ #define MIRYOKU_LAYER_NUM MIRYOKU_ALTERNATIVES_NUM_FLIP
+ #else
+ #define MIRYOKU_LAYER_NUM MIRYOKU_ALTERNATIVES_NUM
+ #endif
+#endif
+
+#if !defined(MIRYOKU_LAYER_SYM)
+ #if defined (MIRYOKU_LAYERS_FLIP)
+ #define MIRYOKU_LAYER_SYM MIRYOKU_ALTERNATIVES_SYM_FLIP
+ #else
+ #define MIRYOKU_LAYER_SYM MIRYOKU_ALTERNATIVES_SYM
+ #endif
+#endif
+
+#if !defined(MIRYOKU_LAYER_FUN)
+ #if defined (MIRYOKU_LAYERS_FLIP)
+ #define MIRYOKU_LAYER_FUN MIRYOKU_ALTERNATIVES_FUN_FLIP
+ #else
+ #define MIRYOKU_LAYER_FUN MIRYOKU_ALTERNATIVES_FUN
+ #endif
+#endif
+
+#if !defined(MIRYOKU_LAYER_BUTTON)
+ #define MIRYOKU_LAYER_BUTTON MIRYOKU_ALTERNATIVES_BUTTON
+#endif
diff --git a/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_names.h b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_names.h
new file mode 100644
index 0000000000..87e1f18d8c
--- /dev/null
+++ b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_names.h
@@ -0,0 +1,9 @@
+// Copyright 2019 Manna Harbour
+// https://github.com/manna-harbour/miryoku
+// generated -*- 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/>.
+
+#if !defined (MIRYOKU_LAYER_NAMES)
+ #define MIRYOKU_LAYER_NAMES BASE, BUTTON, NAV, MOUSE, MEDIA, NUM, SYM, FUN
+#endif
diff --git a/users/manna-harbour_miryoku/post_rules.mk b/users/manna-harbour_miryoku/post_rules.mk
new file mode 100644
index 0000000000..c5b4b7d28e
--- /dev/null
+++ b/users/manna-harbour_miryoku/post_rules.mk
@@ -0,0 +1,39 @@
+# Copyright 2019 Manna Harbour
+# https://github.com/manna-harbour/miryoku
+
+SRC += manna-harbour_miryoku.c # keymaps
+
+# alternative layouts:
+
+# alphas
+ifneq ($(strip $(MIRYOKU_ALPHAS)),)
+ OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS)
+endif
+
+# nav
+ifneq ($(strip $(MIRYOKU_NAV)),)
+ OPT_DEFS += -DMIRYOKU_NAV_$(MIRYOKU_NAV)
+endif
+
+# clipboard
+ifneq ($(strip $(MIRYOKU_CLIPBOARD)),)
+ OPT_DEFS += -DMIRYOKU_CLIPBOARD_$(MIRYOKU_CLIPBOARD)
+endif
+
+# layers
+ifneq ($(strip $(MIRYOKU_LAYERS)),)
+ OPT_DEFS += -DMIRYOKU_LAYERS_$(MIRYOKU_LAYERS)
+endif
+
+# subset mappings
+ifneq ($(strip $(MIRYOKU_MAPPING)),)
+ OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING)
+endif
+
+# kludges:
+
+# thumb combos
+ifeq ($(strip $(MIRYOKU_KLUDGE_THUMBCOMBOS)),yes)
+ COMBO_ENABLE = yes
+ OPT_DEFS += -DMIRYOKU_KLUDGE_THUMBCOMBOS
+endif
diff --git a/users/manna-harbour_miryoku/readme.org b/users/manna-harbour_miryoku/readme.org
index b904738a67..9e3e587240 100644
--- a/users/manna-harbour_miryoku/readme.org
+++ b/users/manna-harbour_miryoku/readme.org
@@ -1,10 +1,11 @@
-# After making changes to code or tables call org-babel-tangle (C-c C-v t).
+# Copyright 2022 Manna Harbour
+# https://github.com/manna-harbour/miryoku
* Miryoku QMK [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]]
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/cover/miryoku-kle-cover.png]]
-[[https://github.com/manna-harbour/miryoku/][Miryoku]] is an ergonomic, minimal, orthogonal, and universal keyboard layout. This is the Miryoku implementation for [[https://qmk.fm][QMK]].
+[[https://github.com/manna-harbour/miryoku/][Miryoku]] is an ergonomic, minimal, orthogonal, and universal keyboard layout. [[https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku][Miryoku QMK]] is the Miryoku implementation for [[https://qmk.fm][QMK]].
** Branches
@@ -33,833 +34,77 @@ git checkout --track miryoku_qmk/miryoku
#+END_SRC
-** Layout
+** Building
-*** 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.
+*** Local Builds
+First [[https://docs.qmk.fm/#/newbs_getting_started][set up the QMK build environment and build the default keymap for your keyboard]].
-*** Details
+Build with ~manna-harbour_miryoku~ as the keymap name. Customised defaults for [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options can be set in [[#userspace][custom_rules.mk]]. Options can also be set or overridden at build time.
-- 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.
-- Auto Shift for numbers and symbols.
+**** qmk
-*** Layers
+Build with the ~qmk~ command. E.g.
-[[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.
-
-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
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-base.png]]
-
-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.
-
-
-***** Tap
-
-
-****** 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
-| RESET | | | | | | | | | RESET |
-| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI |
-| BUTTON | ALGR | | | | | | | ALGR | BUTTON |
-| U_NP | U_NP | MEDIA | NAV | MOUSE | SYM | NUM | FUN | U_NP | U_NP |
-
-
-**** Nav
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-nav.png]]
-
-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.
-
-#+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 |
-
-
-**** 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 |
-
-
-**** Button
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-button.png]]
-
-Provides mouse buttons, mods, and clipboard keys for use with integrated or
-external pointing devices, used with either hand. The layer is available for
-automatic activation depending on hardware and configuration. It can also be
-activated manually by holding a bottom row pinkie key (however GUI and Undo will
-be unavailable).
-
-#+NAME: button
-| U_UND | U_CUT | U_CPY | U_PST | U_RDO | U_RDO | U_PST | U_CPY | U_CUT | U_UND |
-| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI |
-| U_UND | U_CUT | U_CPY | U_PST | U_RDO | 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
-
-[[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.
-
-
-***** Alphas
-
-To select, append the corresponding option to the ~make~ command line when
-building, e.g. ~MIRYOKU_ALPHAS=QWERTY~.
-
-
-****** AZERTY
-
-~MIRYOKU_ALPHAS=AZERTY~
-
-#+NAME: azerty
-| A | Z | E | R | T | Y | U | I | O | P |
-| Q | S | D | F | G | H | J | K | L | M |
-| W | X | C | V | B | N | , | DOT | / | ' |
-
-
-****** Colemak
-
-~MIRYOKU_ALPHAS=COLEMAK~
-
-#+NAME: 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 | / |
-
-
-****** Colemak Mod-DHk
-
-~MIRYOKU_ALPHAS=COLEMAKDHK~
-
-#+NAME: colemakdhk
-| Q | W | F | P | B | J | L | U | Y | ' |
-| A | R | S | T | G | K | N | E | I | O |
-| Z | X | C | D | V | M | H | , | DOT | / |
-
-
-****** Dvorak
-
-~MIRYOKU_ALPHAS=DVORAK~
-
-#+NAME: dvorak
-| ' | , | DOT | P | Y | F | G | C | R | L |
-| A | O | E | U | I | D | H | T | N | S |
-| / | Q | J | K | X | B | M | W | V | Z |
-
-
-****** Halmak
-
-~MIRYOKU_ALPHAS=HALMAK~
-
-#+NAME: halmak
-| W | L | R | B | Z | ' | Q | U | D | J |
-| S | H | N | T | , | DOT | A | E | O | I |
-| F | M | V | C | / | G | P | X | K | Y |
-
-
-****** Workman
-
-~MIRYOKU_ALPHAS=WORKMAN~
-
-#+NAME: workman
-| Q | D | R | W | B | J | F | U | P | ' |
-| A | S | H | T | G | Y | N | E | O | I |
-| Z | X | M | C | V | K | L | , | DOT | / |
-
-
-****** QWERTY
-
-~MIRYOKU_ALPHAS=QWERTY~
-
-#+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 | , | DOT | / |
-
-
-****** QWERTZ
-
-~MIRYOKU_ALPHAS=QWERTZ~
-
-#+NAME: qwertz
-| Q | W | E | R | T | Z | U | I | O | P |
-| A | S | D | F | G | H | J | K | L | ' |
-| Y | X | C | V | B | N | M | , | DOT | / |
-
-
-***** Nav
-
-
-****** vi-Style
-
-To select, append ~MIRYOKU_NAV=VI~ to the ~make~ command line when building.
-Not available with ~MIRYOKU_LAYERS=FLIP~.
-
-
-******* Nav
-
-#+NAME: nav-r-vi
-| 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
-
-#+NAME: mouse-r-vi
-| 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 |
-
-
-******* Media
-
-#+NAME: media-r-vi
-| RGB_TOG | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI |
-| MPRV | VOLD | VOLU | MNXT | |
-| | | | | |
-| MSTP | MPLY | MUTE | U_NP | U_NP |
-
-
-****** Inverted-T
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-reference-flip-invertedt.png]]
-
-To select, append ~MIRYOKU_NAV=INVERTEDT~ to the ~make~ command line when
-building. Only available with ~MIRYOKU_LAYERS=FLIP~.
-
-
-******* Nav
-
-#+NAME: nav-l-invertedt
-| PGUP | HOME | UP | END | INS |
-| PGDN | LEFT | DOWN | RGHT | CAPS |
-| U_UND | U_CUT | U_CPY | U_PST | U_RDO |
-| U_NP | U_NP | DEL | BSPC | ENT |
-
-
-******* Mouse
-
-#+NAME: mouse-l-invertedt
-| WH_U | WH_L | MS_U | WH_R | |
-| WH_D | MS_L | MS_D | MS_R | |
-| U_UND | U_CUT | U_CPY | U_PST | U_RDO |
-| U_NP | U_NP | BTN2 | BTN3 | BTN1 |
-
-
-******* Media
-
-#+NAME: media-l-invertedt
-| | | VOLU | | |
-| | MPRV | VOLD | MNXT | |
-| RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | RGB_TOG |
-| U_NP | U_NP | MUTE | MPLY | MSTP |
-
-
-***** Clipboard
-
-Keycodes are translated according to the following tables.
-
-By default, the main clipboard keys (cut, copy, and paste) use the CUA bindings
-and should work in general unix and windows applications, emacs, and terminal
-emulators. The additional keys (undo, redo) usually require rebinding in the
-application.
-
-To select, append the corresponding option to the ~make~ command line when
-building, e.g. ~MIRYOKU_CLIPBOARD=WIN~.
-
-
-****** Default
-
-#+NAME: clipboard
-| 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~
-
-#+NAME: clipboard-fun
-| U_RDO | AGIN |
-| U_PST | PSTE |
-| U_CPY | COPY |
-| U_CUT | CUT |
-| U_UND | UNDO |
-
-
-****** Mac
-
-~MIRYOKU_CLIPBOARD=MAC~
-
-#+NAME: 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~
-
-#+NAME: 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) |
-
-
-***** Layers
-
-
-****** Flip
-
-Flip base layer thumb keys and sub layers between right and left hands.
-
-To select, append ~MIRYOKU_LAYERS=FLIP~ to the ~make~ command line when building.
-
-
-******* Thumbs
-
-#+NAME: thumbs-flip
-| U_NP | U_NP | DEL | BSPC | ENT | TAB | SPC | ESC | U_NP | U_NP |
-
-
-******* Hold
-
-#+NAME: hold-flip
-| RESET | | | | | | | | | RESET |
-| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI |
-| BUTTON | ALGR | | | | | | | ALGR | BUTTON |
-| U_NP | U_NP | FUN | NUM | SYM | MOUSE | NAV | MEDIA | U_NP | U_NP |
-
-
-******* Nav
-
-#+NAME: nav-l
-| HOME | PGDN | PGUP | END | INS |
-| LEFT | DOWN | UP | RGHT | CAPS |
-| U_UND | U_CUT | U_CPY | U_PST | U_RDO |
-| U_NP | U_NP | DEL | BSPC | ENT |
-
-
-******* Mouse
-
-#+NAME: mouse-l
-| WH_L | WH_D | WH_U | WH_R | |
-| MS_L | MS_D | MS_U | MS_R | |
-| U_UND | U_CUT | U_CPY | U_PST | U_RDO |
-| U_NP | U_NP | BTN2 | BTN3 | BTN1 |
-
-
-******* Media
-
-#+NAME: media-l
-| RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | RGB_TOG |
-| MPRV | VOLD | VOLU | MNXT | |
-| | | | | |
-| U_NP | U_NP | MUTE | MPLY | MSTP |
-
-
-******* Num
-
-#+NAME: num-r
-| [ | 7 | 8 | 9 | ] |
-| = | 4 | 5 | 6 | ; |
-| \ | 1 | 2 | 3 | ` |
-| MINS | 0 | DOT | U_NP | U_NP |
-
-
-******* Sym
-
-#+NAME: sym-r
-| { | & | * | ( | } |
-| + | $ | % | ^ | : |
-| PIPE | ! | @ | # | ~ |
-| _ | ( | ) | U_NP | U_NP |
-
-
-******* Fun
-
-#+NAME: fun-r
-| PSCR | F7 | F8 | F9 | F12 |
-| SLCK | F4 | F5 | F6 | F11 |
-| PAUS | F1 | F2 | F3 | F10 |
-| TAB | SPC | APP | U_NP | U_NP |
-
-
-**** COMMENT Templates
-
-#+NAME: tem
-| <l4> | <l4> | <l4> | <l4> | <l4> | <l4> | <l4> | <l4> | <l4> | <l4> |
-|------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | | |
-| | | | | | | | | | |
-| | | | | | | | | | |
-| U_NP | U_NP | | | | | | | U_NP | U_NP |
-
-
-Duplicate base layer tap keys on thumbs rather than trans to enable auto-repeat.
-
-#+NAME: tem-r
-| <l4> | <l4> | <l4> | <l4> | <l4> |
-|------+------+------+------+------|
-| | | | | |
-| | | | | |
-| | | | | |
-| ENT | BSPC | DEL | U_NP | U_NP |
-
-#+NAME: tem-l
-| <l4> | <l4> | <l4> | <l4> | <l4> |
-|------+------+------+------+------|
-| | | | | |
-| | | | | |
-| | | | | |
-| U_NP | U_NP | ESC | SPC | TAB |
-
-
-** Code Generation
-
-The layout is maintained in emacs org-mode tables and converted to QMK keymap
-data structures using embedded python scripts.
-
-
-*** Table Conversion Scripts
-
-
-**** table-layout-taphold
-
-Produce base layer from separate tap and hold tables.
-
-#+NAME: table-layout-taphold
-#+BEGIN_SRC python :var alphas_table=colemakdh :var thumbs_table=thumbs :var hold_table=hold :var symbol_names_table=symbol-names :var mods_table=mods :var nonkc_table=nonkc :tangle no :results verbatim
-width = 19
-mods_dict = dict.fromkeys(mods_table[0])
-nonkc_tuple = tuple(nonkc_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 = ''
-for tap_row, hold_row in zip(alphas_table + thumbs_table, hold_table):
- results += ' '
- 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 not str(code).startswith(nonkc_tuple):
- code = 'KC_' + str(code)
- if hold in mods_dict:
- code = str(hold) + '_T(' + code + ')'
- elif hold != '' and hold != 'U_NP' and hold != 'RESET':
- code = 'LT(' + str(hold) + ', ' + code + ')'
- results += (code + ', ').ljust(width)
- results = results.rstrip(' ') + '\n'
-results = results.rstrip('\n, ')
-return results
-#+END_SRC
-
-#+RESULTS: table-layout-taphold
-: 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(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
-
-
-**** 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.
-
-#+NAME: table-layout-half
-#+BEGIN_SRC python :var hold_table=hold :var mode="r" :var half_table=nav-r :var symbol_names_table=symbol-names :var mods_table=mods :var nonkc_table=nonkc :var shift="false" :tangle no :results verbatim
-width = 9
-mods_dict = dict.fromkeys(mods_table[0])
-nonkc_tuple = tuple(nonkc_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
-length = len(half_table[0])
-results = ''
-for half_row, hold_row in zip(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 = '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 not str(code).startswith(nonkc_tuple):
- code = 'KC_' + str(code)
- results += (str(code) + ', ').ljust(width)
- else:
- for hold in hold_row_lr:
- if hold == '' or hold != 'U_NP' and hold != 'RESET' and hold not in mods_dict:
- code = 'U_NA'
- else:
- code = hold
- if not str(code).startswith(nonkc_tuple):
- code = 'KC_' + str(code)
- results += (str(code) + ', ').ljust(width)
- results = results.rstrip(' ') + '\n'
-results = results.rstrip('\n, ')
-return results
-#+END_SRC
-
-#+RESULTS: table-layout-half
-: 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
-
-
-**** table-layout-full
-
-Produce full layer from single table. Fill for unused keys is configurable.
-
-#+NAME: table-layout-full
-#+BEGIN_SRC python :var table=button :var fill="TRNS" :var symbol_names_table=symbol-names :var nonkc_table=nonkc :tangle no :results verbatim
-width = 9
-symbol_names_dict = {}
-nonkc_tuple = tuple(nonkc_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
-results = ''
-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
- if not str(code).startswith(nonkc_tuple):
- code = 'KC_' + str(code)
- results += (code + ', ').ljust(width)
- results = results.rstrip(' ') + '\n'
-results = results.rstrip('\n, ')
-return results
-#+END_SRC
-
-#+RESULTS: table-layout-full
-: U_UND, U_CUT, U_CPY, U_PST, U_RDO, 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,
-: U_UND, U_CUT, U_CPY, U_PST, U_RDO, 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
-
-
-**** table-enums
-
-Produce layer enums from layer names in hold table.
-
-#+NAME: table-enums
-#+BEGIN_SRC python :var hold_table=hold :var mods_table=mods :tangle no
-mods_dict = dict.fromkeys(mods_table[0])
-layers = [ 'BASE', 'BUTTON' ]
-for hold_row in hold_table:
- for hold in hold_row:
- if hold not in mods_dict and hold != '' and hold != 'U_NP' and hold != 'RESET' and hold not in layers:
- layers.append(hold)
-results = 'enum layers { ' + ', '.join(layers) + ' };'
-return results
-#+END_SRC
-
-#+RESULTS: table-enums
-: enum layers { BASE, BUTTON, MEDIA, NAV, MOUSE, SYM, NUM, FUN };
-
-
-**** table-keycode-mappings
-
-Produce keycode mappings according to the provided table.
-
-#+NAME: table-keycode-mappings
-#+BEGIN_SRC python :var table=clipboard :var symbol_names_table=symbol-names :var nonkc_table=nonkc :tangle no
-nonkc_tuple = tuple(nonkc_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 = ''
-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 not str(code).startswith(nonkc_tuple):
- code = 'KC_' + str(code)
- results += '#define ' + f + ' ' + code + '\n'
-return results
+#+BEGIN_SRC sh :tangle no
+qmk compile -c -kb crkbd -km manna-harbour_miryoku # build for crkbd
+qmk flash -c -kb crkbd -km manna-harbour_miryoku # build for crkbd and flash
+qmk compile -c -kb crkbd -km manna-harbour_miryoku -e MIRYOKU_ALPHAS=QWERTY -e MIRYOKU_NAV=INVERTEDT -e MIRYOKU_CLIPBOARD=WIN -e MIRYOKU_LAYERS=FLIP # build for crkbd with alternative layouts
#+END_SRC
-#+RESULTS: table-keycode-mappings
-: #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
+**** make
-**** COMMENT python-version
+First ~cd~ to the repository root. Then build with ~make~. E.g.
-C-c C-c in code block to update
-
-#+NAME: python-version
-#+BEGIN_SRC python :tangle no
-import sys
-return sys.version
+#+BEGIN_SRC sh :tangle no
+make clean crkbd:manna-harbour_miryoku # build for crkbd
+make clean crkbd:manna-harbour_miryoku:flash # build for crkbd and flash
+make clean crkbd:manna-harbour_miryoku MIRYOKU_ALPHAS=QWERTY MIRYOKU_NAV=INVERTEDT MIRYOKU_CLIPBOARD=WIN MIRYOKU_LAYERS=FLIP # build for crkbd with alternative layouts
#+END_SRC
-#+RESULTS: python-version
-: 3.9.4 (default, Apr 9 2021, 01:15:05)
-: [GCC 5.4.0 20160609]
-
-
-*** Data
+*** Workflow Builds
-**** symbol-names
+Firmware can be built via GitHub Actions workflows without use of a local build environment. Local tools are still required for [[https://docs.qmk.fm/#/newbs_flashing][flashing]].
-Symbol, name, and shifted symbol mappings for use in tables.
+First log in to GitHub, fork the [[#miryoku-qmk-development-branch][Miryoku QMK development branch]] repository, and enable workflows.
-#+NAME: symbol-names
-| ` | 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 |
+To access a workflow, visit the Actions tab and select the workflow. To download the firmware from a workflow run, select the workflow, select the workflow run, select the desired Artifacts, and unzip the downloaded zip file.
+Workflow files are in [[../../.github/workflows]].
-**** mods
-Modifiers usable in hold table. Need to have the same name for ~KC_~ and ~_T~
-versions.
+**** Build Examples
-#+NAME: mods
-| LSFT | LCTL | LALT | LGUI | ALGR |
+Copy one of the included Build Example workflow files, edit the ~name~ value, and edit and add options and values as desired. Select Run workflow, select the Branch if desired, and activate Run workflow.
+Options are specified in the ~with~ section and are of the following form.
+: option: '["value"]'
-**** nonkc
+For multiple values per option use the following form, and a matrix build will be performed for each combination of values across all options.
+: option: '["value1","value2"]'
-Keycodes that match any of these prefixes will not have ~KC_~ automatically
-prepended.
+The ~keyboard~ option specifies the keyboard and is required. All other options are optional.
-#+NAME: nonkc
-| U_ | RGB_ | RESET | S( | C( | SCMD( | LCMD( |
+The ~alphas~, ~nav~, ~clipboard~, and ~layers~ options correspond to the [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options. The ~mapping~ option corresponds to the alternative [[#subset-mapping][mapping]] options. Alternative layout and mapping options are given in the documentation in the form ~MIRYOKU_OPTION=VALUE~. To use here, convert to the form specified above. Use ~default~ to represent the default value. Values for these five options are case-insensitive. See the [[../../.github/workflows/test-all-configs.yml][Test All Configs workflow file]] for all supported values.
+The ~rules~ and ~config~ options can be used to specify values to be appended to ~custom_rules.mk~ and ~custom_config.h~, respectively. Separate multiple lines with ~\n~.
-**** header
-Header for tangled files.
+**** Build Inputs
-#+NAME: header
-#+BEGIN_SRC C :main no :tangle no
-Copyright 2019 Manna Harbour
-https://github.com/manna-harbour/miryoku
-generated -*- buffer-read-only: t -*-
-#+END_SRC
+The Build Inputs workflow can be used without editing workflow files. Select Run workflow, select the Branch and fill out the form as desired, and activate Run workflow.
+Options are specified by entering values directly in the corresponding field. Multiple comma separated values can be entered per option and a matrix build will be performed for each combination of values across all options.
-**** license-qmk
+The ~Keyboard~ option specifies the keyboard and is required. All other options are optional.
-License for tangled QMK C source files.
+The ~Miryoku Alphas~, ~Miryoku Nav~, ~Miryoku Clipboard~, and ~Miryoku Layers~ options correspond to the [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options. The ~Miryoku Mapping~ option corresponds to the alternative [[#subset-mapping][mapping]] options. Alternative layout and mapping options are given in the documentation in the form ~MIRYOKU_OPTION=VALUE~. To use here, enter the ~value~ in the corresponding ~Miryoku Option~ field. Use ~default~ to represent the default value. Values for these five options are case-insensitive.
-#+NAME: license-qmk
-#+BEGIN_SRC C :main no :tangle no
-// 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/>.
-#+END_SRC
+The ~custom_rules.mk~ and ~custom_config.h~ options can be used to specify values to be appended to the corresponding files. Join multiple lines with ~\n~.
** Subset Mapping
@@ -875,255 +120,26 @@ 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.
+- [[./rules.mk]] :: Build options. Automatically included.
-**** [[./rules.mk][users/manna-harbour_miryoku/rules.mk]]
-
-Build options. Automatically included.
-
-#+BEGIN_SRC makefile :noweb yes :padline no :tangle rules.mk
-# <<header>>
+- [[./custom_rules.mk]] :: Custom ~make~ options including customised defaults for alternative layout options, for local builds. Included from ~rules.mk~.
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-AUTO_SHIFT_ENABLE = yes # Auto Shift
+- [[./post_rules.mk]] :: Handles Miryoku ~make~ options. Included from ~rules.mk~.
-SRC += manna-harbour_miryoku.c # keymap
+- [[./config.h]] :: Config options. Automatically included.
-# alternative layouts:
+- [[./custom_config.h]] :: Custom config options for local builds. Included from ~config.h~.
-# alphas
-ifneq ($(strip $(MIRYOKU_ALPHAS)),)
- OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS)
-endif
+- [[./manna-harbour_miryoku.h]] :: Keymap-related definitions. Included from ~manna-harbour_miryoku.c~. Layer data is generated by [[https://github.com/manna-harbour/miryoku_babel][Miryoku Babel]] and is included from files in the [[miryoku_babel]] directory.
-# nav
-ifneq ($(strip $(MIRYOKU_NAV)),)
- OPT_DEFS += -DMIRYOKU_NAV_$(MIRYOKU_NAV)
-endif
+- [[./manna-harbour_miryoku.c]] :: Contains the keymap. Added from ~rules.mk~.
-# clipboard
-ifneq ($(strip $(MIRYOKU_CLIPBOARD)),)
- OPT_DEFS += -DMIRYOKU_CLIPBOARD_$(MIRYOKU_CLIPBOARD)
-endif
-# layers
-ifneq ($(strip $(MIRYOKU_LAYERS)),)
- OPT_DEFS += -DMIRYOKU_LAYERS_$(MIRYOKU_LAYERS)
-endif
+*** Community Layouts
-# subset mappings
-ifneq ($(strip $(MIRYOKU_MAPPING)),)
- OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING)
-endif
-#+END_SRC
-
-
-**** [[./config.h][users/manna-harbour_miryoku/config.h]]
-
-Config options. Automatically included.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle config.h
-// <<header>>
-
-<<license-qmk>>
-
-#pragma once
-
-// default but used in macros
-#undef TAPPING_TERM
-#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
-
-// 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
-
-// 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
-#+END_SRC
-
-
-**** [[./manna-harbour_miryoku.h][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.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle manna-harbour_miryoku.h
-// <<header>>
-
-<<license-qmk>>
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#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
-
-<<table-enums()>>
-
-#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
-
-
-#+END_SRC
-
-
-**** [[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]]
-
-Contains the keymap. Added from ~rules.mk~.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle manna-harbour_miryoku.c
-// <<header>>
-
-<<license-qmk>>
-
-#include "manna-harbour_miryoku.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#if defined MIRYOKU_LAYERS_FLIP
- [BASE] = LAYOUT_miryoku(
- #if defined MIRYOKU_ALPHAS_AZERTY
-<<table-layout-taphold(alphas_table=azerty, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
- #elif defined MIRYOKU_ALPHAS_COLEMAK
-<<table-layout-taphold(alphas_table=colemak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
- #elif defined MIRYOKU_ALPHAS_COLEMAKDHK
-<<table-layout-taphold(alphas_table=colemakdhk, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
- #elif defined MIRYOKU_ALPHAS_DVORAK
-<<table-layout-taphold(alphas_table=dvorak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
- #elif defined MIRYOKU_ALPHAS_HALMAK
-<<table-layout-taphold(alphas_table=halmak, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
- #elif defined MIRYOKU_ALPHAS_WORKMAN
-<<table-layout-taphold(alphas_table=workman, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
- #elif defined MIRYOKU_ALPHAS_QWERTY
-<<table-layout-taphold(alphas_table=qwerty, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
- #elif defined MIRYOKU_ALPHAS_QWERTZ
-<<table-layout-taphold(alphas_table=qwertz, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
- #else
-<<table-layout-taphold(alphas_table=colemakdh, thumbs_table=thumbs-flip, hold_table=hold-flip)>>
- #endif
- ),
- #if defined MIRYOKU_NAV_INVERTEDT
- [NAV] = LAYOUT_miryoku(
-<<table-layout-half(half_table=nav-l-invertedt, mode="l", hold_table=hold-flip)>>
- ),
- [MOUSE] = LAYOUT_miryoku(
-<<table-layout-half(half_table=mouse-l-invertedt, mode="l", hold_table=hold-flip)>>
- ),
- [MEDIA] = LAYOUT_miryoku(
-<<table-layout-half(half_table=media-l-invertedt, mode="l", hold_table=hold-flip)>>
- ),
- #else
- [NAV] = LAYOUT_miryoku(
-<<table-layout-half(half_table=nav-l, mode="l", hold_table=hold-flip)>>
- ),
- [MOUSE] = LAYOUT_miryoku(
-<<table-layout-half(half_table=mouse-l, mode="l", hold_table=hold-flip)>>
- ),
- [MEDIA] = LAYOUT_miryoku(
-<<table-layout-half(half_table=media-l, mode="l", hold_table=hold-flip)>>
- ),
- #endif
- [NUM] = LAYOUT_miryoku(
-<<table-layout-half(half_table=num-r, mode="r", hold_table=hold-flip)>>
- ),
- [SYM] = LAYOUT_miryoku(
-<<table-layout-half(half_table=sym-r, mode="r", hold_table=hold-flip)>>
- ),
- [FUN] = LAYOUT_miryoku(
-<<table-layout-half(half_table=fun-r, mode="r", hold_table=hold-flip)>>
- ),
-#else
- [BASE] = LAYOUT_miryoku(
- #if defined MIRYOKU_ALPHAS_AZERTY
-<<table-layout-taphold(alphas_table=azerty)>>
- #elif defined MIRYOKU_ALPHAS_COLEMAK
-<<table-layout-taphold(alphas_table=colemak)>>
- #elif defined MIRYOKU_ALPHAS_COLEMAKDHK
-<<table-layout-taphold(alphas_table=colemakdhk)>>
- #elif defined MIRYOKU_ALPHAS_DVORAK
-<<table-layout-taphold(alphas_table=dvorak)>>
- #elif defined MIRYOKU_ALPHAS_HALMAK
-<<table-layout-taphold(alphas_table=halmak)>>
- #elif defined MIRYOKU_ALPHAS_WORKMAN
-<<table-layout-taphold(alphas_table=workman)>>
- #elif defined MIRYOKU_ALPHAS_QWERTY
-<<table-layout-taphold(alphas_table=qwerty)>>
- #elif defined MIRYOKU_ALPHAS_QWERTZ
-<<table-layout-taphold(alphas_table=qwertz)>>
- #else
-<<table-layout-taphold(alphas_table=colemakdh)>>
- #endif
- ),
- #if defined MIRYOKU_NAV_VI
- [NAV] = LAYOUT_miryoku(
-<<table-layout-half(half_table=nav-r-vi, mode="r")>>
- ),
- [MOUSE] = LAYOUT_miryoku(
-<<table-layout-half(half_table=mouse-r-vi, mode="r")>>
- ),
- [MEDIA] = LAYOUT_miryoku(
-<<table-layout-half(half_table=media-r-vi, mode="r")>>
- ),
- #else
- [NAV] = LAYOUT_miryoku(
-<<table-layout-half(half_table=nav-r, mode="r")>>
- ),
- [MOUSE] = LAYOUT_miryoku(
-<<table-layout-half(half_table=mouse-r, mode="r")>>
- ),
- [MEDIA] = LAYOUT_miryoku(
-<<table-layout-half(half_table=media-r, mode="r")>>
- ),
- #endif
- [NUM] = LAYOUT_miryoku(
-<<table-layout-half(half_table=num-l, mode="l")>>
- ),
- [SYM] = LAYOUT_miryoku(
-<<table-layout-half(half_table=sym-l, mode="l")>>
- ),
- [FUN] = LAYOUT_miryoku(
-<<table-layout-half(half_table=fun-l, mode="l")>>
- ),
-#endif
- [BUTTON] = LAYOUT_miryoku(
-<<table-layout-full(table=button)>>
- )
-};
-#+END_SRC
-
-
-*** 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~.
+To use the keymap on a keyboard supporting the community layouts feature,
+~LAYOUT_miryoku~ is defined as a macro mapping onto the layout's own ~LAYOUT~
+macro, leaving the unused keys as ~KC_NO~.
For keyboards supporting multiple layouts for which subset mappings are
available, select the layout with ~FORCE_LAYOUT~ in the ~make~ command line when
@@ -1166,90 +182,18 @@ make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=LITE # dz60, with lite ma
#+END_SRC
-***** [[../../layouts/community/60_ansi/manna-harbour_miryoku/config.h][layouts/community/60_ansi/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/60_ansi/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#pragma once
-
-#define XXX KC_NO
-
-#if defined MIRYOKU_MAPPING_NOREVERSEANGLE
- #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_60_ansi(\
-K00, K01, K02, K03, K04, XXX, XXX, XXX, K05, K06, K07, K08, K09, XXX,\
- K10, K11, K12, K13, K14, XXX, XXX, XXX, K15, K16, K17, K18, K19, XXX,\
- K20, K21, K22, K23, K24, XXX, XXX, XXX, K25, K26, K27, K28, K29,\
- XXX, K32, K33, K34, XXX, XXX, XXX, XXX, K35, K36, K37, XXX,\
- XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX\
-)
-#elif defined MIRYOKU_MAPPING_LITE
- #if defined MIRYOKU_LAYERS_FLIP
- #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_60_ansi( \
-KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
-KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \
-KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \
-KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \
-KC_LCTL, KC_LGUI, KC_LALT, K36, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \
-)
- #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_60_ansi( \
-KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
-KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \
-KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \
-KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \
-KC_LCTL, KC_LGUI, KC_LALT, K33, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \
-)
- #endif
-#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_60_ansi(\
-XXX, XXX, K00, K01, K02, K03, K04, XXX, K05, K06, K07, K08, K09, XXX,\
- XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\
- K20, K21, K22, K23, K24, XXX, XXX, XXX, K25, K26, K27, K28, K29,\
- XXX, XXX, K32, K33, K34, XXX, XXX, XXX, K35, K36, K37, XXX,\
- XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX\
-)
-#endif
-#+END_SRC
+**** alice
+This is a hybrid mapping. Only the 3x10 alphas plus spacebars as primary thumb keys are mapped. The remaining keys are the same as the default keymap but with semicolon in place of quote. The keys adjacent to the spacebars are also mapped as corresponding thumb keys but may not be usable as such.
-***** [[../../layouts/community/60_ansi/manna-harbour_miryoku/keymap.c][layouts/community/60_ansi/manna-harbour_miryoku/keymap.c]]
+Keyboards supporting this layout: cheshire/curiosity, handwired/owlet60, mechlovin/adelais, projectkb/alice, sck/osa, axolstudio/yeti, coarse/cordillera, edda, evyd13/wonderland, fallacy, kb_elmo/sesame, keebsforall/coarse60, ramonimbao/aelith, sneakbox/aliceclone, tkc/osav2, zoo/wampus.
-Required by the build system.
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/60_ansi/manna-harbour_miryoku/keymap.c
-// <<header>>
+**** alice_split_bs
-<<license-qmk>>
-#+END_SRC
+This is a hybrid mapping. Only the 3x10 alphas plus spacebars as primary thumb keys are mapped. The remaining keys are the same as the default keymap but with semicolon in place of quote. The keys adjacent to the spacebars are also mapped as corresponding thumb keys but may not be usable as such.
+
+Keyboards supporting this layout: cheshire/curiosity, ergosaurus, handwired/colorlice, handwired/owlet60, mechlovin/adelais, projectkb/alice, sck/osa, tgr/alice, xelus/valor/rev1, xelus/valor/rev2, axolstudio/yeti, coarse/cordillera, edda, evyd13/wonderland, fallacy, kb_elmo/sesame, keebsforall/coarse60, nightly_boards/alter/rev1, ramonimbao/aelith, seigaiha, sneakbox/aliceclone, tkc/osav2, zoo/wampus.
**** ergodox
@@ -1261,56 +205,29 @@ are unused.
[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox.png]]
-Keyboards supporting this layout: ergodone, ergodox_ez, ergodox_infinity, hotdox.
-
-Example build command lines:
+An alternative subset mapping is provided with all keys shifted up one row creating thumb keys in the original alpha area. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS~ to the ~make~ command line when building.
-#+BEGIN_SRC sh :tangle no
-make ergodox_infinity:manna-harbour_miryoku:flash # ergodox_infinity
-make ergodox_ez:manna-harbour_miryoku:flash # ergodox_ez
-#+END_SRC
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows.png]]
+Another alternative subset mapping is provided as for ~MIRYOKU_MAPPING=SHIFTED_ROWS~ but with the thumb keys shifted one position in the direction of thumb extension. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS~ to the ~make~ command line when building.
-***** [[../../layouts/community/ergodox/manna-harbour_miryoku/config.h][layouts/community/ergodox/manna-harbour_miryoku/config.h]]
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows-extended_thumbs.png]]
-Contains subset mapping.
+Another alternative subset mapping is provided as for ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS~ but with the pinkie column moved down one row. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS_PINKIE_STAGGER~ to the ~make~ command line when building.
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/config.h
-// <<header>>
+[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows-extended_thumbs-pinkie_stagger.png]]
-<<license-qmk>>
-
-#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\
-)
-#+END_SRC
-
-
-***** [[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]]
+Keyboards supporting this layout: ergodone, ergodox_ez, ergodox_infinity, hotdox.
-Required by the build system.
+Example build command lines:
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c
-// <<header>>
+#+BEGIN_SRC sh :tangle no
+make ergodox_infinity:manna-harbour_miryoku:flash # ergodox_infinity
+make ergodox_ez:manna-harbour_miryoku:flash # ergodox_ez
+make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS # ergodox_ez, shifted rows
+make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS # ergodox_ez, shifted rows, extended thumbs
+make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS_PINKIE_STAGGER # ergodox_ez, shifted rows, extended thumbs, pinkie stagger
-<<license-qmk>>
#+END_SRC
@@ -1328,60 +245,6 @@ make pabile/p40:manna-harbour_miryoku:flash MIRYOKU_MAPPING=ROTATE # pabile/p40,
#+END_SRC
-***** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/config.h][layouts/community/ortho_4x10/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_4x10/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#pragma once
-
-#define XXX KC_NO
-
-#if defined MIRYOKU_MAPPING_ROTATE
-#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_4x10( \
-XXX, XXX, K37, K36, K35, K34, K33, K32, XXX, XXX, \
-K29, K28, K27, K26, K25, K24, K23, K22, K21, K20, \
-K19, K18, K17, K16, K15, K14, K13, K12, K11, K10, \
-K09, K08, K07, K06, K05, K04, K03, K02, K01, K00 \
-)
-#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_4x10( \
-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, K32, K33, K34, K35, K36, K37, XXX, XXX \
-)
-#endif
-#+END_SRC
-
-
-***** [[../../layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** ortho_4x12
For the ortho_4x12 layout, the middle two columns, and the 2 keys on each end of
@@ -1419,71 +282,6 @@ make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS
#+END_SRC
-***** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h][layouts/community/ortho_4x12/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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\
-)
-#elif defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#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, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, KC_NO\
-)
-#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, KC_NO, KC_NO, K35, K36, K37, KC_NO, KC_NO\
-)
-#endif
-#+END_SRC
-
-
-***** [[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** ortho_5x12
As per ortho_4x12 but the top row is unused.
@@ -1501,74 +299,6 @@ make keebio/nyquist/rev3:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_TH
#+END_SRC
-***** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/config.h][layouts/community/ortho_5x12/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_5x12/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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_5x12(\
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
-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\
-)
-#elif defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#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_5x12(\
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
-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, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, KC_NO\
-)
-#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_5x12(\
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
-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, KC_NO, KC_NO, K35, K36, K37, KC_NO, KC_NO\
-)
-#endif
-#+END_SRC
-
-
-***** [[../../layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** ortho_5x15
For the ortho_5x15 layout, the top row, middle 5 columns, and the 2 keys on each
@@ -1595,64 +325,6 @@ make idobo:manna-harbour_miryoku:flash # idobo
#+END_SRC
-***** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/config.h][layouts/community/ortho_5x15/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_5x15/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#pragma once
-
-#define XXX KC_NO
-
-#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#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_5x15(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-K00, K01, K02, K03, K04, XXX, XXX, XXX, XXX, XXX, K05, K06, K07, K08, K09,\
-K10, K11, K12, K13, K14, XXX, XXX, XXX, XXX, XXX, K15, K16, K17, K18, K19,\
-K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29,\
-XXX, XXX, XXX, K32, K33, K34, XXX, XXX, XXX, K35, K36, K37, XXX, XXX, XXX\
-)
-#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_5x15(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-K00, K01, K02, K03, K04, XXX, XXX, XXX, XXX, XXX, K05, K06, K07, K08, K09,\
-K10, K11, K12, K13, K14, XXX, XXX, XXX, XXX, XXX, K15, K16, K17, K18, K19,\
-K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29,\
-XXX, XXX, K32, K33, K34, XXX, XXX, XXX, XXX, XXX, K35, K36, K37, XXX, XXX\
-)
-#endif
-#+END_SRC
-
-#+RESULTS:
-
-
-***** [[../../layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c][layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** planck_mit
The middle two columns including the middle 2u key, and the 2 keys on each end
@@ -1668,42 +340,6 @@ make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=planck_mit # planck re
#+END_SRC
-***** [[../../layouts/community/planck_mit/manna-harbour_miryoku/config.h][layouts/community/planck_mit/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/planck_mit/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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_planck_mit(\
-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, KC_NO, K35, K36, K37, KC_NO, KC_NO\
-)
-#+END_SRC
-
-
-***** [[../../layouts/community/planck_mit/manna-harbour_miryoku/keymap.c][layouts/community/planck_mit/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/planck_mit/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
**** split_3x5_3
@@ -1717,43 +353,6 @@ make minidox:manna-harbour_miryoku:flash # minidox
#+END_SRC
-***** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/config.h][layouts/community/split_3x5_3/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/split_3x5_3/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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_split_3x5_3(\
-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\
-)
-#+END_SRC
-
-
-***** [[../../layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** split_3x6_3
The outer columns are unused.
@@ -1768,50 +367,25 @@ make crkbd:manna-harbour_miryoku:flash # crkbd
#+END_SRC
-***** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/config.h][layouts/community/split_3x6_3/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/split_3x6_3/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-#pragma once
+*** Keyboards
-#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_split_3x6_3(\
-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\
-)
-#+END_SRC
+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~.
-***** [[../../layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c][layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c]]
+**** a_dux
-Required by the build system.
+[[#thumb-combos][Thumb combos]] are enabled automatically for this keyboard.
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c
-// <<header>>
+To build for this keyboard,
-<<license-qmk>>
+#+BEGIN_SRC sh :tangle no
+make a_dux:manna-harbour_miryoku:flash
#+END_SRC
-*** 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.
@@ -1823,42 +397,25 @@ make atreus:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/atreus/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/atreus/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
+**** bastardkb/charybdis/3x5
-#pragma once
+[[#thumb-combos][Thumb combos]] are enabled automatically for this keyboard.
-#define XXX KC_NO
+To build for this keyboard,
-#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\
-)
+#+BEGIN_SRC sh :tangle no
+make bastardkb/charybdis/3x5:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c]]
+**** bastardkb/charybdis/4x6
-Required by the build system.
+On the trackball side the bottom row thumb key is used as the tertiary thumb key. Additionally, [[#thumb-combos][thumb combos]] are enabled automatically for this keyboard.
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
+To build for this keyboard,
-<<license-qmk>>
+#+BEGIN_SRC sh :tangle no
+make bastardkb/charybdis/4x6:manna-harbour_miryoku:flash
#+END_SRC
@@ -1871,44 +428,12 @@ make bastardkb/scylla:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h][keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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_split_4x6_5( \
-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, K25, K26, K27, K28, K29, XXX, \
- K32, K33, K34, K35, K36, K37, \
- XXX, XXX, XXX, XXX \
-)
-#+END_SRC
-
-
-***** [[../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c][keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
+**** draculad
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
+To build for this keyboard,
-<<license-qmk>>
+#+BEGIN_SRC sh :tangle no
+make draculad:manna-harbour_miryoku:flash
#+END_SRC
@@ -1921,42 +446,15 @@ make ergotravel:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h][keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
+**** ferris
-<<license-qmk>>
+[[#thumb-combos][Thumb combos]] are enabled automatically for this keyboard.
-#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, XXX, XXX, 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, K25, K26, K27, K28, K29, XXX, \
-XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \
-)
-#+END_SRC
-
-
-***** [[../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c][keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
+To build for this keyboard,
-<<license-qmk>>
+#+BEGIN_SRC sh :tangle no
+make ferris/0_2:manna-harbour_miryoku:flash # 0_2
+make ferris/sweep:manna-harbour_miryoku:flash # sweep
#+END_SRC
@@ -1971,43 +469,12 @@ make for_science:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/config.h][keyboards/for_science/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/for_science/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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,\
-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\
-)
-#+END_SRC
-
+**** fortitude60
-***** [[../../keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c][keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
+To build for this keyboard,
-<<license-qmk>>
+#+BEGIN_SRC sh :tangle no
+make fortitude60:manna-harbour_miryoku:flash
#+END_SRC
@@ -2022,45 +489,6 @@ make gergo:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/config.h][keyboards/gergo/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/gergo/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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\
-)
-#+END_SRC
-
-
-***** [[../../keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c][keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** handwired/dactyl_manuform/4x5
Only the main 5x3 alphas and the main 3 thumb keys are used.
@@ -2072,48 +500,6 @@ make handwired/dactyl_manuform/4x5:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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, XXX, \
- K32, K33, K36, K37, \
- K34, XXX, XXX, K35, \
- XXX, XXX, XXX, XXX \
-)
-#+END_SRC
-
-
-***** [[../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** handwired/dactyl_manuform/5x6
Only the main 5x3 alphas and the main 3 thumb keys are used.
@@ -2125,46 +511,12 @@ make handwired/dactyl_manuform/5x6:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h]]
+**** jorne
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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_5x6( \
-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, K25, K26, K27, K28, K29, XXX, \
- XXX, XXX, XXX, XXX, \
- K32, K33, K36, K37, \
- K34, XXX, XXX, K35, \
- XXX, XXX, XXX, XXX \
-)
-#+END_SRC
-
-
-***** [[../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c][keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
+To build for this keyboard,
-<<license-qmk>>
+#+BEGIN_SRC sh :tangle no
+make jorne:manna-harbour_miryoku:flash
#+END_SRC
@@ -2179,46 +531,6 @@ make keebio/iris/rev4:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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\
-)
-#+END_SRC
-
-
-***** [[../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** keyboardio/atreus
Only the main 5x3 alphas and the inner 3 thumb keys are used.
@@ -2230,45 +542,6 @@ make keyboardio/atreus:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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, XXX, XXX, K25, K26, K27, K28, K29, \
-XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \
-)
-#+END_SRC
-
-
-***** [[../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c][keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** lily58
Only the main 5x3 alphas and the inner 3 thumb keys are used.
@@ -2280,46 +553,6 @@ make lily58:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/config.h][keyboards/lily58/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/lily58/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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\
-)
-#+END_SRC
-
-
-***** [[../../keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c][keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** moonlander
The main 5x3 alphas are used as usual. The primary, secondary, and tertiary
@@ -2333,44 +566,14 @@ make moonlander:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h][keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#pragma once
+**** pluckey
-#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_moonlander(\
-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, XXX, XXX, K15, K16, K17, K18, K19, XXX,\
-XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX,\
-XXX, XXX, XXX, XXX, K32, XXX, XXX, K37, XXX, XXX, XXX, XXX,\
- K33, K34, XXX, XXX, K35, K36\
-)
-#+END_SRC
-
-
-***** [[../../keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c][keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
+Only the main 5x3 alphas and the main 3 thumb keys are used.
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
+To build for this keyboard,
-<<license-qmk>>
+#+BEGIN_SRC sh :tangle no
+make pluckey:manna-harbour_miryoku:flash
#+END_SRC
@@ -2385,48 +588,6 @@ make redox_w:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h][keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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, XXX, XXX, 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,\
-XXX, XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX, XXX\
-)
-#+END_SRC
-
-#+RESULTS:
-
-
-***** [[../../keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c][keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** sofle
To build for this keyboard,
@@ -2436,46 +597,6 @@ make sofle:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/config.h][keyboards/sofle/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/sofle/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX\
-)
-#+END_SRC
-
-
-***** [[../../keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c][keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** splitkb/kyria
Only the main 5x3 alphas and the middle 3 lower thumb keys are used.
@@ -2497,60 +618,6 @@ make splitkb/kyria:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS #
#+END_SRC
-***** [[../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h][keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#pragma once
-
-#define XXX KC_NO
-
-#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#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, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \
-)
-#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( \
-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 \
-)
-#endif
-#+END_SRC
-
-
-***** [[../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c][keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
**** torn
To build for this keyboard,
@@ -2560,73 +627,14 @@ make torn:manna-harbour_miryoku:flash
#+END_SRC
-***** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/config.h][keyboards/torn/keymaps/manna-harbour_miryoku/config.h]]
-
-Contains subset mapping.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/torn/keymaps/manna-harbour_miryoku/config.h
-// <<header>>
-
-<<license-qmk>>
-
-#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_split_3x6_4( \
-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, \
- KC_NO, K32, K33, K34, K35, K36, K37, KC_NO \
-)
-#+END_SRC
-
-#+RESULTS:
-
-
-***** [[../../keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c][keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c]]
-
-Required by the build system.
-
-#+BEGIN_SRC C :main no :noweb yes :padline no :tangle ../../keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c
-// <<header>>
-
-<<license-qmk>>
-#+END_SRC
-
-
-*** 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.
-
-
-**** Examples
-
-To use any of the examples, create a new branch from the miryoku development
-branch and follow the same steps as seen in the commit messages and code changes
-in the examples, making the appropriate changes for your keyboard and desired
-customisations.
-
+** Additional and Experimental Features
-***** Add Layers
-- https://github.com/manna-harbour/qmk_firmware/commits/miryoku-examples-add-layers/keyboards/crkbd/keymaps/miryoku-examples-add-layers
+*** Thumb Combos
+~MIRYOKU_KLUDGE_THUMBCOMBOS=yes~
-** Experimental Features
+Combo the primary and secondary thumb keys to emulate the tertiary thumb key. Can be used on keyboards with missing or hard to reach tertiary thumb keys or for compatibility with same. Requires suitable keycaps to enable the thumb to press both keys simultaneously.
*** Bilateral Combinations
@@ -2639,33 +647,6 @@ customisations.
- [[https://github.com/manna-harbour/qmk_firmware/issues/33][Retro Shift]]
-** Documentation
-
-
-*** QMK
-
-- https://docs.qmk.fm/
-- https://docs.qmk.fm/#/config_options
-- https://docs.qmk.fm/#/feature_advanced_keycodes
-- https://docs.qmk.fm/#/feature_auto_shift
-- https://docs.qmk.fm/#/feature_layers
-- https://docs.qmk.fm/#/feature_layouts
-- https://docs.qmk.fm/#/feature_mouse_keys
-- https://docs.qmk.fm/#/feature_userspace
-- https://docs.qmk.fm/#/getting_started_introduction
-- https://docs.qmk.fm/#/getting_started_make_guide
-- https://docs.qmk.fm/#/keycodes
-- https://docs.qmk.fm/#/mod_tap
-- https://docs.qmk.fm/#/tap_hold
-
-
-*** Org Mode
-
-- https://orgmode.org/
-- https://orgmode.org/manual/Tables.html
-- https://orgmode.org/manual/Working-with-Source-Code.html
-
-
**
[[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/manna-harbour-boa-32.png]]
diff --git a/users/manna-harbour_miryoku/rules.mk b/users/manna-harbour_miryoku/rules.mk
index 085f0b5019..879c7fc43e 100644
--- a/users/manna-harbour_miryoku/rules.mk
+++ b/users/manna-harbour_miryoku/rules.mk
@@ -1,36 +1,12 @@
# Copyright 2019 Manna Harbour
# https://github.com/manna-harbour/miryoku
-# generated -*- buffer-read-only: t -*-
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
AUTO_SHIFT_ENABLE = yes # Auto Shift
-SRC += manna-harbour_miryoku.c # keymap
+SRC += manna-harbour_miryoku.c # keymaps
-# alternative layouts:
+include users/manna-harbour_miryoku/custom_rules.mk
-# alphas
-ifneq ($(strip $(MIRYOKU_ALPHAS)),)
- OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS)
-endif
-
-# nav
-ifneq ($(strip $(MIRYOKU_NAV)),)
- OPT_DEFS += -DMIRYOKU_NAV_$(MIRYOKU_NAV)
-endif
-
-# clipboard
-ifneq ($(strip $(MIRYOKU_CLIPBOARD)),)
- OPT_DEFS += -DMIRYOKU_CLIPBOARD_$(MIRYOKU_CLIPBOARD)
-endif
-
-# layers
-ifneq ($(strip $(MIRYOKU_LAYERS)),)
- OPT_DEFS += -DMIRYOKU_LAYERS_$(MIRYOKU_LAYERS)
-endif
-
-# subset mappings
-ifneq ($(strip $(MIRYOKU_MAPPING)),)
- OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING)
-endif
+include users/manna-harbour_miryoku/post_rules.mk