From 6b299fab6e6a3143c061b9ea005253361fcd524b Mon Sep 17 00:00:00 2001 From: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Date: Sat, 16 Oct 2021 16:33:45 +1100 Subject: [Keymap] Update Miryoku (#14827) --- users/manna-harbour_miryoku/README.org | 1 - users/manna-harbour_miryoku/config.h | 2 +- .../manna-harbour_miryoku/manna-harbour_miryoku.c | 77 +- .../manna-harbour_miryoku/manna-harbour_miryoku.h | 4 +- users/manna-harbour_miryoku/miryoku.org | 2605 ------------------- users/manna-harbour_miryoku/readme.org | 2671 ++++++++++++++++++++ users/manna-harbour_miryoku/rules.mk | 2 +- 7 files changed, 2720 insertions(+), 2642 deletions(-) delete mode 120000 users/manna-harbour_miryoku/README.org delete mode 100644 users/manna-harbour_miryoku/miryoku.org create mode 100644 users/manna-harbour_miryoku/readme.org (limited to 'users/manna-harbour_miryoku') diff --git a/users/manna-harbour_miryoku/README.org b/users/manna-harbour_miryoku/README.org deleted file mode 120000 index b6caaade16..0000000000 --- a/users/manna-harbour_miryoku/README.org +++ /dev/null @@ -1 +0,0 @@ -miryoku.org \ No newline at end of file diff --git a/users/manna-harbour_miryoku/config.h b/users/manna-harbour_miryoku/config.h index 38d363299e..d24f52edae 100644 --- a/users/manna-harbour_miryoku/config.h +++ b/users/manna-harbour_miryoku/config.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// 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 . diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.c b/users/manna-harbour_miryoku/manna-harbour_miryoku.c index ff25b77934..6347183417 100644 --- a/users/manna-harbour_miryoku/manna-harbour_miryoku.c +++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.c @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// 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 . @@ -9,40 +9,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined MIRYOKU_LAYERS_FLIP [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK + #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), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + 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), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + 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), - KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z, + 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), - KC_F, ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), KC_Y, + 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), - KC_Z, ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + 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), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + 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), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + 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 ), @@ -85,12 +95,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP ), #endif - [MBO] = LAYOUT_miryoku( - U_RDO, U_PST, U_CPY, U_CUT, U_UND, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - ), [NUM] = LAYOUT_miryoku( RESET, U_NA, U_NA, U_NA, U_NA, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, @@ -108,44 +112,53 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_SLCK, KC_F4, KC_F5, KC_F6, KC_F11, U_NA, KC_ALGR, U_NA, U_NA, U_NA, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, U_NP, U_NP, U_NA, U_NA, U_NA, KC_TAB, KC_SPC, KC_APP, U_NP, U_NP - ) -, + ), #else [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK + #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), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + 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), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + 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), - KC_SLSH, ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), KC_Z, + 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), - KC_F, ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), KC_Y, + 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), - KC_Z, ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + 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), - KC_Z, ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + 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 #else KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), - KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, + 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 #endif ), @@ -188,12 +201,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP ), #endif - [MBO] = LAYOUT_miryoku( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, - U_RDO, U_PST, U_CPY, U_CUT, U_UND, U_RDO, U_PST, U_CPY, U_CUT, U_UND, - U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - ), [NUM] = LAYOUT_miryoku( KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, U_NA, U_NA, U_NA, U_NA, RESET, KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, @@ -211,6 +218,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 + ) }; diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.h b/users/manna-harbour_miryoku/manna-harbour_miryoku.h index 4d62c17079..1d14f61710 100644 --- a/users/manna-harbour_miryoku/manna-harbour_miryoku.h +++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.h @@ -1,6 +1,6 @@ // Copyright 2019 Manna Harbour // https://github.com/manna-harbour/miryoku -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- +// 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 . @@ -12,7 +12,7 @@ #define U_NA KC_NO // present but not available for use #define U_NU KC_NO // available but not used -enum layers { BASE, MBO, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; +enum layers { BASE, BUTTON, MEDIA, NAV, MOUSE, SYM, NUM, FUN }; #if defined MIRYOKU_CLIPBOARD_FUN #define U_RDO KC_AGIN diff --git a/users/manna-harbour_miryoku/miryoku.org b/users/manna-harbour_miryoku/miryoku.org deleted file mode 100644 index 2f6b1d5a88..0000000000 --- a/users/manna-harbour_miryoku/miryoku.org +++ /dev/null @@ -1,2605 +0,0 @@ -# After making changes to code or tables call org-babel-tangle (C-c C-v t). - -#+Title: Miryoku [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]] - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/cover/miryoku-kle-cover.png]] - -Miryoku is an ergonomic, minimal, orthogonal layout for ergo or ortho keyboards, -implemented as part of the QMK firmware. - -The layout is maintained in emacs org-mode tables and converted to QMK keymap -data structures using embedded python scripts. It is mapped onto keyboards with -different physical layouts as a subset without code duplication using the QMK -userspace feature and C macros. - -Please see the [[https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org][development branch]] for any [[https://github.com/qmk/qmk_firmware/compare/master...manna-harbour:miryoku][updates not yet merged into QMK]]. - -To checkout the development branch in your existing QMK build environment: -#+BEGIN_SRC sh :tangle no -git remote add manna-harbour git@github.com:manna-harbour/qmk_firmware.git # ssh -git remote add manna-harbour https://github.com/manna-harbour/qmk_firmware.git # https -git fetch manna-harbour -git checkout --track manna-harbour/miryoku -#+END_SRC - -Additional implementations and visualisations are provided outside QMK in the -[[https://github.com/manna-harbour/miryoku/blob/master/README.org][Miryoku (Extras) repository]]. - - -* Contents :TOC_3: -- [[#layout][Layout]] - - [[#general-principles][General Principles]] - - [[#details][Details]] - - [[#layers][Layers]] - - [[#base][Base]] - - [[#nav][Nav]] - - [[#mouse][Mouse]] - - [[#mouse-buttons-overlay][Mouse Buttons Overlay]] - - [[#media][Media]] - - [[#num][Num]] - - [[#sym][Sym]] - - [[#fun][Fun]] - - [[#alternative-layouts][Alternative Layouts]] -- [[#code-generation][Code Generation]] - - [[#table-conversion-scripts][Table Conversion Scripts]] - - [[#table-layout-taphold][table-layout-taphold]] - - [[#table-layout-half][table-layout-half]] - - [[#table-layout-full][table-layout-full]] - - [[#table-enums][table-enums]] - - [[#table-keycode-mappings][table-keycode-mappings]] - - [[#data][Data]] - - [[#symbol-names][symbol-names]] - - [[#mods][mods]] - - [[#nonkc][nonkc]] - - [[#header][header]] - - [[#license-qmk][license-qmk]] -- [[#subset-mapping][Subset Mapping]] - - [[#userspace][Userspace]] - - [[#usersmanna-harbour_miryokurulesmk][users/manna-harbour_miryoku/rules.mk]] - - [[#usersmanna-harbour_miryokuconfigh][users/manna-harbour_miryoku/config.h]] - - [[#usersmanna-harbour_miryokumanna-harbour_miryokuh][users/manna-harbour_miryoku/manna-harbour_miryoku.h]] - - [[#usersmanna-harbour_miryokumanna-harbour_miryokuc][users/manna-harbour_miryoku/manna-harbour_miryoku.c]] - - [[#layouts][Layouts]] - - [[#60_ansi][60_ansi]] - - [[#ergodox][ergodox]] - - [[#ortho_4x10][ortho_4x10]] - - [[#ortho_4x12][ortho_4x12]] - - [[#ortho_5x12][ortho_5x12]] - - [[#ortho_5x15][ortho_5x15]] - - [[#planck_mit][planck_mit]] - - [[#split_3x5_3][split_3x5_3]] - - [[#split_3x6_3][split_3x6_3]] - - [[#keyboards][Keyboards]] - - [[#atreus][atreus]] - - [[#ergotravel][ergotravel]] - - [[#for_science][for_science]] - - [[#gergo][gergo]] - - [[#handwireddactyl_manuform4x5][handwired/dactyl_manuform/4x5]] - - [[#handwireddactyl_manuform5x6][handwired/dactyl_manuform/5x6]] - - [[#keebioiris][keebio/iris]] - - [[#keyboardioatreus][keyboardio/atreus]] - - [[#kyria][kyria]] - - [[#lily58][lily58]] - - [[#moonlander][moonlander]] - - [[#redox_w][redox_w]] - - [[#sofle][sofle]] - - [[#torn][torn]] - - [[#customisation][Customisation]] - - [[#examples][Examples]] -- [[#experimental-features][Experimental Features]] - - [[#bilateral-combinations][Bilateral Combinations]] - - [[#retro-shift][Retro Shift]] -- [[#documentation][Documentation]] -- [[#contact][Contact]] - -* Layout - -** General Principles - -- Use layers instead of reaching. -- Use both hands instead of contortions. -- Use the home positions as much as possible. -- Make full use of the thumbs. -- Avoid unnecessary complication. - - -** Details - -- 5 columns, 3 rows, 3 thumb keys, 2 hands. -- Can be used on almost any split or non-split ergo or ortho keyboard. -- Includes all keys found on a US layout TKL keyboard, plus media keys and mouse - emulation. -- Home row is the middle row, home thumb key is the middle thumb key. -- Maximum 1-u movement from home position for fingers and thumbs, and only along - one axis (except for the inner index finger column which is deprioritised - compared with the home columns). -- Dual-function modifiers on home row, mirrored on both hands. -- Dual-function layer change on thumbs. -- Layers are designed orthogonally with a single purpose per hand and are - accessed by holding a thumb key on the opposite hand. -- All layers on the same hand are based on the same basic key arrangement. -- Holding layer change and modifiers on one hand combined with a single key - press on the other hand can produce any combination of modifiers and single - keys without any finger contortions. -- Single function mods are also defined on layers on the same hand as the layer - change thumb key so layer change and mods can be held in any order or - simultaneously without race conditions. -- As mods are only enabled on the opposite hand, auto-repeat is available on the - home row on layers for use with cursor and mouse keys. -- Tap-hold auto-repeat is disabled to permit faster tap-hold switching on - thumbs, but thumb tap keys are mirrored onto some layers for use with - auto-repeat. On other layers thumb keys are redefined with important - functions for that layer. -- Auto Shift for numbers and symbols. - - -** Layers - -[[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 | -| | ALGR | | | | | | | ALGR | | -| 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 | - - -*** Mouse Buttons Overlay - -Available for automatic activation depending on keyboard hardware and -configuration. Not activated manually. - -#+NAME: mbo -| U_RDO | U_PST | U_CPY | U_CUT | U_UND | U_RDO | U_PST | U_CPY | U_CUT | U_UND | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| | | | | | | | | | | -| U_NP | U_NP | BTN2 | BTN3 | BTN1 | BTN1 | BTN3 | BTN2 | U_NP | U_NP | - - -*** Media - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-media.png]] - -Tertiary right-hand layer is media control, with volume up / down and next / -prev mirroring the navigation keys. Pause, stop and mute are on thumbs. RGB -control is on the top row (combine with shift to invert). Unused keys are -available for other related functions. - -#+NAME: media-r -| RGB_TOG | RGB_MOD | RGB_HUI | RGB_SAI | RGB_VAI | -| | MPRV | VOLD | VOLU | MNXT | -| | | | | | -| MSTP | MPLY | MUTE | U_NP | U_NP | - - -*** Num - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-num.png]] - -Primary left-hand layer (right home thumb) is numerals and symbols. Numerals -are in the standard numpad locations with symbols in the remaining positions. -Dot is duplicated from the base layer. - -#+NAME: num-l -| [ | 7 | 8 | 9 | ] | -| ; | 4 | 5 | 6 | = | -| ` | 1 | 2 | 3 | \ | -| U_NP | U_NP | DOT | 0 | MINS | - - -*** Sym - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-sym.png]] - -Secondary left-hand layer has shifted symbols in the same locations to reduce -chording when using mods with shifted symbols. Open parenthesis is duplicated -next to close parenthesis. - -#+NAME: sym-l -| { | & | * | ( | } | -| : | $ | % | ^ | + | -| ~ | ! | @ | # | PIPE | -| U_NP | U_NP | ( | ) | _ | - - -*** Fun - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/layers/miryoku-kle-fun.png]] - -Tertiary left-hand layer has function keys mirroring the numerals on the primary -layer with extras on the pinkie column, plus system keys on the inner column. -App (menu) is on the tertiary thumb key and other thumb keys are duplicated from -the base layer to enable auto-repeat. - - -#+NAME: fun-l -| F12 | F7 | F8 | F9 | PSCR | -| F11 | F4 | F5 | F6 | SLCK | -| F10 | F1 | F2 | F3 | PAUS | -| U_NP | U_NP | APP | SPC | TAB | - - -*** Alternative Layouts - -The defaults are recommended, but alternative layouts are provided to -accommodate existing muscle memory and platform differences. - - -**** Alphas - -To select, append the corresponding option to the ~make~ command line when -building, e.g. ~MIRYOKU_ALPHAS=QWERTY~. - - -***** 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 | / | - - -**** 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 | -| | ALGR | | | | | | | ALGR | | -| 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 | - - -****** Mouse Buttons Overlay - -#+NAME: mbo-flip -| | | | | | | | | | | -| LGUI | LALT | LCTL | LSFT | | | LSFT | LCTL | LALT | LGUI | -| U_RDO | U_PST | U_CPY | U_CUT | U_UND | U_RDO | U_PST | U_CPY | U_CUT | U_UND | -| U_NP | U_NP | BTN2 | BTN3 | BTN1 | BTN1 | BTN3 | BTN2 | U_NP | U_NP | - - -****** Media - -#+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 -| | | | | | | | | | | -|------+------+------+------+------+------+------+------+------+------| -| | | | | | | | | | | -| | | | | | | | | | | -| | | | | | | | | | | -| 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 -| | | | | | -|------+------+------+------+------| -| | | | | | -| | | | | | -| | | | | | -| ENT | BSPC | DEL | U_NP | U_NP | - -#+NAME: tem-l -| | | | | | -|------+------+------+------+------| -| | | | | | -| | | | | | -| | | | | | -| U_NP | U_NP | ESC | SPC | TAB | - - -* Code Generation - - -** 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=mbo :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_RDO, U_PST, U_CPY, U_CUT, U_UND, U_RDO, U_PST, U_CPY, U_CUT, U_UND, -: KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, -: KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, -: U_NP, U_NP, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_BTN3, KC_BTN2, U_NP, U_NP - - -*** 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]) -results = 'enum layers { BASE, MBO, ' -for hold_row in hold_table: - for hold in hold_row: - if hold not in mods_dict and hold != '' and hold != 'U_NP' and hold != 'RESET': - results += hold + ', ' -results = results.rstrip(', ') + ' };' -return results -#+END_SRC - -#+RESULTS: table-enums -: enum layers { BASE, MBO, 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 -#+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 - - -*** COMMENT python-version - -C-c C-c in code block to update - -#+NAME: python-version -#+BEGIN_SRC python :tangle no -import sys -return sys.version -#+END_SRC - -#+RESULTS: python-version -: 3.9.4 (default, Apr 9 2021, 01:15:05) -: [GCC 5.4.0 20160609] - - -** Data - - -*** symbol-names - -Symbol, name, and shifted symbol mappings for use in tables. - -#+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 | - - -*** mods - -Modifiers usable in hold table. Need to have the same name for ~KC_~ and ~_T~ -versions. - -#+NAME: mods -| LSFT | LCTL | LALT | LGUI | ALGR | - - -*** nonkc - -Keycodes that match any of these prefixes will not have ~KC_~ automatically -prepended. - -#+NAME: nonkc -| U_ | RGB_ | RESET | S( | C( | SCMD( | LCMD( | - - -*** header - -Header for tangled files. - -#+NAME: header -#+BEGIN_SRC C :main no :tangle no -Copyright 2019 Manna Harbour -https://github.com/manna-harbour/miryoku -generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- -#+END_SRC - - -*** license-qmk - -License for tangled QMK C source files. - -#+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 . -#+END_SRC - - -* Subset Mapping - -The keymap, build options, and configuration are shared between keyboards. The -layout is mapped onto keyboards with different physical layouts as a subset. - - -** Userspace - -The keymap is defined for ~LAYOUT_miryoku~ which is 10x4, with the outer 2 -positions on the bottom row unused and the rest of the bottom row being the -thumb keys. - - -*** [[./rules.mk][users/manna-harbour_miryoku/rules.mk]] - -Build options. Automatically included. - -#+BEGIN_SRC makefile :noweb yes :padline no :tangle rules.mk -# <
> - -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 - -# 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 -#+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 -// <
> - -<> - -#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 -// <
> - -<> - -#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 - -<> - -#if defined MIRYOKU_CLIPBOARD_FUN -<> -#elif defined MIRYOKU_CLIPBOARD_MAC -<> -#elif defined MIRYOKU_CLIPBOARD_WIN -<> -#else -<> -#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 -// <
> - -<> - -#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_COLEMAK -<> - #elif defined MIRYOKU_ALPHAS_COLEMAKDHK -<> - #elif defined MIRYOKU_ALPHAS_DVORAK -<> - #elif defined MIRYOKU_ALPHAS_HALMAK -<> - #elif defined MIRYOKU_ALPHAS_WORKMAN -<> - #elif defined MIRYOKU_ALPHAS_QWERTY -<> - #else -<> - #endif - ), - #if defined MIRYOKU_NAV_INVERTEDT - [NAV] = LAYOUT_miryoku( -<> - ), - [MOUSE] = LAYOUT_miryoku( -<> - ), - [MEDIA] = LAYOUT_miryoku( -<> - ), - #else - [NAV] = LAYOUT_miryoku( -<> - ), - [MOUSE] = LAYOUT_miryoku( -<> - ), - [MEDIA] = LAYOUT_miryoku( -<> - ), - #endif - [MBO] = LAYOUT_miryoku( -<> - ), - [NUM] = LAYOUT_miryoku( -<> - ), - [SYM] = LAYOUT_miryoku( -<> - ), - [FUN] = LAYOUT_miryoku( -<> - ) -, -#else - [BASE] = LAYOUT_miryoku( - #if defined MIRYOKU_ALPHAS_COLEMAK -<> - #elif defined MIRYOKU_ALPHAS_COLEMAKDHK -<> - #elif defined MIRYOKU_ALPHAS_DVORAK -<> - #elif defined MIRYOKU_ALPHAS_HALMAK -<> - #elif defined MIRYOKU_ALPHAS_WORKMAN -<> - #elif defined MIRYOKU_ALPHAS_QWERTY -<> - #else -<> - #endif - ), - #if defined MIRYOKU_NAV_VI - [NAV] = LAYOUT_miryoku( -<> - ), - [MOUSE] = LAYOUT_miryoku( -<> - ), - [MEDIA] = LAYOUT_miryoku( -<> - ), - #else - [NAV] = LAYOUT_miryoku( -<> - ), - [MOUSE] = LAYOUT_miryoku( -<> - ), - [MEDIA] = LAYOUT_miryoku( -<> - ), - #endif - [MBO] = LAYOUT_miryoku( -<> - ), - [NUM] = LAYOUT_miryoku( -<> - ), - [SYM] = LAYOUT_miryoku( -<> - ), - [FUN] = LAYOUT_miryoku( -<> - ) -#endif -}; -#+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~. - -For keyboards supporting multiple layouts for which subset mappings are -available, select the layout with ~FORCE_LAYOUT~ in the ~make~ command line when -building. E.g.: - -#+BEGIN_SRC sh :tangle no -make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=planck_mit # planck_mit -make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=ortho_4x12 # ortho_4x12 -#+END_SRC - - -*** 60_ansi - -An angled ortho split layout is mapped onto the row-staggered keyboard. The -rows are moved up to better position the thumb keys, the hands are separated as -much as possible, and the left hand column angle is reversed to reduce ulnar -deviation of the wrists. - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-60_ansi.png]] - -An alternative subset mapping is also provided without reverse column angle. To -select this mapping, append ~MIRYOKU_MAPPING=NOREVERSEANGLE~ to the ~make~ -command line when building. - -[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-60_ansi-noreverseangle.png]] - -Keyboards supporting this layout: alps64, amj60, bakeneko60, bm60poker, bm60rgb, do60, dp60, dz60, facew, gskt00, infinity60, jm60, kc60, kc60se, ok60, org60, paladin64, panc60, reviung61, smk60, v60_type_r, yd60mq, 1upkeyboards/1up60hse, 1upkeyboards/1up60rgb, 40percentclub/luddite, acheron/keebspcb, acheron/lasgweloth, ai03/polaris, akegata_denki/device_one, atxkb/1894, bioi/g60ble, bt66tech/bt66tech60, cannonkeys/an_c, cannonkeys/instant60, cannonkeys/practice60, clawsome/coupe, dm9records/tartan, duck/eagle_viper, evyd13/plain60, exclusive/e6_rgb, gh60/revc, gh60/satan, gh60/v1p3, handwired/xealousbrown, hineybush/h60, hs60/v1, keebio/wtf60, noxary/260, playkbtw/pk60, ryloo_studio/m0110, thevankeyboards/bananasplit, wilba_tech/zeal60, xd60/rev2, xd60/rev3, cannonkeys/db60/hotswap, cannonkeys/db60/j02, cannonkeys/db60/rev2, exclusive/e6v2/le, exclusive/e6v2/oe, foxlab/leaf60/universal, handwired/co60/rev1, handwired/co60/rev7, handwired/swiftrax/nodu, hs60/v2/ansi, inett_studio/sqx/universal, melgeek/mj61/rev1, melgeek/mj61/rev2, melgeek/mj63/rev1, melgeek/mj63/rev2, sentraq/s60_x/default, sentraq/s60_x/rgb. - -Example build command lines: - -#+BEGIN_SRC sh :tangle no -make dz60:manna-harbour_miryoku:flash # dz60 -make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=NOREVERSEANGLE # dz60, without reverse column angle -#+END_SRC - - -**** [[../../layouts/community/60_ansi/manna-harbour_miryoku/config.h][layouts/community/60_ansi/manna-harbour_miryoku/config.h]] - -Contains subset mapping. - -#+BEGIN