[Keymap] Update Miryoku (#18773)

* [miryoku] Revert "[Keymap] manna-harbour_miryoku RESET to QK_BOOT (#18755)"

This reverts commit 89dbc18161.

* [miryoku] Add keyboardio/model01

* [miryoku] Add handwired/dactyl_manuform/4x6

* [miryoku] Update BT keycodes

- Update BT keycodes on Media inner index:
  - Move OUT_AUTO to bottom row
- Move RGB_TOG in vi to pinkie column to match other TOG keycodes, and rotate row

* [miryoku] Add Extra and Tap layers

* [miryoku] Rename config workflow option to custom_config

* [miryoku] Update custom_config.h and custom_rules.mk behaviour

* [miryoku] Make mapping macro customisable globally and per layer

* [miryoku] Add layer lock

* [miryoku] Update RGB order in media-l-invertedt

* [miryoku] Change mouse button order

* [miryoku] Change to X macros for layer list

- Supports adding and removing layers from custom_config.h
- Add "U_" prefix to layer names
- Add layer name strings
- Populate keymaps array from X macro
- Populate layers enum from X macro
- Move layers enum to manna-harbour_miryoku.h
- Rename miryoku_alternatives.h to miryoku_layer_alternatives.h
- Rename miryoku_layer.h to miryoku_layer_selection.h
- Remove miryoku_layer_names.h
- Add miryoku_layer_list.h

* [miryoku] Reformat split_3x6_3 mapping

* [miryoku] Add merge field to workflows

* [miryoku] Update thumb combos with new layer names

* [miryoku] Update cover image

* [miryoku] Add satt/vision

* [miryoku] Update Branches and Building docs

* [miryoku] Update reset keycode

* [miryoku] Add xmk

* [miryoku] Add boardsource/lulu

* [miryoku] Fix keyboardio/model01
This commit is contained in:
Manna Harbour 2022-10-27 23:50:32 +11:00 committed by GitHub
parent 18a70451fd
commit d8183c5249
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 985 additions and 472 deletions

View File

@ -0,0 +1,22 @@
// 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
#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\
)

View File

@ -1,9 +1,4 @@
// 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

View File

@ -0,0 +1,24 @@
// Copyright 2022 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
#define XXX KC_NO
#define LAYOUT_miryoku(\
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
) \
LAYOUT( \
XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \
XXX, XXX, XXX, XXX, \
K32, K33, K36, K37, \
K34, XXX, XXX, K35, \
XXX, XXX, XXX, XXX \
)

View File

@ -0,0 +1,4 @@
// 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/>.

View File

@ -0,0 +1,26 @@
// Copyright 2022 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
#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, K25, K26, K27, K28, K29, XXX, \
K32, K37, \
K33, K36, \
K34, K35, \
XXX, XXX, \
XXX, XXX \
)

View File

@ -0,0 +1,4 @@
// 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/>.

View File

@ -0,0 +1,4 @@
# Copyright 2022 Manna Harbour
# https://github.com/manna-harbour/miryoku
CONSOLE_ENABLE = no

View File

@ -0,0 +1,21 @@
// Copyright 2022 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
#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, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, XXX, \
XXX, XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
XXX, K20, K21, K22, K23, K24, XXX, K25, K26, K27, K28, K29, XXX,\
XXX, K32, K33, K34, K35, K36, K37, XXX \
)

View File

@ -0,0 +1,4 @@
// 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/>.

View File

@ -1,19 +1,21 @@
// Copyright 2019 Manna Harbour
// Copyright 2022 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
#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\
#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_3x6_3( \
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 \
)

View File

@ -5,6 +5,8 @@
#pragma once
#include "custom_config.h"
// default but used in macros
#undef TAPPING_TERM
#define TAPPING_TERM 200
@ -39,5 +41,3 @@
#define EXTRA_SHORT_COMBOS
#endif
#include "custom_config.h"

View File

