qmk-keychron-q3-colemak-dh/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_selection.h
Manna Harbour d8183c5249
[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
2022-10-27 13:50:32 +01:00

278 lines
11 KiB
C

// 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