@ -1,4 +1,4 @@
// Copyright 2019 Manna Harbour
// Copyright 2022 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/>.
@ -7,24 +7,17 @@
#include "manna-harbour_miryoku.h"
enum layers { MIRYOKU_LAYER_NAMES };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[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)
#define MIRYOKU_X(LAYER, STRING) [U_##LAYER] = U_MACRO_VA_ARGS(MIRYOKU_LAYERMAPPING_##LAYER, MIRYOKU_LAYER_##LAYER),
MIRYOKU_LAYER_LIST
#undef MIRYOKU_X
};
#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_base_right[] = {LT(U_SYM, KC_ENT), LT(U_NUM, KC_BSPC), COMBO_END};
const uint16_t PROGMEM thumbcombos_base_left[] = {LT(U_NAV, KC_SPC), LT(U_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_mouse[] = {KC_BTN2, KC_BTN1, 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)
@ -34,10 +27,10 @@ const uint16_t PROGMEM thumbcombos_sym[] = {KC_RPRN, KC_UNDS, COMBO_END};
#endif
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_base_right, LT(U_FUN, KC_DEL)),
COMBO(thumbcombos_base_left, LT(U_MEDIA, KC_ESC)),
COMBO(thumbcombos_nav, KC_DEL),
COMBO(thumbcombos_mouse, KC_BTN2),
COMBO(thumbcombos_mouse, KC_BTN3),
COMBO(thumbcombos_media, KC_MUTE),
COMBO(thumbcombos_num, KC_DOT),
#if defined (MIRYOKU_LAYERS_FLIP)

View File

@ -1,15 +1,25 @@
// Copyright 2019 Manna Harbour
// Copyright 2022 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
#include "miryoku_babel/miryoku_layer_names.h"
#include "miryoku_babel/miryoku_layer.h"
#include "miryoku_babel/miryoku_layer_selection.h"
#include "miryoku_babel/miryoku_layer_list.h"
enum miryoku_layers {
#define MIRYOKU_X(LAYER, STRING) U_##LAYER,
MIRYOKU_LAYER_LIST
#undef MIRYOKU_X
};
#define U_MACRO_VA_ARGS(macro, ...) macro(__VA_ARGS__)
#if !defined (MIRYOKU_MAPPING)
#define MIRYOKU_MAPPING LAYOUT_miryoku
#endif
#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

View File

@ -1,267 +0,0 @@
// 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, QK_BOOT, \
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, QK_BOOT, \
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 \
QK_BOOT, 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 \
QK_BOOT, 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 \
QK_BOOT, 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, QK_BOOT, \
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, QK_BOOT, \
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 \
QK_BOOT, 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 \
QK_BOOT, 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 \
QK_BOOT, 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, QK_BOOT, \
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, QK_BOOT, \
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 \
QK_BOOT, 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 \
QK_BOOT, 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 \
QK_BOOT, 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 \
QK_BOOT, 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, QK_BOOT, \
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 \
QK_BOOT, 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, QK_BOOT, \
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 \
QK_BOOT, 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, QK_BOOT, \
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

View File

@ -1,139 +0,0 @@
// 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

View File

@ -0,0 +1,389 @@
// Copyright 2022 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(U_BUTTON,KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(U_BUTTON,KC_QUOT),\
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_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(U_BUTTON,KC_J), ALGR_T(KC_SLSH), KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, ALGR_T(KC_P), LT(U_BUTTON,KC_V), \
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_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(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_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(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_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(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_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(U_BUTTON,KC_SLSH),ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(U_BUTTON,KC_Z), \
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_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(U_BUTTON,KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(U_BUTTON,KC_Y), \
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_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(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_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(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_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(U_BUTTON,KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_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(U_BUTTON,KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(U_BUTTON,KC_QUOT),\
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_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(U_BUTTON,KC_J), ALGR_T(KC_SLSH), KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, ALGR_T(KC_P), LT(U_BUTTON,KC_V), \
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_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(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_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(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_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(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_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(U_BUTTON,KC_SLSH),ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(U_BUTTON,KC_Z), \
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_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(U_BUTTON,KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(U_BUTTON,KC_Y), \
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_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(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_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(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_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(U_BUTTON,KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP \
KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
KC_Q, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_M, \
KC_W, KC_X, KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
KC_Y, KC_I, KC_E, KC_A, KC_DOT, KC_D, KC_S, KC_T, KC_N, KC_B, \
KC_J, KC_SLSH, KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, KC_P, KC_V, \
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
KC_A, KC_R, KC_S, KC_T, KC_G, KC_K, KC_N, KC_E, KC_I, KC_O, \
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \
KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \
KC_S, KC_H, KC_N, KC_T, KC_COMM, KC_DOT, KC_A, KC_E, KC_O, KC_I, \
KC_F, KC_M, KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, KC_K, KC_Y, \
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \
KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, \
KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, \
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
KC_Q, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_M, \
KC_W, KC_X, KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
KC_Y, KC_I, KC_E, KC_A, KC_DOT, KC_D, KC_S, KC_T, KC_N, KC_B, \
KC_J, KC_SLSH, KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, KC_P, KC_V, \
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
KC_A, KC_R, KC_S, KC_T, KC_G, KC_K, KC_N, KC_E, KC_I, KC_O, \
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \
KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \
KC_S, KC_H, KC_N, KC_T, KC_COMM, KC_DOT, KC_A, KC_E, KC_O, KC_I, \
KC_F, KC_M, KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, KC_K, KC_Y, \
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \
KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, \
KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_QWERTY \
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, \
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \
KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP \
KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, U_NA, DF(U_BASE), DF(U_EXTRA), DF(U_TAP), QK_BOOT, \
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, DF(U_NAV), DF(U_NUM), 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, DF(U_BASE), DF(U_EXTRA), DF(U_TAP), QK_BOOT, \
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, DF(U_NAV), DF(U_NUM), 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 \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), 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, DF(U_NUM), DF(U_NAV), 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 \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), 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, DF(U_NUM), DF(U_NAV), 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 \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), 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, DF(U_NUM), DF(U_NAV), 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, DF(U_BASE), DF(U_EXTRA), DF(U_TAP), QK_BOOT, \
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, DF(U_MOUSE), DF(U_SYM), KC_ALGR, U_NA, \
U_NP, U_NP, KC_BTN3, KC_BTN1, KC_BTN2, 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, DF(U_BASE), DF(U_EXTRA), DF(U_TAP), QK_BOOT, \
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, DF(U_MOUSE), DF(U_SYM), KC_ALGR, U_NA, \
U_NP, U_NP, KC_BTN3, KC_BTN1, KC_BTN2, U_NA, U_NA, U_NA, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), 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, DF(U_SYM), DF(U_MOUSE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MOUSE_VI \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), 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, DF(U_SYM), DF(U_MOUSE), 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_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MOUSE \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), 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, DF(U_SYM), DF(U_MOUSE), 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_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP \
RGB_HUI, RGB_SAI, KC_VOLU, RGB_VAI, RGB_TOG, U_NA, DF(U_BASE), DF(U_EXTRA), DF(U_TAP), QK_BOOT, \
RGB_MOD, KC_MPRV, KC_VOLD, KC_MNXT, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
U_NU, U_NU, U_NU, U_NU, OUT_AUTO, U_NA, DF(U_MEDIA), DF(U_FUN), 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, DF(U_BASE), DF(U_EXTRA), DF(U_TAP), QK_BOOT, \
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, OUT_AUTO, U_NA, DF(U_MEDIA), DF(U_FUN), 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 \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), U_NA, RGB_TOG, RGB_MOD, KC_VOLU, RGB_HUI, RGB_SAI, \
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MPRV, KC_VOLD, KC_MNXT, RGB_VAI, \
U_NA, KC_ALGR, DF(U_FUN), DF(U_MEDIA), U_NA, OUT_AUTO, 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 \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), U_NA, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, \
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, U_NU, \
U_NA, KC_ALGR, DF(U_FUN), DF(U_MEDIA), U_NA, U_NU, U_NU, U_NU, U_NU, OUT_AUTO, \
U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MEDIA \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), 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, DF(U_FUN), DF(U_MEDIA), U_NA, OUT_AUTO, 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 \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), 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, DF(U_NAV), DF(U_NUM), 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, DF(U_BASE), DF(U_EXTRA), DF(U_TAP), QK_BOOT, \
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, DF(U_NUM), DF(U_NAV), 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 \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), 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, DF(U_MOUSE), DF(U_SYM), 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, DF(U_BASE), DF(U_EXTRA), DF(U_TAP), QK_BOOT, \
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, DF(U_SYM), DF(U_MOUSE), 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 \
QK_BOOT, DF(U_TAP), DF(U_EXTRA), DF(U_BASE), 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, DF(U_MEDIA), DF(U_FUN), 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, DF(U_BASE), DF(U_EXTRA), DF(U_TAP), QK_BOOT, \
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, DF(U_FUN), DF(U_MEDIA), 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, U_NU, U_NU, 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_BTN3, KC_BTN1, KC_BTN2, KC_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP

View File

@ -0,0 +1,23 @@
// Copyright 2022 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
#if !defined (MIRYOKU_LAYER_LIST)
#define MIRYOKU_LAYER_LIST \
MIRYOKU_X(BASE, "Base") \
MIRYOKU_X(EXTRA, "Extra") \
MIRYOKU_X(TAP, "Tap") \
MIRYOKU_X(BUTTON, "Button") \
MIRYOKU_X(NAV, "Nav") \
MIRYOKU_X(MOUSE, "Mouse") \
MIRYOKU_X(MEDIA, "Media") \
MIRYOKU_X(NUM, "Num") \
MIRYOKU_X(SYM, "Sym") \
MIRYOKU_X(FUN, "Fun")
#endif

View File

@ -0,0 +1,277 @@
// 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_layer_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_COLEMAKDH)
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_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_COLEMAKDH)
#define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
#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_LAYERMAPPING_BASE)
#define MIRYOKU_LAYERMAPPING_BASE MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_EXTRA)
#if defined (MIRYOKU_LAYERS_FLIP)
#if defined (MIRYOKU_EXTRA_AZERTY)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP
#elif defined (MIRYOKU_EXTRA_BEAKL15)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP
#elif defined (MIRYOKU_EXTRA_COLEMAK)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP
#elif defined (MIRYOKU_EXTRA_COLEMAKDH)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
#elif defined (MIRYOKU_EXTRA_COLEMAKDHK)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP
#elif defined (MIRYOKU_EXTRA_DVORAK)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP
#elif defined (MIRYOKU_EXTRA_HALMAK)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP
#elif defined (MIRYOKU_EXTRA_WORKMAN)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP
#elif defined (MIRYOKU_EXTRA_QWERTY)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
#elif defined (MIRYOKU_EXTRA_QWERTZ)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP
#else
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
#endif
#else
#if defined (MIRYOKU_EXTRA_AZERTY)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_AZERTY
#elif defined (MIRYOKU_EXTRA_BEAKL15)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_BEAKL15
#elif defined (MIRYOKU_EXTRA_COLEMAK)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAK
#elif defined (MIRYOKU_EXTRA_COLEMAKDH)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
#elif defined (MIRYOKU_EXTRA_COLEMAKDHK)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK
#elif defined (MIRYOKU_EXTRA_DVORAK)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_DVORAK
#elif defined (MIRYOKU_EXTRA_HALMAK)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_HALMAK
#elif defined (MIRYOKU_EXTRA_WORKMAN)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_WORKMAN
#elif defined (MIRYOKU_EXTRA_QWERTY)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY
#elif defined (MIRYOKU_EXTRA_QWERTZ)
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTZ
#else
#define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY
#endif
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_EXTRA)
#define MIRYOKU_LAYERMAPPING_EXTRA MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_TAP)
#if defined (MIRYOKU_LAYERS_FLIP)
#if defined (MIRYOKU_TAP_AZERTY)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP
#elif defined (MIRYOKU_TAP_BEAKL15)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP
#elif defined (MIRYOKU_TAP_COLEMAK)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP
#elif defined (MIRYOKU_TAP_COLEMAKDH)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP
#elif defined (MIRYOKU_TAP_COLEMAKDHK)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP
#elif defined (MIRYOKU_TAP_DVORAK)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP
#elif defined (MIRYOKU_TAP_HALMAK)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP
#elif defined (MIRYOKU_TAP_WORKMAN)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP
#elif defined (MIRYOKU_TAP_QWERTY)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP
#elif defined (MIRYOKU_TAP_QWERTZ)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP
#else
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP
#endif
#else
#if defined (MIRYOKU_TAP_AZERTY)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_AZERTY
#elif defined (MIRYOKU_TAP_BEAKL15)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_BEAKL15
#elif defined (MIRYOKU_TAP_COLEMAK)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAK
#elif defined (MIRYOKU_TAP_COLEMAKDH)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH
#elif defined (MIRYOKU_TAP_COLEMAKDHK)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK
#elif defined (MIRYOKU_TAP_DVORAK)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_DVORAK
#elif defined (MIRYOKU_TAP_HALMAK)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_HALMAK
#elif defined (MIRYOKU_TAP_WORKMAN)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_WORKMAN
#elif defined (MIRYOKU_TAP_QWERTY)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTY
#elif defined (MIRYOKU_TAP_QWERTZ)
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTZ
#else
#define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH
#endif
#endif
#endif
#if !defined(MIRYOKU_LAYERMAPPING_TAP)
#define MIRYOKU_LAYERMAPPING_TAP MIRYOKU_MAPPING
#endif
#if !defined(MIRYOKU_LAYER_BUTTON)
#define MIRYOKU_LAYER_BUTTON MIRYOKU_ALTERNATIVES_BUTTON
#endif
#if !defined(MIRYOKU_LAYERMAPPING_BUTTON)
#define MIRYOKU_LAYERMAPPING_BUTTON MIRYOKU_MAPPING
#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_LAYERMAPPING_NAV)
#define MIRYOKU_LAYERMAPPING_NAV MIRYOKU_MAPPING
#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_LAYERMAPPING_MOUSE)
#define MIRYOKU_LAYERMAPPING_MOUSE MIRYOKU_MAPPING
#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_LAYERMAPPING_MEDIA)
#define MIRYOKU_LAYERMAPPING_MEDIA MIRYOKU_MAPPING
#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_LAYERMAPPING_NUM)
#define MIRYOKU_LAYERMAPPING_NUM MIRYOKU_MAPPING
#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_LAYERMAPPING_SYM)
#define MIRYOKU_LAYERMAPPING_SYM MIRYOKU_MAPPING
#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_LAYERMAPPING_FUN)
#define MIRYOKU_LAYERMAPPING_FUN MIRYOKU_MAPPING
#endif

View File

@ -1,34 +1,39 @@
# Copyright 2019 Manna Harbour
# Copyright 2022 Manna Harbour
# https://github.com/manna-harbour/miryoku
# alternative layouts:
# alternative layout options
# alphas
ifneq ($(strip $(MIRYOKU_ALPHAS)),)
OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS)
endif
# nav
ifneq ($(strip $(MIRYOKU_EXTRA)),)
OPT_DEFS += -DMIRYOKU_EXTRA_$(MIRYOKU_EXTRA)
endif
ifneq ($(strip $(MIRYOKU_TAP)),)
OPT_DEFS += -DMIRYOKU_TAP_$(MIRYOKU_TAP)
endif
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:
# kludges
# thumb combos
ifeq ($(strip $(MIRYOKU_KLUDGE_THUMBCOMBOS)),yes)

View File

@ -3,37 +3,42 @@
* 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://raw.githubusercontent.com/manna-harbour/miryoku/master/data/cover/miryoku-kle-cover-miryoku_qmk.png]]
[[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
*** QMK master
Miryoku QMK is periodically merged upstream into QMK master and it is generally recommended to build directly from QMK master.
QMK master is the current version of QMK, but usually does not contain the current version of Miryoku QMK.
QMK master is at https://github.com/qmk/qmk_firmware/tree/master, and the corresponding Miryoku QMK readme is at https://github.com/qmk/qmk_firmware/tree/master/users/manna-harbour_miryoku.
QMK master is at https://github.com/qmk/qmk_firmware/tree/master. The corresponding Miryoku QMK readme is at https://github.com/qmk/qmk_firmware/tree/master/users/manna-harbour_miryoku and describes the version of Miryoku QMK in QMK master.
*** Miryoku QMK development branch
The Miryoku QMK development branch is ~miryoku~ and may contain new commits not yet merged into QMK master.
The Miryoku QMK development branch is the current version of Miryoku QMK, but usually does not contain the current version of QMK.
~miryoku~ is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku, and the corresponding Miryoku QMK readme is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku.
The Miryoku QMK development branch is named ~miryoku~ and is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku. The corresponding Miryoku QMK readme is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku.
New commits can be seen at the top of the [[https://github.com/manna-harbour/miryoku_qmk/commits/miryoku][history]] with commit messages beginning ~[miryoku]~. After the new commits are squashed and merged upstream into QMK master by pull request the ~miryoku~ branch is renamed and a new ~miryoku~ branch is created from QMK master.
New commits can be seen at the top of the [[https://github.com/manna-harbour/miryoku_qmk/commits/miryoku][history]] with commit messages beginning ~[miryoku]~ or ~[miryoku-github]~
To checkout the ~miryoku~ branch in your existing QMK build environment:
#+BEGIN_SRC sh :tangle no
git remote add miryoku_qmk git@github.com:manna-harbour/miryoku_qmk.git # if using SSH
git remote add miryoku_qmk https://github.com/manna-harbour/miryoku_qmk.git # if using HTTPS
git fetch miryoku_qmk
git checkout --track miryoku_qmk/miryoku
#+END_SRC
Periodically, the ~[miryoku]~ commits are squashed and merged upstream into QMK master by pull request, the ~miryoku~ branch is renamed, and a new ~miryoku~ branch is created from QMK master.
**** Merge
To use both the current versions of QMK and Miryoku QMK together, the QMK master and ~miryoku~ branches need to be merged.
The ~[miryoku-github]~ commits relate to GitHub specific functions of the Miryoku QMK repository and forks, such as workflows. Directly merging ~miryoku~ with a branch based on QMK master will lead to conflicts due to those commits. To avoid conflicts, first drop or revert all ~[miryoku-github]~ commits from ~miryoku~ before merging.
Merging branches can be performed automatically at build time for [[#workflow-builds][workflow builds]] using the ~merge~ option, which will automatically revert all ~[miryoku-github]~ commits before merging. For local builds, see [[#checkout-update-and-merge][Checkout, Update, and Merge]] below.
Any local changes to existing workflow files should be made independently in commits with messages starting ~[miryoku-github]~ so that they can also be automatically excluded in workflow builds.
** Building
@ -41,7 +46,52 @@ git checkout --track miryoku_qmk/miryoku
First [[https://docs.qmk.fm/#/newbs_getting_started][set up the QMK build environment and build the default keymap for your keyboard]].
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.
Next choose the [[#branches][branch]]. If using ~miryoku~, [[#checkout-update-and-merge][checkout, update, or merge]] as needed.
Build with ~manna-harbour_miryoku~ as the keymap name. Personalised 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. Build with [[#qmk][qmk]] or [[#make][make]].
**** Checkout, Update, and Merge
All of the following examples operate in your existing QMK build environment.
#+BEGIN_SRC sh :tangle no
cd qmk_firmware
#+END_SRC
To checkout the ~miryoku~ branch from Miryoku QMK:
#+BEGIN_SRC sh :tangle no
git remote add miryoku_qmk git@github.com:manna-harbour/miryoku_qmk.git # if using SSH
git remote add miryoku_qmk https://github.com/manna-harbour/miryoku_qmk.git # if using HTTPS
git fetch miryoku_qmk
git checkout --track miryoku_qmk/miryoku
make git-submodule
#+END_SRC
To update the ~miryoku~ branch from Miryoku QMK:
#+BEGIN_SRC sh :tangle no
git checkout miryoku
git fetch miryoku_qmk
git merge miryoku_qmk/miryoku
#+END_SRC
If a new ~miryoku~ branch has been created in Miryoku QMK you will see ~(forced update)~ after the fetch. To rename the existing ~miryoku~ branch and create a new ~miryoku~ branch from Miryoku QMK:
#+BEGIN_SRC sh :tangle no
git checkout miryoku
git branch -m miryoku-`whoami`-`date --rfc-3339=date`
git fetch miryoku_qmk
git checkout --track miryoku_qmk/miryoku
make git-submodule
#+END_SRC
To [[#merge][merge]] the ~miryoku~ branch with QMK master:
#+BEGIN_SRC sh :tangle no
git checkout miryoku
git checkout -b miryoku-merge-master
git revert --no-edit `git log --grep='^\[miryoku-github\]' --pretty='format:%H' | tr '\n' ' '`
git fetch origin
git merge origin/master
make git-submodule
#+END_SRC
**** qmk
@ -51,7 +101,13 @@ Build with the ~qmk~ command. E.g.
#+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
qmk compile -c -kb crkbd -km manna-harbour_miryoku \
-e MIRYOKU_ALPHAS=QWERTY \
-e MIRYOKU_EXTRA=COLEMAKDH \
-e MIRYOKU_TAP=QWERTY \
-e MIRYOKU_NAV=INVERTEDT \
-e MIRYOKU_CLIPBOARD=WIN \
-e MIRYOKU_LAYERS=FLIP # build for crkbd with alternative layouts
#+END_SRC
@ -62,7 +118,13 @@ First ~cd~ to the repository root. Then build with ~make~. E.g.
#+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
make clean crkbd:manna-harbour_miryoku \
MIRYOKU_ALPHAS=QWERTY \
MIRYOKU_EXTRA=COLEMAKDH \
MIRYOKU_TAP=QWERTY \
MIRYOKU_NAV=INVERTEDT \
MIRYOKU_CLIPBOARD=WIN \
MIRYOKU_LAYERS=FLIP # build for crkbd with alternative layouts
#+END_SRC
@ -70,13 +132,22 @@ make clean crkbd:manna-harbour_miryoku MIRYOKU_ALPHAS=QWERTY MIRYOKU_NAV=INVERTE
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]].
First log in to GitHub, fork the [[#miryoku-qmk-development-branch][Miryoku QMK development branch]] repository, and enable workflows.
First [[#fork-or-sync][fork the Miryoku QMK repository or sync the ~miryoku~ branch]]. Then use the [[#build-examples][Build Examples]] or [[#build-inputs][Build Inputs]] workflows.
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]].
**** Fork or Sync
If you don't have a fork, first [[https://github.com/signup][create a GitHub account]], [[https://github.com/login][login to GitHub]], [[https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository][fork]] https://github.com/manna-harbour/miryoku_qmk, and visit the Actions tab and enable workflows.
If you already have a fork, [[https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork#syncing-a-fork-branch-from-the-web-ui][sync]] the ~miryoku~ branch.
If a new ~miryoku~ branch has been created in Miryoku QMK, there will be a warning about conflicts when trying to sync. If you have local changes, first create a copy of the branch by [[https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository#creating-a-branch][creating a new branch]] and specifying the ~miryoku~ branch in your fork as the source, then sync the ~miryoku~ branch again. Accept the prompt to discard commits.
**** Build Examples
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.
@ -91,7 +162,9 @@ The ~keyboard~ option specifies the keyboard and is required. All other options
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~.
The ~rules~ and ~custom_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~.
The ~merge~ option can be used to merge branches at build time. Branches are specified in the form ~<user>/<repo>/<branch>~. E.g. QMK ~master~ and ~develop~ would be specified as ~qmk/qmk_firmware/master~ and ~qmk/qmk_firmware/develop~ respectively. Multiple space separated branches can be specified. For no merges, leave as ~default~.
**** Build Inputs
@ -106,6 +179,8 @@ The ~Miryoku Alphas~, ~Miryoku Nav~, ~Miryoku Clipboard~, and ~Miryoku Layers~ o
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~.
The ~Merge QMK Branches~ option can be used to merge branches at build time. Branches are specified in the form ~<user>/<repo>/<branch>~. E.g. QMK ~master~ and ~develop~ would be specified as ~qmk/qmk_firmware/master~ and ~qmk/qmk_firmware/develop~ respectively. Multiple space separated branches can be specified. For no merges, leave as ~default~.
** Subset Mapping
@ -122,13 +197,13 @@ thumb keys.
- [[./rules.mk]] :: Build options. Automatically included.
- [[./custom_rules.mk]] :: Custom ~make~ options including customised defaults for alternative layout options, for local builds. Included from ~rules.mk~.
- [[./custom_rules.mk]] :: Custom ~make~ options including customised defaults for alternative layout and mapping options. Included from ~rules.mk~.
- [[./post_rules.mk]] :: Handles Miryoku ~make~ options. Included from ~rules.mk~.
- [[./config.h]] :: Config options. Automatically included.
- [[./custom_config.h]] :: Custom config options for local builds. Included from ~config.h~.
- [[./custom_config.h]] :: Custom config options. Included from ~config.h~.
- [[./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.
@ -500,6 +575,17 @@ make handwired/dactyl_manuform/4x5:manna-harbour_miryoku:flash
#+END_SRC
**** handwired/dactyl_manuform/4x6
Only the main 5x3 alphas and the main 3 thumb keys are used.
To build for this keyboard,
#+BEGIN_SRC sh :tangle no
make handwired/dactyl_manuform/4x6:manna-harbour_miryoku:flash
#+END_SRC
**** handwired/dactyl_manuform/5x6
Only the main 5x3 alphas and the main 3 thumb keys are used.
@ -542,6 +628,17 @@ make keyboardio/atreus:manna-harbour_miryoku:flash
#+END_SRC
**** keyboardio/model01
Only the main 5x3 alphas and the inner 3 thumb keys are used.
To build for this keyboard,
#+BEGIN_SRC sh :tangle no
make keyboardio/model01:manna-harbour_miryoku:flash
#+END_SRC
**** lily58
Only the main 5x3 alphas and the inner 3 thumb keys are used.
@ -588,6 +685,15 @@ make redox_w:manna-harbour_miryoku:flash
#+END_SRC
**** satt/vision
To build for this keyboard,
#+BEGIN_SRC sh :tangle no
make satt/vision:manna-harbour_miryoku:flash
#+END_SRC
**** sofle
To build for this keyboard,
@ -647,6 +753,16 @@ Combo the primary and secondary thumb keys to emulate the tertiary thumb key. C
- [[https://github.com/manna-harbour/qmk_firmware/issues/33][Retro Shift]]
*** 𝑥MK
Use Miryoku QMK with any keyboard with [[https://github.com/manna-harbour/xmk][𝑥MK]].
For [[#local-builds][local builds]], merge https://github.com/manna-harbour/qmk_firmware/tree/xmk and build for keyboard ~converter/xmk~.
For [[#workflow-builds][workflow builds]], use the Build Inputs workflow and build with keyboard ~converter/xmk~ and merge ~manna-harbour/qmk_firmware/xmk~, or use the Build Example 𝑥MK workflow.
Also see [[https://github.com/manna-harbour/miryoku_kmonad][Miryoku KMonad]].
**
[[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/manna-harbour-boa-32.png]]