diff --git a/config/glove80.keymap b/config/glove80.keymap index 6f82cc9..eb1360d 100644 --- a/config/glove80.keymap +++ b/config/glove80.keymap @@ -1,56 +1,165 @@ + /* * Copyright (c) 2020 The ZMK Contributors + * Copyright (c) 2023 Innaworks Development Limited, trading as MoErgo * * SPDX-License-Identifier: MIT */ + +/* THIS FILE WAS GENERATED BY GLOVE80 LAYOUT EDITOR + * + * This file was generated automatically. You may or may not want to + * edit it directly. + */ + #include +/* Include all behavior includes needed */ +#include #include #include -#include -#include #include -#define HYPER LC(LS(LG(LALT))) +/* Automatically generated layer name #define */ +#define LAYER_QWERTY 0 +#define LAYER_Engrammer 1 +#define LAYER_Engram 2 +#define LAYER_Dvorak 3 +#define LAYER_ColemakDHm 4 +#define LAYER_Colemak 5 +#define LAYER_Norman 6 +#define LAYER_Workman 7 +#define LAYER_Halmak 8 +#define LAYER_Typing 9 +#define LAYER_LeftPinky 10 +#define LAYER_LeftRing1 11 +#define LAYER_LeftRing2 12 +#define LAYER_LeftMiddy 13 +#define LAYER_LeftIndex 14 +#define LAYER_RightPinky 15 +#define LAYER_RightRing1 16 +#define LAYER_RightRing2 17 +#define LAYER_RightMiddy 18 +#define LAYER_RightIndex 19 +#define LAYER_Cursor 20 +#define LAYER_Number 21 +#define LAYER_Function 22 +#define LAYER_Emoji 23 +#define LAYER_Symbol 24 +#define LAYER_Mouse 25 +#define LAYER_System 26 +#define LAYER_World 27 +#define LAYER_Gaming 28 +#define LAYER_Factory 29 +#define LAYER_Lower 30 +#define LAYER_Magic 31 -// layers -#define DEFAULT 0 -#define LOWER 1 -#define MAGIC 2 -#define FACTORY_TEST 3 +/* To deal with the situation where there is no Lower layer, to keep &lower happy */ +#ifndef LAYER_Lower +#define LAYER_Lower 0 +#endif +/* Custom Device-tree */ + + + +/* Glove80 system behavior & macros */ / { behaviors { // For the "layer" key, it'd nice to be able to use it as either a shift or a toggle. // Configure it as a tap dance, so the first tap (or hold) is a &mo and the second tap is a &to - layer_td: tap_dance_0 { + lower: lower { compatible = "zmk,behavior-tap-dance"; label = "LAYER_TAP_DANCE"; #binding-cells = <0>; tapping-term-ms = <200>; - bindings = <&mo LOWER>, <&to LOWER>; - }; - - magic: magic_hold_tap { - compatible = "zmk,behavior-hold-tap"; - label = "MAGIC_HOLD_TAP"; - #binding-cells = <2>; - flavor = "tap-preferred"; - tapping-term-ms = <200>; - bindings = <&mo>, <&rgb_ug_status_macro>; + bindings = <&mo LAYER_Lower>, <&to LAYER_Lower>; }; }; +}; +/ { macros { - rgb_ug_status_macro: rgb_ug_status_macro_0 { + rgb_ug_status_macro: rgb_ug_status_macro { label = "RGB_UG_STATUS"; compatible = "zmk,behavior-macro"; #binding-cells = <0>; bindings = <&rgb_ug RGB_STATUS>; }; + }; +}; - bt_0: bt_profile_macro_0 { + +/ { +#ifdef BT_DISC_CMD + behaviors { + bt_0: bt_0 { + compatible = "zmk,behavior-tap-dance"; + label = "BT_0"; + #binding-cells = <0>; + tapping-term-ms = <200>; + bindings = <&bt_select_0>, <&bt BT_DISC 0>; + }; + bt_1: bt_1 { + compatible = "zmk,behavior-tap-dance"; + label = "BT_1"; + #binding-cells = <0>; + tapping-term-ms = <200>; + bindings = <&bt_select_1>, <&bt BT_DISC 1>; + }; + bt_2: bt_2 { + compatible = "zmk,behavior-tap-dance"; + label = "BT_2"; + #binding-cells = <0>; + tapping-term-ms = <200>; + bindings = <&bt_select_2>, <&bt BT_DISC 2>; + }; + bt_3: bt_3 { + compatible = "zmk,behavior-tap-dance"; + label = "BT_3"; + #binding-cells = <0>; + tapping-term-ms = <200>; + bindings = <&bt_select_3>, <&bt BT_DISC 3>; + }; + }; + macros { + bt_select_0: bt_select_0 { + label = "BT_SELECT_0"; + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings + = <&out OUT_BLE>, + <&bt BT_SEL 0>; + }; + bt_select_1: bt_select_1 { + label = "BT_SELECT_1"; + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings + = <&out OUT_BLE>, + <&bt BT_SEL 1>; + }; + bt_select_2: bt_select_2 { + label = "BT_SELECT_2"; + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings + = <&out OUT_BLE>, + <&bt BT_SEL 2>; + }; + bt_select_3: bt_select_3 { + label = "BT_SELECT_3"; + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings + = <&out OUT_BLE>, + <&bt BT_SEL 3>; + }; + }; +#else + macros { + bt_0: bt_0 { label = "BT_0"; compatible = "zmk,behavior-macro"; #binding-cells = <0>; @@ -58,8 +167,7 @@ = <&out OUT_BLE>, <&bt BT_SEL 0>; }; - - bt_1: bt_profile_macro_1 { + bt_1: bt_1 { label = "BT_1"; compatible = "zmk,behavior-macro"; #binding-cells = <0>; @@ -67,8 +175,7 @@ = <&out OUT_BLE>, <&bt BT_SEL 1>; }; - - bt_2: bt_profile_macro_2 { + bt_2: bt_2 { label = "BT_2"; compatible = "zmk,behavior-macro"; #binding-cells = <0>; @@ -76,8 +183,7 @@ = <&out OUT_BLE>, <&bt BT_SEL 2>; }; - - bt_3: bt_profile_macro_3 { + bt_3: bt_3 { label = "BT_3"; compatible = "zmk,behavior-macro"; #binding-cells = <0>; @@ -86,60 +192,10737 @@ <&bt BT_SEL 3>; }; }; +#endif +}; - keymap { - compatible = "zmk,keymap"; - - default_layer { - // --------------------------------------------------------------------------------------------------------------------------------- - // | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | - // | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | - // | TAB | Q | W | E | R | T | | Y | U | I | O | P | \ | - // | ESC | A | S | D | F | G | | H | J | K | L | ; | ' | - // | ` | Z | X | C | V | B | LSHFT | LCTRL | LOWER | | LGUI | RCTRL | RSHFT | N | M | , | . | / | PGUP | - // | MAGIC | HOME| END | LEFT | RIGHT| | BSPC | DEL | LALT | | RALT | RET | SPACE | | UP | DOWN | [ | ] | PGDN | - - bindings = < - &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 - &kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH - &kp ESC &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT - &kp GRAVE &kp Z &kp X &kp C &kp V &kp B &kp LSHFT &kp LCTRL &layer_td &kp LGUI &kp RCTRL &kp RSHFT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp PG_UP - &magic MAGIC 0 &kp HOME &kp END &kp LEFT &kp RIGHT &kp BSPC &kp DEL &kp LALT &kp RALT &kp RET &kp SPACE &kp UP &kp DOWN &kp LBKT &kp RBKT &kp PG_DN - >; - }; - - lower_layer { - bindings = < - &kp C_BRI_DN &kp C_BRI_UP &kp C_PREV &kp C_NEXT &kp C_PP &kp C_MUTE &kp C_VOL_DN &kp C_VOL_UP &none &kp PAUSE_BREAK - &trans &none &none &none &none &kp HOME &kp LPAR &kp KP_NUM &kp KP_EQUAL &kp KP_DIVIDE &kp KP_MULTIPLY &kp PSCRN - &trans &none &none &kp UP &none &kp END &kp RPAR &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp SLCK - &trans &none &kp LEFT &kp DOWN &kp RIGHT &kp PG_UP &kp PRCNT &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS &none - &trans &kp K_CMENU &none &kp F11 &kp F12 &kp PG_DN &trans &trans &to DEFAULT &trans &trans &trans &kp COMMA &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_ENTER &trans - &trans &kp CAPS &kp INS &kp F11 &kp F12 &trans &trans &trans &trans &trans &trans &kp KP_N0 &kp KP_N0 &kp KP_DOT &kp KP_ENTER &trans - >; - }; - - magic_layer { - bindings = < - &bt BT_CLR &none &none &none &none &none &none &none &none &bt BT_CLR_ALL - &none &none &none &none &none &none &none &none &none &none &none &none - &none &rgb_ug RGB_SPI &rgb_ug RGB_SAI &rgb_ug RGB_HUI &rgb_ug RGB_BRI &rgb_ug RGB_TOG &none &none &none &none &none &none - &bootloader &rgb_ug RGB_SPD &rgb_ug RGB_SAD &rgb_ug RGB_HUD &rgb_ug RGB_BRD &rgb_ug RGB_EFF &none &none &none &none &none &bootloader - &sys_reset &none &none &none &none &none &bt_2 &bt_3 &none &none &none &none &none &none &none &none &none &sys_reset - &none &none &none &none &none &bt_0 &bt_1 &out OUT_USB &none &none &none &none &none &none &none &to FACTORY_TEST - >; - }; - - factory_test_layer { - bindings = < - &kp N0 &kp N6 &kp N2 &kp N8 &kp N4 &kp N4 &kp N8 &kp N2 &kp N6 &kp N0 - &kp N1 &kp N7 &kp N3 &kp N9 &kp N5 &kp N0 &kp N0 &kp N5 &kp N9 &kp N3 &kp N7 &kp N1 - &kp N2 &kp N8 &kp N4 &kp N0 &kp N6 &kp N1 &kp N1 &kp N6 &kp N0 &kp N4 &kp N8 &kp N2 - &kp N3 &kp N9 &kp N5 &kp N1 &kp N7 &kp N2 &kp N2 &kp N7 &kp N1 &kp N5 &kp N9 &kp N3 - &kp N4 &kp N0 &kp N6 &kp N2 &kp N8 &kp N3 &kp N4 &kp N5 &kp N6 &kp N6 &kp N5 &kp N4 &kp N3 &kp N8 &kp N2 &kp N6 &kp N0 &kp N4 - &kp N5 &kp N1 &kp N7 &kp N3 &kp N9 &kp N7 &kp N8 &kp N9 &kp N9 &kp N8 &kp N7 &kp N9 &kp N3 &kp N7 &kp N1 &kp N5 - >; +/ { + behaviors { + magic: magic { + compatible = "zmk,behavior-hold-tap"; + label = "MAGIC_HOLD_TAP"; + #binding-cells = <2>; + flavor = "tap-preferred"; + tapping-term-ms = <200>; + bindings = <&mo>, <&rgb_ug_status_macro>; }; }; }; + +/* #define for key positions */ +#define POS_LH_T1 52 +#define POS_LH_T2 53 +#define POS_LH_T3 54 +#define POS_LH_T4 69 +#define POS_LH_T5 70 +#define POS_LH_T6 71 +#define POS_LH_C1R2 15 +#define POS_LH_C1R3 27 +#define POS_LH_C1R4 39 +#define POS_LH_C1R5 51 +#define POS_LH_C2R1 4 +#define POS_LH_C2R2 14 +#define POS_LH_C2R3 26 +#define POS_LH_C2R4 38 +#define POS_LH_C2R5 50 +#define POS_LH_C2R6 68 +#define POS_LH_C3R1 3 +#define POS_LH_C3R2 13 +#define POS_LH_C3R3 25 +#define POS_LH_C3R4 37 +#define POS_LH_C3R5 49 +#define POS_LH_C3R6 67 +#define POS_LH_C4R1 2 +#define POS_LH_C4R2 12 +#define POS_LH_C4R3 24 +#define POS_LH_C4R4 36 +#define POS_LH_C4R5 48 +#define POS_LH_C4R6 66 +#define POS_LH_C5R1 1 +#define POS_LH_C5R2 11 +#define POS_LH_C5R3 23 +#define POS_LH_C5R4 35 +#define POS_LH_C5R5 47 +#define POS_LH_C5R6 65 +#define POS_LH_C6R1 0 +#define POS_LH_C6R2 10 +#define POS_LH_C6R3 22 +#define POS_LH_C6R4 34 +#define POS_LH_C6R5 46 +#define POS_LH_C6R6 64 +#define POS_RH_T1 57 +#define POS_RH_T2 56 +#define POS_RH_T3 55 +#define POS_RH_T4 74 +#define POS_RH_T5 73 +#define POS_RH_T6 72 +#define POS_RH_C1R2 16 +#define POS_RH_C1R3 28 +#define POS_RH_C1R4 40 +#define POS_RH_C1R5 58 +#define POS_RH_C2R1 5 +#define POS_RH_C2R2 17 +#define POS_RH_C2R3 29 +#define POS_RH_C2R4 41 +#define POS_RH_C2R5 59 +#define POS_RH_C2R6 75 +#define POS_RH_C3R1 6 +#define POS_RH_C3R2 18 +#define POS_RH_C3R3 30 +#define POS_RH_C3R4 42 +#define POS_RH_C3R5 60 +#define POS_RH_C3R6 76 +#define POS_RH_C4R1 7 +#define POS_RH_C4R2 19 +#define POS_RH_C4R3 31 +#define POS_RH_C4R4 43 +#define POS_RH_C4R5 61 +#define POS_RH_C4R6 77 +#define POS_RH_C5R1 8 +#define POS_RH_C5R2 20 +#define POS_RH_C5R3 32 +#define POS_RH_C5R4 44 +#define POS_RH_C5R5 62 +#define POS_RH_C5R6 78 +#define POS_RH_C6R1 9 +#define POS_RH_C6R2 21 +#define POS_RH_C6R3 33 +#define POS_RH_C6R4 45 +#define POS_RH_C6R5 63 +#define POS_RH_C6R6 79 + +/* Custom Defined Behaviors */ +/ { +// NOTE: Use the `#define` settings below to customize this keymap! +// For example, here are the main optional features you can enable: +#define DIFFICULTY_LEVEL 4 // 0:custom, 1:easy -> 5:hard (see below) +#define ENFORCE_BILATERAL // cancels single-handed home row mod+tap +#define WORLD_USE_COMPOSE // use native Compose in place of Unicode +#define OPERATING_SYSTEM 'L' // linux +// TIP: Add more setting overrides here instead of editing them below. + +////////////////////////////////////////////////////////////////////////////// +// +// Sunaku's Keymap v36 -- "Glorious Engrammer" +// - https://github.com/sunaku/glove80-keymaps +// +////////////////////////////////////////////////////////////////////////////// + +// +// DIFFICULTY_LEVEL specifies your level of expertise with this keymap. +// It's meant to help newcomers gradually work their way up to mastery. +// You can disable this setting by omitting it or assigning a `0` zero. +// +// #define DIFFICULTY_LEVEL 0 // custom (see defaults below) +// #define DIFFICULTY_LEVEL 1 // novice (500ms) +// #define DIFFICULTY_LEVEL 2 // slower (400ms) +// #define DIFFICULTY_LEVEL 3 // normal (300ms) +// #define DIFFICULTY_LEVEL 4 // faster (200ms) +// #define DIFFICULTY_LEVEL 5 // expert (100ms) +// +#if defined(DIFFICULTY_LEVEL) && DIFFICULTY_LEVEL > 0 +#define DIFFICULTY_LEVEL_HOLDING_TIME ((6 - DIFFICULTY_LEVEL) * 100) +#define DIFFICULTY_LEVEL_STREAK_DECAY (((6 - DIFFICULTY_LEVEL) * 50) + 100) +#ifndef HOMEY_HOLDING_TIME +#define HOMEY_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME +#endif +#ifndef HOMEY_STREAK_DECAY +#define HOMEY_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY +#endif +#ifndef INDEX_HOLDING_TIME +#define INDEX_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME +#endif +#ifndef INDEX_STREAK_DECAY +#define INDEX_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY +#endif +#ifndef PLAIN_HOLDING_TIME +#define PLAIN_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME +#endif +#ifndef PLAIN_STREAK_DECAY +#define PLAIN_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY +#endif +#ifndef SPACE_HOLDING_TIME +#define SPACE_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME +#endif +#ifndef SPACE_STREAK_DECAY +#define SPACE_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY +#endif +#endif + +// +// OPERATING_SYSTEM defines which operating system you intend to use +// with this keymap, because shortcuts vary across operating systems. +// +// - https://zmk.dev/docs/codes +// - https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts +// +#ifndef OPERATING_SYSTEM +#define OPERATING_SYSTEM 'L' // linux +//#define OPERATING_SYSTEM 'M' // macos +//#define OPERATING_SYSTEM 'W' // windows +#endif +#if OPERATING_SYSTEM == 'M' + #define _C LG + #define _A_TAB LGUI + #define _G_TAB LALT + #define _REDO _C(LS(Z)) + #define _POWER K_POWER + #define _W LA + #define _HOME _C(LEFT) + #define _END _C(RIGHT) +#else + #define _C LC + #define _A_TAB LALT + #define _G_TAB LGUI + #define _REDO _C(Y) + #define _POWER C_POWER + #define _W _C + #define _HOME HOME + #define _END END +#endif +#define _SLEEP C_SLEEP +#if OPERATING_SYSTEM == 'W' + #define _LOCK LG(L) +#elif OPERATING_SYSTEM == 'M' + #define _LOCK _C(LC(Q)) +#elif OPERATING_SYSTEM == 'L' + #define _LOCK K_LOCK +#endif +#define _UNDO _C(Z) +#define _CUT _C(X) +#define _COPY _C(C) +#define _PASTE _C(V) +#define _FIND _C(F) +#define _FIND_NEXT _C(G) +#define _FIND_PREV _C(LS(G)) + +// +// USE_NUMPAD_KEYCODES puts `KP_*` keycodes into the Number layer. +// +#ifdef USE_NUMPAD_KEYCODES +#define _KP_N0 KP_N0 +#define _KP_N1 KP_N1 +#define _KP_N2 KP_N2 +#define _KP_N3 KP_N3 +#define _KP_N4 KP_N4 +#define _KP_N5 KP_N5 +#define _KP_N6 KP_N6 +#define _KP_N7 KP_N7 +#define _KP_N8 KP_N8 +#define _KP_N9 KP_N9 +#define _KP_PLUS KP_PLUS +#define _KP_MINUS KP_MINUS +#define _KP_ASTERISK KP_ASTERISK +#define _KP_SLASH KP_SLASH +#define _KP_COMMA KP_COMMA +#define _KP_DOT KP_DOT +#define _KP_EQUAL KP_EQUAL +#define _KP_ENTER KP_ENTER +#else +#define _KP_N0 N0 +#define _KP_N1 N1 +#define _KP_N2 N2 +#define _KP_N3 N3 +#define _KP_N4 N4 +#define _KP_N5 N5 +#define _KP_N6 N6 +#define _KP_N7 N7 +#define _KP_N8 N8 +#define _KP_N9 N9 +#define _KP_PLUS PLUS +#define _KP_MINUS MINUS +#define _KP_ASTERISK ASTERISK +#define _KP_SLASH SLASH +#define _KP_COMMA COMMA +#define _KP_DOT DOT +#define _KP_EQUAL EQUAL +#define _KP_ENTER ENTER +#endif + +// +// Glove80 specific symbol overrides to support non "en-US" locales +// +#undef AMPS +#define AMPS LS(N7) +#undef AT +#define AT LS(N2) +#undef CARET +#define CARET LS(N6) +#undef COLON +#define COLON LS(SEMI) +#undef DLLR +#define DLLR LS(N4) +#undef DQT +#define DQT LS(SQT) +#undef EXCL +#define EXCL LS(N1) +#undef GT +#define GT LS(DOT) +#undef HASH +#define HASH LS(N3) +#undef LBRC +#define LBRC LS(LBKT) +#undef LPAR +#define LPAR LS(N9) +#undef LT +#define LT LS(COMMA) +#undef PIPE +#define PIPE LS(BSLH) +#undef PLUS +#define PLUS LS(EQUAL) +#undef PRCNT +#define PRCNT LS(N5) +#undef QMARK +#define QMARK LS(FSLH) +#undef RBRC +#define RBRC LS(RBKT) +#undef RPAR +#define RPAR LS(N0) +#undef STAR +#define STAR LS(N8) +#undef TILDE +#define TILDE LS(GRAVE) +#undef UNDER +#define UNDER LS(MINUS) + +// +// Keymap specific knowledge of the base layer's alpha + ZMK layout +// +#if defined(LAYER_Engrammer) && LAYER_Engrammer == 0 +#define KEY_LH_C6R1 F1 +#define KEY_LH_C5R1 F2 +#define KEY_LH_C4R1 F3 +#define KEY_LH_C3R1 F4 +#define KEY_LH_C2R1 F5 +#define KEY_RH_C2R1 F6 +#define KEY_RH_C3R1 F7 +#define KEY_RH_C4R1 F8 +#define KEY_RH_C5R1 F9 +#define KEY_RH_C6R1 F10 +#define KEY_LH_C6R2 EQUAL +#define KEY_LH_C5R2 N1 +#define KEY_LH_C4R2 N2 +#define KEY_LH_C3R2 N3 +#define KEY_LH_C2R2 N4 +#define KEY_LH_C1R2 N5 +#define KEY_RH_C1R2 N6 +#define KEY_RH_C2R2 N7 +#define KEY_RH_C3R2 N8 +#define KEY_RH_C4R2 N9 +#define KEY_RH_C5R2 N0 +#define KEY_RH_C6R2 BSLH +#define KEY_LH_C6R3 GRAVE +#define KEY_LH_C5R3 B +#define KEY_LH_C4R3 Y +#define KEY_LH_C3R3 O +#define KEY_LH_C2R3 U +#define KEY_LH_C1R3 SQT +#define KEY_RH_C1R3 SEMI +#define KEY_RH_C2R3 L +#define KEY_RH_C3R3 D +#define KEY_RH_C4R3 W +#define KEY_RH_C5R3 V +#define KEY_RH_C6R3 Z +#define KEY_LH_C6R4 0 +#define KEY_LH_C5R4 C +#define KEY_LH_C4R4 I +#define KEY_LH_C3R4 E +#define KEY_LH_C2R4 A +#define KEY_LH_C1R4 COMMA +#define KEY_RH_C1R4 DOT +#define KEY_RH_C2R4 H +#define KEY_RH_C3R4 T +#define KEY_RH_C4R4 S +#define KEY_RH_C5R4 N +#define KEY_RH_C6R4 Q +#define KEY_LH_C6R5 LSHFT +#define KEY_LH_C5R5 G +#define KEY_LH_C4R5 X +#define KEY_LH_C3R5 J +#define KEY_LH_C2R5 K +#define KEY_LH_C1R5 MINUS +#define KEY_LH_T1 ESC +#define KEY_LH_T2 UP +#define KEY_LH_T3 DOWN +#define KEY_RH_T3 LEFT +#define KEY_RH_T2 RIGHT +#define KEY_RH_T1 ENTER +#define KEY_RH_C1R5 FSLH +#define KEY_RH_C2R5 R +#define KEY_RH_C3R5 M +#define KEY_RH_C4R5 F +#define KEY_RH_C5R5 P +#define KEY_RH_C6R5 RSHFT +#define KEY_LH_C6R6 0 +#define KEY_LH_C5R6 HOME +#define KEY_LH_C4R6 PG_UP +#define KEY_LH_C3R6 PG_DN +#define KEY_LH_C2R6 END +#define KEY_LH_T4 BACKSPACE +#define KEY_LH_T5 DELETE +#define KEY_LH_T6 LSFT +#define KEY_RH_T6 LSFT +#define KEY_RH_T5 TAB +#define KEY_RH_T4 SPACE +#define KEY_RH_C2R6 LPAR +#define KEY_RH_C3R6 LBKT +#define KEY_RH_C4R6 RBKT +#define KEY_RH_C5R6 RPAR +#define KEY_RH_C6R6 0 +#endif +#if defined(LAYER_Engram) && LAYER_Engram == 0 +#define KEY_LH_C6R1 F1 +#define KEY_LH_C5R1 F2 +#define KEY_LH_C4R1 F3 +#define KEY_LH_C3R1 F4 +#define KEY_LH_C2R1 F5 +#define KEY_RH_C2R1 F6 +#define KEY_RH_C3R1 F7 +#define KEY_RH_C4R1 F8 +#define KEY_RH_C5R1 F9 +#define KEY_RH_C6R1 F10 +#define KEY_LH_C6R2 LBKT +#define KEY_LH_C5R2 N1 +#define KEY_LH_C4R2 N2 +#define KEY_LH_C3R2 N3 +#define KEY_LH_C2R2 N4 +#define KEY_LH_C1R2 N5 +#define KEY_RH_C1R2 N6 +#define KEY_RH_C2R2 N7 +#define KEY_RH_C3R2 N8 +#define KEY_RH_C4R2 N9 +#define KEY_RH_C5R2 N0 +#define KEY_RH_C6R2 RBKT +#define KEY_LH_C6R3 AT +#define KEY_LH_C5R3 B +#define KEY_LH_C4R3 Y +#define KEY_LH_C3R3 O +#define KEY_LH_C2R3 U +#define KEY_LH_C1R3 SQT +#define KEY_RH_C1R3 DQT +#define KEY_RH_C2R3 L +#define KEY_RH_C3R3 D +#define KEY_RH_C4R3 W +#define KEY_RH_C5R3 V +#define KEY_RH_C6R3 Z +#define KEY_LH_C6R4 0 +#define KEY_LH_C5R4 C +#define KEY_LH_C4R4 I +#define KEY_LH_C3R4 E +#define KEY_LH_C2R4 A +#define KEY_LH_C1R4 COMMA +#define KEY_RH_C1R4 DOT +#define KEY_RH_C2R4 H +#define KEY_RH_C3R4 T +#define KEY_RH_C4R4 S +#define KEY_RH_C5R4 N +#define KEY_RH_C6R4 Q +#define KEY_LH_C6R5 LSHFT +#define KEY_LH_C5R5 G +#define KEY_LH_C4R5 X +#define KEY_LH_C3R5 J +#define KEY_LH_C2R5 K +#define KEY_LH_C1R5 MINUS +#define KEY_LH_T1 ESC +#define KEY_LH_T2 UP +#define KEY_LH_T3 DOWN +#define KEY_RH_T3 LEFT +#define KEY_RH_T2 RIGHT +#define KEY_RH_T1 ENTER +#define KEY_RH_C1R5 QMARK +#define KEY_RH_C2R5 R +#define KEY_RH_C3R5 M +#define KEY_RH_C4R5 F +#define KEY_RH_C5R5 P +#define KEY_RH_C6R5 RSHFT +#define KEY_LH_C6R6 0 +#define KEY_LH_C5R6 HOME +#define KEY_LH_C4R6 PG_UP +#define KEY_LH_C3R6 PG_DN +#define KEY_LH_C2R6 END +#define KEY_LH_T4 BACKSPACE +#define KEY_LH_T5 DELETE +#define KEY_LH_T6 LSFT +#define KEY_RH_T6 LSFT +#define KEY_RH_T5 TAB +#define KEY_RH_T4 SPACE +#define KEY_RH_C2R6 LPAR +#define KEY_RH_C3R6 HASH +#define KEY_RH_C4R6 FSLH +#define KEY_RH_C5R6 RPAR +#define KEY_RH_C6R6 0 +#endif +#if defined(LAYER_Dvorak) && LAYER_Dvorak == 0 +#define KEY_LH_C6R1 F1 +#define KEY_LH_C5R1 F2 +#define KEY_LH_C4R1 F3 +#define KEY_LH_C3R1 F4 +#define KEY_LH_C2R1 F5 +#define KEY_RH_C2R1 F6 +#define KEY_RH_C3R1 F7 +#define KEY_RH_C4R1 F8 +#define KEY_RH_C5R1 F9 +#define KEY_RH_C6R1 F10 +#define KEY_LH_C6R2 EQUAL +#define KEY_LH_C5R2 N1 +#define KEY_LH_C4R2 N2 +#define KEY_LH_C3R2 N3 +#define KEY_LH_C2R2 N4 +#define KEY_LH_C1R2 N5 +#define KEY_RH_C1R2 N6 +#define KEY_RH_C2R2 N7 +#define KEY_RH_C3R2 N8 +#define KEY_RH_C4R2 N9 +#define KEY_RH_C5R2 N0 +#define KEY_RH_C6R2 BSLH +#define KEY_LH_C6R3 GRAVE +#define KEY_LH_C5R3 SQT +#define KEY_LH_C4R3 COMMA +#define KEY_LH_C3R3 DOT +#define KEY_LH_C2R3 P +#define KEY_LH_C1R3 Y +#define KEY_RH_C1R3 F +#define KEY_RH_C2R3 G +#define KEY_RH_C3R3 C +#define KEY_RH_C4R3 R +#define KEY_RH_C5R3 L +#define KEY_RH_C6R3 SLASH +#define KEY_LH_C6R4 0 +#define KEY_LH_C5R4 A +#define KEY_LH_C4R4 O +#define KEY_LH_C3R4 E +#define KEY_LH_C2R4 U +#define KEY_LH_C1R4 I +#define KEY_RH_C1R4 D +#define KEY_RH_C2R4 H +#define KEY_RH_C3R4 T +#define KEY_RH_C4R4 N +#define KEY_RH_C5R4 S +#define KEY_RH_C6R4 MINUS +#define KEY_LH_C6R5 LSHFT +#define KEY_LH_C5R5 SEMI +#define KEY_LH_C4R5 Q +#define KEY_LH_C3R5 J +#define KEY_LH_C2R5 K +#define KEY_LH_C1R5 X +#define KEY_LH_T1 ESC +#define KEY_LH_T2 UP +#define KEY_LH_T3 DOWN +#define KEY_RH_T3 LEFT +#define KEY_RH_T2 RIGHT +#define KEY_RH_T1 ENTER +#define KEY_RH_C1R5 B +#define KEY_RH_C2R5 M +#define KEY_RH_C3R5 W +#define KEY_RH_C4R5 V +#define KEY_RH_C5R5 Z +#define KEY_RH_C6R5 RSHFT +#define KEY_LH_C6R6 0 +#define KEY_LH_C5R6 HOME +#define KEY_LH_C4R6 PG_UP +#define KEY_LH_C3R6 PG_DN +#define KEY_LH_C2R6 END +#define KEY_LH_T4 BACKSPACE +#define KEY_LH_T5 DELETE +#define KEY_LH_T6 LSFT +#define KEY_RH_T6 LSFT +#define KEY_RH_T5 TAB +#define KEY_RH_T4 SPACE +#define KEY_RH_C2R6 LPAR +#define KEY_RH_C3R6 LBKT +#define KEY_RH_C4R6 RBKT +#define KEY_RH_C5R6 RPAR +#define KEY_RH_C6R6 0 +#endif +#if defined(LAYER_ColemakDHm) && LAYER_ColemakDHm == 0 +#define KEY_LH_C6R1 F1 +#define KEY_LH_C5R1 F2 +#define KEY_LH_C4R1 F3 +#define KEY_LH_C3R1 F4 +#define KEY_LH_C2R1 F5 +#define KEY_RH_C2R1 F6 +#define KEY_RH_C3R1 F7 +#define KEY_RH_C4R1 F8 +#define KEY_RH_C5R1 F9 +#define KEY_RH_C6R1 F10 +#define KEY_LH_C6R2 EQUAL +#define KEY_LH_C5R2 N1 +#define KEY_LH_C4R2 N2 +#define KEY_LH_C3R2 N3 +#define KEY_LH_C2R2 N4 +#define KEY_LH_C1R2 N5 +#define KEY_RH_C1R2 N6 +#define KEY_RH_C2R2 N7 +#define KEY_RH_C3R2 N8 +#define KEY_RH_C4R2 N9 +#define KEY_RH_C5R2 N0 +#define KEY_RH_C6R2 BSLH +#define KEY_LH_C6R3 GRAVE +#define KEY_LH_C5R3 Q +#define KEY_LH_C4R3 W +#define KEY_LH_C3R3 F +#define KEY_LH_C2R3 P +#define KEY_LH_C1R3 B +#define KEY_RH_C1R3 J +#define KEY_RH_C2R3 L +#define KEY_RH_C3R3 U +#define KEY_RH_C4R3 Y +#define KEY_RH_C5R3 SEMI +#define KEY_RH_C6R3 MINUS +#define KEY_LH_C6R4 0 +#define KEY_LH_C5R4 A +#define KEY_LH_C4R4 R +#define KEY_LH_C3R4 S +#define KEY_LH_C2R4 T +#define KEY_LH_C1R4 G +#define KEY_RH_C1R4 M +#define KEY_RH_C2R4 N +#define KEY_RH_C3R4 E +#define KEY_RH_C4R4 I +#define KEY_RH_C5R4 O +#define KEY_RH_C6R4 SQT +#define KEY_LH_C6R5 LSHFT +#define KEY_LH_C5R5 Z +#define KEY_LH_C4R5 X +#define KEY_LH_C3R5 C +#define KEY_LH_C2R5 D +#define KEY_LH_C1R5 V +#define KEY_LH_T1 ESC +#define KEY_LH_T2 UP +#define KEY_LH_T3 DOWN +#define KEY_RH_T3 LEFT +#define KEY_RH_T2 RIGHT +#define KEY_RH_T1 ENTER +#define KEY_RH_C1R5 K +#define KEY_RH_C2R5 H +#define KEY_RH_C3R5 COMMA +#define KEY_RH_C4R5 DOT +#define KEY_RH_C5R5 FSLH +#define KEY_RH_C6R5 RSHFT +#define KEY_LH_C6R6 0 +#define KEY_LH_C5R6 HOME +#define KEY_LH_C4R6 PG_UP +#define KEY_LH_C3R6 PG_DN +#define KEY_LH_C2R6 END +#define KEY_LH_T4 BACKSPACE +#define KEY_LH_T5 DELETE +#define KEY_LH_T6 LSFT +#define KEY_RH_T6 LSFT +#define KEY_RH_T5 TAB +#define KEY_RH_T4 SPACE +#define KEY_RH_C2R6 LPAR +#define KEY_RH_C3R6 LBKT +#define KEY_RH_C4R6 RBKT +#define KEY_RH_C5R6 RPAR +#define KEY_RH_C6R6 0 +#endif +#if defined(LAYER_Colemak) && LAYER_Colemak == 0 +#define KEY_LH_C6R1 F1 +#define KEY_LH_C5R1 F2 +#define KEY_LH_C4R1 F3 +#define KEY_LH_C3R1 F4 +#define KEY_LH_C2R1 F5 +#define KEY_RH_C2R1 F6 +#define KEY_RH_C3R1 F7 +#define KEY_RH_C4R1 F8 +#define KEY_RH_C5R1 F9 +#define KEY_RH_C6R1 F10 +#define KEY_LH_C6R2 EQUAL +#define KEY_LH_C5R2 N1 +#define KEY_LH_C4R2 N2 +#define KEY_LH_C3R2 N3 +#define KEY_LH_C2R2 N4 +#define KEY_LH_C1R2 N5 +#define KEY_RH_C1R2 N6 +#define KEY_RH_C2R2 N7 +#define KEY_RH_C3R2 N8 +#define KEY_RH_C4R2 N9 +#define KEY_RH_C5R2 N0 +#define KEY_RH_C6R2 BSLH +#define KEY_LH_C6R3 GRAVE +#define KEY_LH_C5R3 Q +#define KEY_LH_C4R3 W +#define KEY_LH_C3R3 F +#define KEY_LH_C2R3 P +#define KEY_LH_C1R3 G +#define KEY_RH_C1R3 J +#define KEY_RH_C2R3 L +#define KEY_RH_C3R3 U +#define KEY_RH_C4R3 Y +#define KEY_RH_C5R3 SEMI +#define KEY_RH_C6R3 MINUS +#define KEY_LH_C6R4 0 +#define KEY_LH_C5R4 A +#define KEY_LH_C4R4 R +#define KEY_LH_C3R4 S +#define KEY_LH_C2R4 T +#define KEY_LH_C1R4 D +#define KEY_RH_C1R4 H +#define KEY_RH_C2R4 N +#define KEY_RH_C3R4 E +#define KEY_RH_C4R4 I +#define KEY_RH_C5R4 O +#define KEY_RH_C6R4 SQT +#define KEY_LH_C6R5 LSHFT +#define KEY_LH_C5R5 Z +#define KEY_LH_C4R5 X +#define KEY_LH_C3R5 C +#define KEY_LH_C2R5 V +#define KEY_LH_C1R5 B +#define KEY_LH_T1 ESC +#define KEY_LH_T2 UP +#define KEY_LH_T3 DOWN +#define KEY_RH_T3 LEFT +#define KEY_RH_T2 RIGHT +#define KEY_RH_T1 ENTER +#define KEY_RH_C1R5 K +#define KEY_RH_C2R5 M +#define KEY_RH_C3R5 COMMA +#define KEY_RH_C4R5 DOT +#define KEY_RH_C5R5 FSLH +#define KEY_RH_C6R5 RSHFT +#define KEY_LH_C6R6 0 +#define KEY_LH_C5R6 HOME +#define KEY_LH_C4R6 PG_UP +#define KEY_LH_C3R6 PG_DN +#define KEY_LH_C2R6 END +#define KEY_LH_T4 BACKSPACE +#define KEY_LH_T5 DELETE +#define KEY_LH_T6 LSFT +#define KEY_RH_T6 LSFT +#define KEY_RH_T5 TAB +#define KEY_RH_T4 SPACE +#define KEY_RH_C2R6 LPAR +#define KEY_RH_C3R6 LBKT +#define KEY_RH_C4R6 RBKT +#define KEY_RH_C5R6 RPAR +#define KEY_RH_C6R6 0 +#endif +#if defined(LAYER_QWERTY) && LAYER_QWERTY == 0 +#define KEY_LH_C6R1 F1 +#define KEY_LH_C5R1 F2 +#define KEY_LH_C4R1 F3 +#define KEY_LH_C3R1 F4 +#define KEY_LH_C2R1 F5 +#define KEY_RH_C2R1 F6 +#define KEY_RH_C3R1 F7 +#define KEY_RH_C4R1 F8 +#define KEY_RH_C5R1 F9 +#define KEY_RH_C6R1 F10 +#define KEY_LH_C6R2 EQUAL +#define KEY_LH_C5R2 N1 +#define KEY_LH_C4R2 N2 +#define KEY_LH_C3R2 N3 +#define KEY_LH_C2R2 N4 +#define KEY_LH_C1R2 N5 +#define KEY_RH_C1R2 N6 +#define KEY_RH_C2R2 N7 +#define KEY_RH_C3R2 N8 +#define KEY_RH_C4R2 N9 +#define KEY_RH_C5R2 N0 +#define KEY_RH_C6R2 BSLH +#define KEY_LH_C6R3 GRAVE +#define KEY_LH_C5R3 Q +#define KEY_LH_C4R3 W +#define KEY_LH_C3R3 E +#define KEY_LH_C2R3 R +#define KEY_LH_C1R3 T +#define KEY_RH_C1R3 Y +#define KEY_RH_C2R3 U +#define KEY_RH_C3R3 I +#define KEY_RH_C4R3 O +#define KEY_RH_C5R3 P +#define KEY_RH_C6R3 MINUS +#define KEY_LH_C6R4 0 +#define KEY_LH_C5R4 A +#define KEY_LH_C4R4 S +#define KEY_LH_C3R4 D +#define KEY_LH_C2R4 F +#define KEY_LH_C1R4 G +#define KEY_RH_C1R4 H +#define KEY_RH_C2R4 J +#define KEY_RH_C3R4 K +#define KEY_RH_C4R4 L +#define KEY_RH_C5R4 SEMI +#define KEY_RH_C6R4 SQT +#define KEY_LH_C6R5 LSHFT +#define KEY_LH_C5R5 Z +#define KEY_LH_C4R5 X +#define KEY_LH_C3R5 C +#define KEY_LH_C2R5 V +#define KEY_LH_C1R5 B +#define KEY_LH_T1 ESC +#define KEY_LH_T2 UP +#define KEY_LH_T3 DOWN +#define KEY_RH_T3 LEFT +#define KEY_RH_T2 RIGHT +#define KEY_RH_T1 ENTER +#define KEY_RH_C1R5 N +#define KEY_RH_C2R5 M +#define KEY_RH_C3R5 COMMA +#define KEY_RH_C4R5 DOT +#define KEY_RH_C5R5 FSLH +#define KEY_RH_C6R5 RSHFT +#define KEY_LH_C6R6 0 +#define KEY_LH_C5R6 HOME +#define KEY_LH_C4R6 PG_UP +#define KEY_LH_C3R6 PG_DN +#define KEY_LH_C2R6 END +#define KEY_LH_T4 BACKSPACE +#define KEY_LH_T5 DELETE +#define KEY_LH_T6 LSFT +#define KEY_RH_T6 LSFT +#define KEY_RH_T5 TAB +#define KEY_RH_T4 SPACE +#define KEY_RH_C2R6 LPAR +#define KEY_RH_C3R6 LBKT +#define KEY_RH_C4R6 RBKT +#define KEY_RH_C5R6 RPAR +#define KEY_RH_C6R6 0 +#endif +#if defined(LAYER_Norman) && LAYER_Norman == 0 +#define KEY_LH_C6R1 F1 +#define KEY_LH_C5R1 F2 +#define KEY_LH_C4R1 F3 +#define KEY_LH_C3R1 F4 +#define KEY_LH_C2R1 F5 +#define KEY_RH_C2R1 F6 +#define KEY_RH_C3R1 F7 +#define KEY_RH_C4R1 F8 +#define KEY_RH_C5R1 F9 +#define KEY_RH_C6R1 F10 +#define KEY_LH_C6R2 EQUAL +#define KEY_LH_C5R2 N1 +#define KEY_LH_C4R2 N2 +#define KEY_LH_C3R2 N3 +#define KEY_LH_C2R2 N4 +#define KEY_LH_C1R2 N5 +#define KEY_RH_C1R2 N6 +#define KEY_RH_C2R2 N7 +#define KEY_RH_C3R2 N8 +#define KEY_RH_C4R2 N9 +#define KEY_RH_C5R2 N0 +#define KEY_RH_C6R2 BSLH +#define KEY_LH_C6R3 GRAVE +#define KEY_LH_C5R3 Q +#define KEY_LH_C4R3 W +#define KEY_LH_C3R3 D +#define KEY_LH_C2R3 F +#define KEY_LH_C1R3 K +#define KEY_RH_C1R3 J +#define KEY_RH_C2R3 U +#define KEY_RH_C3R3 R +#define KEY_RH_C4R3 L +#define KEY_RH_C5R3 SEMI +#define KEY_RH_C6R3 MINUS +#define KEY_LH_C6R4 0 +#define KEY_LH_C5R4 A +#define KEY_LH_C4R4 S +#define KEY_LH_C3R4 E +#define KEY_LH_C2R4 T +#define KEY_LH_C1R4 G +#define KEY_RH_C1R4 Y +#define KEY_RH_C2R4 N +#define KEY_RH_C3R4 I +#define KEY_RH_C4R4 O +#define KEY_RH_C5R4 H +#define KEY_RH_C6R4 SQT +#define KEY_LH_C6R5 LSHFT +#define KEY_LH_C5R5 Z +#define KEY_LH_C4R5 X +#define KEY_LH_C3R5 C +#define KEY_LH_C2R5 V +#define KEY_LH_C1R5 B +#define KEY_LH_T1 ESC +#define KEY_LH_T2 UP +#define KEY_LH_T3 DOWN +#define KEY_RH_T3 LEFT +#define KEY_RH_T2 RIGHT +#define KEY_RH_T1 ENTER +#define KEY_RH_C1R5 P +#define KEY_RH_C2R5 M +#define KEY_RH_C3R5 COMMA +#define KEY_RH_C4R5 DOT +#define KEY_RH_C5R5 FSLH +#define KEY_RH_C6R5 RSHFT +#define KEY_LH_C6R6 0 +#define KEY_LH_C5R6 HOME +#define KEY_LH_C4R6 PG_UP +#define KEY_LH_C3R6 PG_DN +#define KEY_LH_C2R6 END +#define KEY_LH_T4 BACKSPACE +#define KEY_LH_T5 DELETE +#define KEY_LH_T6 LSFT +#define KEY_RH_T6 LSFT +#define KEY_RH_T5 TAB +#define KEY_RH_T4 SPACE +#define KEY_RH_C2R6 LPAR +#define KEY_RH_C3R6 LBKT +#define KEY_RH_C4R6 RBKT +#define KEY_RH_C5R6 RPAR +#define KEY_RH_C6R6 0 +#endif +#if defined(LAYER_Workman) && LAYER_Workman == 0 +#define KEY_LH_C6R1 F1 +#define KEY_LH_C5R1 F2 +#define KEY_LH_C4R1 F3 +#define KEY_LH_C3R1 F4 +#define KEY_LH_C2R1 F5 +#define KEY_RH_C2R1 F6 +#define KEY_RH_C3R1 F7 +#define KEY_RH_C4R1 F8 +#define KEY_RH_C5R1 F9 +#define KEY_RH_C6R1 F10 +#define KEY_LH_C6R2 EQUAL +#define KEY_LH_C5R2 N1 +#define KEY_LH_C4R2 N2 +#define KEY_LH_C3R2 N3 +#define KEY_LH_C2R2 N4 +#define KEY_LH_C1R2 N5 +#define KEY_RH_C1R2 N6 +#define KEY_RH_C2R2 N7 +#define KEY_RH_C3R2 N8 +#define KEY_RH_C4R2 N9 +#define KEY_RH_C5R2 N0 +#define KEY_RH_C6R2 BSLH +#define KEY_LH_C6R3 GRAVE +#define KEY_LH_C5R3 Q +#define KEY_LH_C4R3 D +#define KEY_LH_C3R3 R +#define KEY_LH_C2R3 W +#define KEY_LH_C1R3 B +#define KEY_RH_C1R3 J +#define KEY_RH_C2R3 F +#define KEY_RH_C3R3 U +#define KEY_RH_C4R3 P +#define KEY_RH_C5R3 SEMI +#define KEY_RH_C6R3 MINUS +#define KEY_LH_C6R4 0 +#define KEY_LH_C5R4 A +#define KEY_LH_C4R4 S +#define KEY_LH_C3R4 H +#define KEY_LH_C2R4 T +#define KEY_LH_C1R4 G +#define KEY_RH_C1R4 Y +#define KEY_RH_C2R4 N +#define KEY_RH_C3R4 E +#define KEY_RH_C4R4 O +#define KEY_RH_C5R4 I +#define KEY_RH_C6R4 SQT +#define KEY_LH_C6R5 LSHFT +#define KEY_LH_C5R5 Z +#define KEY_LH_C4R5 X +#define KEY_LH_C3R5 M +#define KEY_LH_C2R5 C +#define KEY_LH_C1R5 V +#define KEY_LH_T1 ESC +#define KEY_LH_T2 UP +#define KEY_LH_T3 DOWN +#define KEY_RH_T3 LEFT +#define KEY_RH_T2 RIGHT +#define KEY_RH_T1 ENTER +#define KEY_RH_C1R5 K +#define KEY_RH_C2R5 L +#define KEY_RH_C3R5 COMMA +#define KEY_RH_C4R5 DOT +#define KEY_RH_C5R5 FSLH +#define KEY_RH_C6R5 RSHFT +#define KEY_LH_C6R6 0 +#define KEY_LH_C5R6 HOME +#define KEY_LH_C4R6 PG_UP +#define KEY_LH_C3R6 PG_DN +#define KEY_LH_C2R6 END +#define KEY_LH_T4 BACKSPACE +#define KEY_LH_T5 DELETE +#define KEY_LH_T6 LSFT +#define KEY_RH_T6 LSFT +#define KEY_RH_T5 TAB +#define KEY_RH_T4 SPACE +#define KEY_RH_C2R6 LPAR +#define KEY_RH_C3R6 LBKT +#define KEY_RH_C4R6 RBKT +#define KEY_RH_C5R6 RPAR +#define KEY_RH_C6R6 0 +#endif +#if defined(LAYER_Halmak) && LAYER_Halmak == 0 +#define KEY_LH_C6R1 F1 +#define KEY_LH_C5R1 F2 +#define KEY_LH_C4R1 F3 +#define KEY_LH_C3R1 F4 +#define KEY_LH_C2R1 F5 +#define KEY_RH_C2R1 F6 +#define KEY_RH_C3R1 F7 +#define KEY_RH_C4R1 F8 +#define KEY_RH_C5R1 F9 +#define KEY_RH_C6R1 F10 +#define KEY_LH_C6R2 EQUAL +#define KEY_LH_C5R2 N1 +#define KEY_LH_C4R2 N2 +#define KEY_LH_C3R2 N3 +#define KEY_LH_C2R2 N4 +#define KEY_LH_C1R2 N5 +#define KEY_RH_C1R2 N6 +#define KEY_RH_C2R2 N7 +#define KEY_RH_C3R2 N8 +#define KEY_RH_C4R2 N9 +#define KEY_RH_C5R2 N0 +#define KEY_RH_C6R2 BSLH +#define KEY_LH_C6R3 GRAVE +#define KEY_LH_C5R3 W +#define KEY_LH_C4R3 L +#define KEY_LH_C3R3 R +#define KEY_LH_C2R3 B +#define KEY_LH_C1R3 Z +#define KEY_RH_C1R3 SEMI +#define KEY_RH_C2R3 Q +#define KEY_RH_C3R3 U +#define KEY_RH_C4R3 D +#define KEY_RH_C5R3 J +#define KEY_RH_C6R3 MINUS +#define KEY_LH_C6R4 0 +#define KEY_LH_C5R4 S +#define KEY_LH_C4R4 H +#define KEY_LH_C3R4 N +#define KEY_LH_C2R4 T +#define KEY_LH_C1R4 COMMA +#define KEY_RH_C1R4 DOT +#define KEY_RH_C2R4 A +#define KEY_RH_C3R4 E +#define KEY_RH_C4R4 O +#define KEY_RH_C5R4 I +#define KEY_RH_C6R4 SQT +#define KEY_LH_C6R5 LSHFT +#define KEY_LH_C5R5 F +#define KEY_LH_C4R5 M +#define KEY_LH_C3R5 V +#define KEY_LH_C2R5 C +#define KEY_LH_C1R5 FSLH +#define KEY_LH_T1 ESC +#define KEY_LH_T2 UP +#define KEY_LH_T3 DOWN +#define KEY_RH_T3 LEFT +#define KEY_RH_T2 RIGHT +#define KEY_RH_T1 ENTER +#define KEY_RH_C1R5 G +#define KEY_RH_C2R5 P +#define KEY_RH_C3R5 X +#define KEY_RH_C4R5 K +#define KEY_RH_C5R5 Y +#define KEY_RH_C6R5 RSHFT +#define KEY_LH_C6R6 0 +#define KEY_LH_C5R6 HOME +#define KEY_LH_C4R6 PG_UP +#define KEY_LH_C3R6 PG_DN +#define KEY_LH_C2R6 END +#define KEY_LH_T4 BACKSPACE +#define KEY_LH_T5 DELETE +#define KEY_LH_T6 LSFT +#define KEY_RH_T6 LSFT +#define KEY_RH_T5 TAB +#define KEY_RH_T4 SPACE +#define KEY_RH_C2R6 LPAR +#define KEY_RH_C3R6 LBKT +#define KEY_RH_C4R6 RBKT +#define KEY_RH_C5R6 RPAR +#define KEY_RH_C6R6 0 +#endif + +combos { + compatible = "zmk,combos"; + + // + // COMBO_FIRING_DECAY defines how much time you have left (milliseconds) + // after pressing the first key in a ZMK combo to finish the whole chord. + // + #ifndef COMBO_FIRING_DECAY + #define COMBO_FIRING_DECAY 50 + #endif + #ifdef LAYER_Gaming + combo_gaming_layer_toggle { + timeout-ms = ; + key-positions = ; + bindings = <&tog LAYER_Gaming>; + layers = <0 LAYER_Gaming>; + }; + #endif + #ifdef _A_TAB + combo_alt_tab_switcher { + timeout-ms = ; + key-positions = ; + bindings = <&mod_tab_chord _A_TAB LAYER_Cursor>; + layers = <0 1 2 3 4 5 6 7 8>; + }; + #endif +}; + +behaviors { + + ////////////////////////////////////////////////////////////////////////// + // + // Miryoku layers and home row mods (ported from my QMK endgame) + // - https://sunaku.github.io/home-row-mods.html#porting-to-zmk + // - https://github.com/urob/zmk-config#timeless-homerow-mods + // + ////////////////////////////////////////////////////////////////////////// + + // + // ENFORCE_BILATERAL cancels out single-handed home row mods activation by + // releasing any currently pressed mods and replacing them with plain taps. + // + // NOTE: You may still encounter "flashing mods" where an operating system + // action is triggered by the release of mods, such as LGUI which launches + // the Windows Start Menu and LALT which opens the Microsoft Office Ribbon. + // + //#define ENFORCE_BILATERAL + + // + // The *_FINGER_MOD specify which modifiers are used by home row mod keys. + // Here, we use Miryoku's "GACS" (Win, Alt, Ctrl, Shift) order by default, + // unless OPERATING_SYSTEM is macOS, in which case Win & Ctrl are swapped. + // + #ifndef PINKY_FINGER_MOD + #if OPERATING_SYSTEM == 'M' + #define PINKY_FINGER_MOD LCTL + #else + #define PINKY_FINGER_MOD LGUI + #endif + #endif + #ifndef RING1_FINGER_MOD + #define RING1_FINGER_MOD LALT + #endif + #ifndef RING2_FINGER_MOD + #define RING2_FINGER_MOD RALT + #endif + #ifndef MIDDY_FINGER_MOD + #if OPERATING_SYSTEM == 'M' + #define MIDDY_FINGER_MOD LGUI + #else + #define MIDDY_FINGER_MOD LCTL + #endif + #endif + #ifndef INDEX_FINGER_MOD + #define INDEX_FINGER_MOD LSFT + #endif + // + // The following settings let you configure mods individually, per finger: + // + #ifndef LEFT_PINKY_MOD + #define LEFT_PINKY_MOD PINKY_FINGER_MOD + #endif + #ifndef RIGHT_PINKY_MOD + #define RIGHT_PINKY_MOD PINKY_FINGER_MOD + #endif + #ifndef LEFT_RING1_MOD + #define LEFT_RING1_MOD RING1_FINGER_MOD + #endif + #ifndef RIGHT_RING1_MOD + #define RIGHT_RING1_MOD RING1_FINGER_MOD + #endif + #ifndef LEFT_RING2_MOD + #define LEFT_RING2_MOD RING2_FINGER_MOD + #endif + #ifndef RIGHT_RING2_MOD + #define RIGHT_RING2_MOD RING2_FINGER_MOD + #endif + #ifndef LEFT_MIDDY_MOD + #define LEFT_MIDDY_MOD MIDDY_FINGER_MOD + #endif + #ifndef RIGHT_MIDDY_MOD + #define RIGHT_MIDDY_MOD MIDDY_FINGER_MOD + #endif + #ifndef LEFT_INDEX_MOD + #define LEFT_INDEX_MOD INDEX_FINGER_MOD + #endif + #ifndef RIGHT_INDEX_MOD + #define RIGHT_INDEX_MOD INDEX_FINGER_MOD + #endif + + // + // HOMEY_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use + // for the pinky, ring, and middle fingers (which are assigned to Super, + // Alt, and Ctrl respectively in the Miryoku system) on home row keys. + // + #ifndef HOMEY_HOLDING_TYPE + #define HOMEY_HOLDING_TYPE "tap-preferred" + #endif + + // + // HOMEY_HOLDING_TIME defines how long you need to hold (milliseconds) + // home row mod keys in order to send their modifiers to the computer + // (i.e. "register" them) for mod-click mouse usage (e.g. Ctrl-Click). + // + #ifndef HOMEY_HOLDING_TIME + #define HOMEY_HOLDING_TIME 240 // TAPPING_TERM + ALLOW_CROSSOVER_AFTER + #endif + + // + // HOMEY_STREAK_DECAY defines how long you need to wait (milliseconds) + // after typing before you can use home row mods again. It prevents + // unintended activation of home row mods when you're actively typing. + // + #ifndef HOMEY_STREAK_DECAY + #define HOMEY_STREAK_DECAY 160 + #endif + + // + // HOMEY_REPEAT_DECAY defines how much time you have left (milliseconds) + // after tapping a key to hold it again in order to make it auto-repeat. + // + #ifndef HOMEY_REPEAT_DECAY + #define HOMEY_REPEAT_DECAY 300 // "tap then hold" for key auto-repeat + #endif + + // + // CHORD_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use + // for chorded home row mods (secondary keypresses in multi-mod chords). + // + #ifndef CHORD_HOLDING_TYPE + #define CHORD_HOLDING_TYPE HOMEY_HOLDING_TYPE + #endif + + // + // CHORD_HOLDING_TIME defines how long you need to hold (milliseconds) + // home row mod keys in order to send their modifiers to the computer + // (i.e. "register" them) for mod-click mouse usage (e.g. Ctrl-Click). + // This is specifically for secondary keypresses in multi-mod chords. + // + #ifndef CHORD_HOLDING_TIME + #define CHORD_HOLDING_TIME 150 + #endif + + // + // CHORD_STREAK_DECAY defines how long you need to wait (milliseconds) + // after typing before you can use home row mods again. It prevents + // unintended activation of home row mods when you're actively typing + // This is specifically for secondary keypresses in multi-mod chords. + // + #ifndef CHORD_STREAK_DECAY + #define CHORD_STREAK_DECAY HOMEY_STREAK_DECAY + #endif + + // + // CHORD_REPEAT_DECAY defines how much time you have left (milliseconds) + // after tapping a key to hold it again in order to make it auto-repeat. + // This is specifically for secondary keypresses in multi-mod chords. + // + #ifndef CHORD_REPEAT_DECAY + #define CHORD_REPEAT_DECAY HOMEY_REPEAT_DECAY + #endif + + // + // INDEX_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use + // for index fingers (which Miryoku assigns to Shift) on home row keys. + // + // NOTE: The "tap-preferred" flavor of ZMK hold-tap for index finger keys + // allows faster activation of the Shift modifier (without having to wait + // for the modified key to be released as the "balanced" flavor requires). + // Typing streaks and the `hold-trigger-on-release` setting are disabled + // for the index fingers so as not to hinder their speed and dexterity. + // + #ifndef INDEX_HOLDING_TYPE + #define INDEX_HOLDING_TYPE "tap-preferred" + #endif + + // + // INDEX_HOLDING_TIME defines how long you need to hold (milliseconds) + // index finger keys in order to send their modifiers to the computer + // (i.e. "register" them) for mod-click mouse usage (e.g. Shift-Click). + // + #ifndef INDEX_HOLDING_TIME + #define INDEX_HOLDING_TIME 180 + #endif + + // + // INDEX_STREAK_DECAY defines how long you need to wait (milliseconds) + // after typing before you can use home row mods again. It prevents + // unintended activation of home row mods when you're actively typing. + // + #ifndef INDEX_STREAK_DECAY + #define INDEX_STREAK_DECAY 100 + #endif + + // + // INDEX_REPEAT_DECAY defines how much time you have left (milliseconds) + // after tapping a key to hold it again in order to make it auto-repeat. + // + #ifndef INDEX_REPEAT_DECAY + #define INDEX_REPEAT_DECAY 300 // "tap then hold" for key auto-repeat + #endif + + // + // PLAIN_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use + // for index fingers (which Miryoku assigns to Shift) on home row keys. + // + // NOTE: The "tap-preferred" flavor of ZMK hold-tap for index finger keys + // allows faster activation of the Shift modifier (without having to wait + // for the modified key to be released as the "balanced" flavor requires). + // Typing streaks and the `hold-trigger-on-release` setting are disabled + // for the index fingers so as not to hinder their speed and dexterity. + // + #ifndef PLAIN_HOLDING_TYPE + #define PLAIN_HOLDING_TYPE HOMEY_HOLDING_TYPE + #endif + + // + // PLAIN_HOLDING_TIME defines how long you need to hold (milliseconds) + // index finger keys in order to send their modifiers to the computer + // (i.e. "register" them) for mod-click mouse usage (e.g. Shift-Click). + // + #ifndef PLAIN_HOLDING_TIME + #define PLAIN_HOLDING_TIME HOMEY_HOLDING_TIME + #endif + + // + // PLAIN_STREAK_DECAY defines how long you need to wait (milliseconds) + // after typing before you can use home row mods again. It prevents + // unintended activation of home row mods when you're actively typing. + // + #ifndef PLAIN_STREAK_DECAY + #define PLAIN_STREAK_DECAY HOMEY_STREAK_DECAY + #endif + + // + // PLAIN_REPEAT_DECAY defines how much time you have left (milliseconds) + // after tapping a key to hold it again in order to make it auto-repeat. + // + #ifndef PLAIN_REPEAT_DECAY + #define PLAIN_REPEAT_DECAY 300 // "tap then hold" for key auto-repeat + #endif + + // + // THUMB_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use + // for the thumbs (which are assigned to 6 layers in the Miryoku system). + // + // NOTE: The "balanced" flavor of ZMK hold-tap provides instant modifier + // activation for the symbol layer (if the tapped symbol key is released + // while the thumb layer key is still held down) for quicker programming. + // + #ifndef THUMB_HOLDING_TYPE + #define THUMB_HOLDING_TYPE "balanced" + #endif + + // + // THUMB_HOLDING_TIME defines how long you need to hold (milliseconds) + // a thumb key to activate a layer. Shorter holds are treated as taps. + // + #ifndef THUMB_HOLDING_TIME + #define THUMB_HOLDING_TIME 200 + #endif + + // + // THUMB_REPEAT_DECAY defines how much time you have left (milliseconds) + // after tapping a key to hold it again in order to make it auto-repeat. + // + #ifndef THUMB_REPEAT_DECAY + #define THUMB_REPEAT_DECAY 300 // "tap then hold" for key auto-repeat + #endif + + // + // SPACE_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use + // for spacebar (assigned to the right thumb's home position by default). + // + // NOTE: The "balanced" flavor of ZMK hold-tap provides instant modifier + // activation for the symbol layer (if the tapped symbol key is released + // while the thumb layer key is still held down) for quicker programming. + // + #ifndef SPACE_HOLDING_TYPE + #define SPACE_HOLDING_TYPE THUMB_HOLDING_TYPE + #endif + + // + // SPACE_HOLDING_TIME defines how long you need to hold (milliseconds) + // the space thumb key to activate. Shorter holds are treated as taps. + // + #ifndef SPACE_HOLDING_TIME + #define SPACE_HOLDING_TIME THUMB_HOLDING_TIME + #endif + + // + // SPACE_REPEAT_DECAY defines how much time you have left (milliseconds) + // after tapping a key to hold it again in order to make it auto-repeat. + // + #ifndef SPACE_REPEAT_DECAY + #define SPACE_REPEAT_DECAY 150 + #endif + + // + // Glove80 key positions index for positional hold-tap + // - https://discord.com/channels/877392805654306816/937645688244826154/1066713913351221248 + // - https://media.discordapp.net/attachments/937645688244826154/1066713913133121556/image.png + // + // |------------------------|------------------------| + // | LEFT_HAND_KEYS | RIGHT_HAND_KEYS | + // | | | + // | 0 1 2 3 4 | 5 6 7 8 9 | + // | 10 11 12 13 14 15 | 16 17 18 19 20 21 | + // | 22 23 24 25 26 27 | 28 29 30 31 32 33 | + // | 34 35 36 37 38 39 | 40 41 42 43 44 45 | + // | 46 47 48 49 50 51 | 58 59 60 61 62 63 | + // | 64 65 66 67 68 | 75 76 77 78 79 | + // | 69 52 | 57 74 | + // | 70 53 | 56 73 | + // | 71 54 | 55 72 | + // |------------------------|------------------------| + // + #define LEFT_HAND_KEYS \ + 0 1 2 3 4 \ + 10 11 12 13 14 15 \ + 22 23 24 25 26 27 \ + 34 35 36 37 38 39 \ + 46 47 48 49 50 51 \ + 64 65 66 67 68 + #define RIGHT_HAND_KEYS \ + 5 6 7 8 9 \ + 16 17 18 19 20 21 \ + 28 29 30 31 32 33 \ + 40 41 42 43 44 45 \ + 58 59 60 61 62 63 \ + 75 76 77 78 79 + #define THUMB_KEYS \ + 69 52 57 74 \ + 70 53 56 73 \ + 71 54 55 72 + + #define LEFT_PINKY_KEY KEY_LH_C5R4 + #define LEFT_RING1_KEY KEY_LH_C4R4 + #define LEFT_RING2_KEY KEY_LH_C4R3 + #define LEFT_MIDDY_KEY KEY_LH_C3R4 + #define LEFT_INDEX_KEY KEY_LH_C2R4 + #define LEFT_PLAIN_KEY KEY_LH_C1R4 + + #define RIGHT_PINKY_KEY KEY_RH_C5R4 + #define RIGHT_RING1_KEY KEY_RH_C4R4 + #define RIGHT_RING2_KEY KEY_RH_C4R3 + #define RIGHT_MIDDY_KEY KEY_RH_C3R4 + #define RIGHT_INDEX_KEY KEY_RH_C2R4 + #define RIGHT_PLAIN_KEY KEY_RH_C1R4 + #if defined(LAYER_Engram) && LAYER_Engram == 0 + #define LeftPlainKey engram_COMMA + #define RightPlainKey engram_DOT + #else + #define LeftPlainKey kp LEFT_PLAIN_KEY + #define RightPlainKey kp RIGHT_PLAIN_KEY + #endif + + // + // Home row mods with bilateral combinations support + // +#ifndef PINKY_HOLDING_TYPE +#define PINKY_HOLDING_TYPE HOMEY_HOLDING_TYPE +#endif +#ifndef PINKY_CHORD_HOLDING_TYPE +#define PINKY_CHORD_HOLDING_TYPE CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_PINKY_CHORD_HOLDING_TYPE +#define LEFT_PINKY_CHORD_HOLDING_TYPE PINKY_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_PINKY_CHORD_HOLDING_TYPE +#define RIGHT_PINKY_CHORD_HOLDING_TYPE PINKY_CHORD_HOLDING_TYPE +#endif +#ifndef PINKY_HOLDING_TIME +#define PINKY_HOLDING_TIME HOMEY_HOLDING_TIME +#endif +#ifndef PINKY_CHORD_HOLDING_TIME +#define PINKY_CHORD_HOLDING_TIME CHORD_HOLDING_TIME +#endif +#ifndef LEFT_PINKY_CHORD_HOLDING_TIME +#define LEFT_PINKY_CHORD_HOLDING_TIME PINKY_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_PINKY_CHORD_HOLDING_TIME +#define RIGHT_PINKY_CHORD_HOLDING_TIME PINKY_CHORD_HOLDING_TIME +#endif +#ifndef PINKY_STREAK_DECAY +#define PINKY_STREAK_DECAY HOMEY_STREAK_DECAY +#endif +#ifndef PINKY_CHORD_STREAK_DECAY +#define PINKY_CHORD_STREAK_DECAY CHORD_STREAK_DECAY +#endif +#ifndef LEFT_PINKY_CHORD_STREAK_DECAY +#define LEFT_PINKY_CHORD_STREAK_DECAY PINKY_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_PINKY_CHORD_STREAK_DECAY +#define RIGHT_PINKY_CHORD_STREAK_DECAY PINKY_CHORD_STREAK_DECAY +#endif +#ifndef PINKY_REPEAT_DECAY +#define PINKY_REPEAT_DECAY HOMEY_REPEAT_DECAY +#endif +#ifndef PINKY_CHORD_REPEAT_DECAY +#define PINKY_CHORD_REPEAT_DECAY CHORD_REPEAT_DECAY +#endif +#ifndef LEFT_PINKY_CHORD_REPEAT_DECAY +#define LEFT_PINKY_CHORD_REPEAT_DECAY PINKY_CHORD_REPEAT_DECAY +#endif +#ifndef RIGHT_PINKY_CHORD_REPEAT_DECAY +#define RIGHT_PINKY_CHORD_REPEAT_DECAY PINKY_CHORD_REPEAT_DECAY +#endif +#ifndef RING1_HOLDING_TYPE +#define RING1_HOLDING_TYPE HOMEY_HOLDING_TYPE +#endif +#ifndef RING1_CHORD_HOLDING_TYPE +#define RING1_CHORD_HOLDING_TYPE CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_RING1_CHORD_HOLDING_TYPE +#define LEFT_RING1_CHORD_HOLDING_TYPE RING1_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_RING1_CHORD_HOLDING_TYPE +#define RIGHT_RING1_CHORD_HOLDING_TYPE RING1_CHORD_HOLDING_TYPE +#endif +#ifndef RING1_HOLDING_TIME +#define RING1_HOLDING_TIME HOMEY_HOLDING_TIME +#endif +#ifndef RING1_CHORD_HOLDING_TIME +#define RING1_CHORD_HOLDING_TIME CHORD_HOLDING_TIME +#endif +#ifndef LEFT_RING1_CHORD_HOLDING_TIME +#define LEFT_RING1_CHORD_HOLDING_TIME RING1_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_RING1_CHORD_HOLDING_TIME +#define RIGHT_RING1_CHORD_HOLDING_TIME RING1_CHORD_HOLDING_TIME +#endif +#ifndef RING1_STREAK_DECAY +#define RING1_STREAK_DECAY HOMEY_STREAK_DECAY +#endif +#ifndef RING1_CHORD_STREAK_DECAY +#define RING1_CHORD_STREAK_DECAY CHORD_STREAK_DECAY +#endif +#ifndef LEFT_RING1_CHORD_STREAK_DECAY +#define LEFT_RING1_CHORD_STREAK_DECAY RING1_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_RING1_CHORD_STREAK_DECAY +#define RIGHT_RING1_CHORD_STREAK_DECAY RING1_CHORD_STREAK_DECAY +#endif +#ifndef RING1_REPEAT_DECAY +#define RING1_REPEAT_DECAY HOMEY_REPEAT_DECAY +#endif +#ifndef RING1_CHORD_REPEAT_DECAY +#define RING1_CHORD_REPEAT_DECAY CHORD_REPEAT_DECAY +#endif +#ifndef LEFT_RING1_CHORD_REPEAT_DECAY +#define LEFT_RING1_CHORD_REPEAT_DECAY RING1_CHORD_REPEAT_DECAY +#endif +#ifndef RIGHT_RING1_CHORD_REPEAT_DECAY +#define RIGHT_RING1_CHORD_REPEAT_DECAY RING1_CHORD_REPEAT_DECAY +#endif +#ifndef RING2_HOLDING_TYPE +#define RING2_HOLDING_TYPE HOMEY_HOLDING_TYPE +#endif +#ifndef RING2_CHORD_HOLDING_TYPE +#define RING2_CHORD_HOLDING_TYPE CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_RING2_CHORD_HOLDING_TYPE +#define LEFT_RING2_CHORD_HOLDING_TYPE RING2_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_RING2_CHORD_HOLDING_TYPE +#define RIGHT_RING2_CHORD_HOLDING_TYPE RING2_CHORD_HOLDING_TYPE +#endif +#ifndef RING2_HOLDING_TIME +#define RING2_HOLDING_TIME HOMEY_HOLDING_TIME +#endif +#ifndef RING2_CHORD_HOLDING_TIME +#define RING2_CHORD_HOLDING_TIME CHORD_HOLDING_TIME +#endif +#ifndef LEFT_RING2_CHORD_HOLDING_TIME +#define LEFT_RING2_CHORD_HOLDING_TIME RING2_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_RING2_CHORD_HOLDING_TIME +#define RIGHT_RING2_CHORD_HOLDING_TIME RING2_CHORD_HOLDING_TIME +#endif +#ifndef RING2_STREAK_DECAY +#define RING2_STREAK_DECAY HOMEY_STREAK_DECAY +#endif +#ifndef RING2_CHORD_STREAK_DECAY +#define RING2_CHORD_STREAK_DECAY CHORD_STREAK_DECAY +#endif +#ifndef LEFT_RING2_CHORD_STREAK_DECAY +#define LEFT_RING2_CHORD_STREAK_DECAY RING2_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_RING2_CHORD_STREAK_DECAY +#define RIGHT_RING2_CHORD_STREAK_DECAY RING2_CHORD_STREAK_DECAY +#endif +#ifndef RING2_REPEAT_DECAY +#define RING2_REPEAT_DECAY HOMEY_REPEAT_DECAY +#endif +#ifndef RING2_CHORD_REPEAT_DECAY +#define RING2_CHORD_REPEAT_DECAY CHORD_REPEAT_DECAY +#endif +#ifndef LEFT_RING2_CHORD_REPEAT_DECAY +#define LEFT_RING2_CHORD_REPEAT_DECAY RING2_CHORD_REPEAT_DECAY +#endif +#ifndef RIGHT_RING2_CHORD_REPEAT_DECAY +#define RIGHT_RING2_CHORD_REPEAT_DECAY RING2_CHORD_REPEAT_DECAY +#endif +#ifndef MIDDY_HOLDING_TYPE +#define MIDDY_HOLDING_TYPE HOMEY_HOLDING_TYPE +#endif +#ifndef MIDDY_CHORD_HOLDING_TYPE +#define MIDDY_CHORD_HOLDING_TYPE CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_MIDDY_CHORD_HOLDING_TYPE +#define LEFT_MIDDY_CHORD_HOLDING_TYPE MIDDY_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_MIDDY_CHORD_HOLDING_TYPE +#define RIGHT_MIDDY_CHORD_HOLDING_TYPE MIDDY_CHORD_HOLDING_TYPE +#endif +#ifndef MIDDY_HOLDING_TIME +#define MIDDY_HOLDING_TIME HOMEY_HOLDING_TIME +#endif +#ifndef MIDDY_CHORD_HOLDING_TIME +#define MIDDY_CHORD_HOLDING_TIME CHORD_HOLDING_TIME +#endif +#ifndef LEFT_MIDDY_CHORD_HOLDING_TIME +#define LEFT_MIDDY_CHORD_HOLDING_TIME MIDDY_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_MIDDY_CHORD_HOLDING_TIME +#define RIGHT_MIDDY_CHORD_HOLDING_TIME MIDDY_CHORD_HOLDING_TIME +#endif +#ifndef MIDDY_STREAK_DECAY +#define MIDDY_STREAK_DECAY HOMEY_STREAK_DECAY +#endif +#ifndef MIDDY_CHORD_STREAK_DECAY +#define MIDDY_CHORD_STREAK_DECAY CHORD_STREAK_DECAY +#endif +#ifndef LEFT_MIDDY_CHORD_STREAK_DECAY +#define LEFT_MIDDY_CHORD_STREAK_DECAY MIDDY_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_MIDDY_CHORD_STREAK_DECAY +#define RIGHT_MIDDY_CHORD_STREAK_DECAY MIDDY_CHORD_STREAK_DECAY +#endif +#ifndef MIDDY_REPEAT_DECAY +#define MIDDY_REPEAT_DECAY HOMEY_REPEAT_DECAY +#endif +#ifndef MIDDY_CHORD_REPEAT_DECAY +#define MIDDY_CHORD_REPEAT_DECAY CHORD_REPEAT_DECAY +#endif +#ifndef LEFT_MIDDY_CHORD_REPEAT_DECAY +#define LEFT_MIDDY_CHORD_REPEAT_DECAY MIDDY_CHORD_REPEAT_DECAY +#endif +#ifndef RIGHT_MIDDY_CHORD_REPEAT_DECAY +#define RIGHT_MIDDY_CHORD_REPEAT_DECAY MIDDY_CHORD_REPEAT_DECAY +#endif +#ifndef INDEX_HOLDING_TYPE +#define INDEX_HOLDING_TYPE HOMEY_HOLDING_TYPE +#endif +#ifndef INDEX_CHORD_HOLDING_TYPE +#define INDEX_CHORD_HOLDING_TYPE CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_INDEX_CHORD_HOLDING_TYPE +#define LEFT_INDEX_CHORD_HOLDING_TYPE INDEX_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_INDEX_CHORD_HOLDING_TYPE +#define RIGHT_INDEX_CHORD_HOLDING_TYPE INDEX_CHORD_HOLDING_TYPE +#endif +#ifndef INDEX_HOLDING_TIME +#define INDEX_HOLDING_TIME HOMEY_HOLDING_TIME +#endif +#ifndef INDEX_CHORD_HOLDING_TIME +#define INDEX_CHORD_HOLDING_TIME CHORD_HOLDING_TIME +#endif +#ifndef LEFT_INDEX_CHORD_HOLDING_TIME +#define LEFT_INDEX_CHORD_HOLDING_TIME INDEX_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_INDEX_CHORD_HOLDING_TIME +#define RIGHT_INDEX_CHORD_HOLDING_TIME INDEX_CHORD_HOLDING_TIME +#endif +#ifndef INDEX_STREAK_DECAY +#define INDEX_STREAK_DECAY HOMEY_STREAK_DECAY +#endif +#ifndef INDEX_CHORD_STREAK_DECAY +#define INDEX_CHORD_STREAK_DECAY CHORD_STREAK_DECAY +#endif +#ifndef LEFT_INDEX_CHORD_STREAK_DECAY +#define LEFT_INDEX_CHORD_STREAK_DECAY INDEX_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_INDEX_CHORD_STREAK_DECAY +#define RIGHT_INDEX_CHORD_STREAK_DECAY INDEX_CHORD_STREAK_DECAY +#endif +#ifndef INDEX_REPEAT_DECAY +#define INDEX_REPEAT_DECAY HOMEY_REPEAT_DECAY +#endif +#ifndef INDEX_CHORD_REPEAT_DECAY +#define INDEX_CHORD_REPEAT_DECAY CHORD_REPEAT_DECAY +#endif +#ifndef LEFT_INDEX_CHORD_REPEAT_DECAY +#define LEFT_INDEX_CHORD_REPEAT_DECAY INDEX_CHORD_REPEAT_DECAY +#endif +#ifndef RIGHT_INDEX_CHORD_REPEAT_DECAY +#define RIGHT_INDEX_CHORD_REPEAT_DECAY INDEX_CHORD_REPEAT_DECAY +#endif +#ifndef LEFT_PINKY_HOLDING_TYPE +#define LEFT_PINKY_HOLDING_TYPE PINKY_HOLDING_TYPE +#endif +#ifndef LEFT_PINKY_HOLDING_TIME +#define LEFT_PINKY_HOLDING_TIME PINKY_HOLDING_TIME +#endif +#ifndef LEFT_PINKY_STREAK_DECAY +#define LEFT_PINKY_STREAK_DECAY PINKY_STREAK_DECAY +#endif +#ifndef LEFT_PINKY_REPEAT_DECAY +#define LEFT_PINKY_REPEAT_DECAY PINKY_REPEAT_DECAY +#endif + left_pinky: homey_left_pinky { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_pinky_bilateral: homey_left_pinky_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&left_pinky_hold>, <&kp>; + }; + left_pinky_hold: homey_left_pinky_hold { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftPinky + , <¯o_press &mo LAYER_LeftPinky> + #endif + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftPinky + , <¯o_release &mo LAYER_LeftPinky> + #endif + ; + }; + left_pinky_tap: homey_left_pinky_tap { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_release + &kp LSFT &kp RSFT + &kp LALT &kp RALT + &kp LCTL &kp RCTL + &kp LGUI &kp RGUI> + , <¯o_tap &kp LEFT_PINKY_KEY> + , <¯o_param_1to1> + , <¯o_tap &kp MACRO_PLACEHOLDER> + ; + }; + #define LeftPinky(key, layer_index) LeftPinky_unroll(layer_index) (key) + #define LeftPinky_unroll(layer_index) LeftPinky_concat(LeftPinky_layer, layer_index) + #define LeftPinky_concat(prefix, layer_index) prefix ## layer_index + #ifdef ENFORCE_BILATERAL + #define left_pinky_layer0_variant left_pinky_bilateral + #else + #define left_pinky_layer0_variant left_pinky + #endif + #define LeftPinky_layer0(key) left_pinky_layer0_variant LEFT_PINKY_MOD key + #define LeftPinky_layer1(key) left_pinky LEFT_PINKY_MOD key + #define LeftPinky_layer2(key) left_pinky LEFT_PINKY_MOD key + #define LeftPinky_layer3(key) left_pinky LEFT_PINKY_MOD key + #define LeftPinky_layer4(key) left_pinky LEFT_PINKY_MOD key + #define LeftPinky_layer5(key) left_pinky LEFT_PINKY_MOD key + #define LeftPinky_layer6(key) left_pinky LEFT_PINKY_MOD key + #define LeftPinky_layer7(key) left_pinky LEFT_PINKY_MOD key + #define LeftPinky_layer8(key) left_pinky LEFT_PINKY_MOD key +#ifndef RIGHT_PINKY_HOLDING_TYPE +#define RIGHT_PINKY_HOLDING_TYPE PINKY_HOLDING_TYPE +#endif +#ifndef RIGHT_PINKY_HOLDING_TIME +#define RIGHT_PINKY_HOLDING_TIME PINKY_HOLDING_TIME +#endif +#ifndef RIGHT_PINKY_STREAK_DECAY +#define RIGHT_PINKY_STREAK_DECAY PINKY_STREAK_DECAY +#endif +#ifndef RIGHT_PINKY_REPEAT_DECAY +#define RIGHT_PINKY_REPEAT_DECAY PINKY_REPEAT_DECAY +#endif + right_pinky: homey_right_pinky { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_pinky_bilateral: homey_right_pinky_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&right_pinky_hold>, <&kp>; + }; + right_pinky_hold: homey_right_pinky_hold { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightPinky + , <¯o_press &mo LAYER_RightPinky> + #endif + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightPinky + , <¯o_release &mo LAYER_RightPinky> + #endif + ; + }; + right_pinky_tap: homey_right_pinky_tap { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_release + &kp LSFT &kp RSFT + &kp LALT &kp RALT + &kp LCTL &kp RCTL + &kp LGUI &kp RGUI> + , <¯o_tap &kp RIGHT_PINKY_KEY> + , <¯o_param_1to1> + , <¯o_tap &kp MACRO_PLACEHOLDER> + ; + }; + #define RightPinky(key, layer_index) RightPinky_unroll(layer_index) (key) + #define RightPinky_unroll(layer_index) RightPinky_concat(RightPinky_layer, layer_index) + #define RightPinky_concat(prefix, layer_index) prefix ## layer_index + #ifdef ENFORCE_BILATERAL + #define right_pinky_layer0_variant right_pinky_bilateral + #else + #define right_pinky_layer0_variant right_pinky + #endif + #define RightPinky_layer0(key) right_pinky_layer0_variant RIGHT_PINKY_MOD key + #define RightPinky_layer1(key) right_pinky RIGHT_PINKY_MOD key + #define RightPinky_layer2(key) right_pinky RIGHT_PINKY_MOD key + #define RightPinky_layer3(key) right_pinky RIGHT_PINKY_MOD key + #define RightPinky_layer4(key) right_pinky RIGHT_PINKY_MOD key + #define RightPinky_layer5(key) right_pinky RIGHT_PINKY_MOD key + #define RightPinky_layer6(key) right_pinky RIGHT_PINKY_MOD key + #define RightPinky_layer7(key) right_pinky RIGHT_PINKY_MOD key + #define RightPinky_layer8(key) right_pinky RIGHT_PINKY_MOD key +#ifndef LEFT_RING1_HOLDING_TYPE +#define LEFT_RING1_HOLDING_TYPE RING1_HOLDING_TYPE +#endif +#ifndef LEFT_RING1_HOLDING_TIME +#define LEFT_RING1_HOLDING_TIME RING1_HOLDING_TIME +#endif +#ifndef LEFT_RING1_STREAK_DECAY +#define LEFT_RING1_STREAK_DECAY RING1_STREAK_DECAY +#endif +#ifndef LEFT_RING1_REPEAT_DECAY +#define LEFT_RING1_REPEAT_DECAY RING1_REPEAT_DECAY +#endif + left_ring1: homey_left_ring1 { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_ring1_bilateral: homey_left_ring1_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&left_ring1_hold>, <&kp>; + }; + left_ring1_hold: homey_left_ring1_hold { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftRing1 + , <¯o_press &mo LAYER_LeftRing1> + #endif + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftRing1 + , <¯o_release &mo LAYER_LeftRing1> + #endif + ; + }; + left_ring1_tap: homey_left_ring1_tap { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_release + &kp LSFT &kp RSFT + &kp LALT &kp RALT + &kp LCTL &kp RCTL + &kp LGUI &kp RGUI> + , <¯o_tap &kp LEFT_RING1_KEY> + , <¯o_param_1to1> + , <¯o_tap &kp MACRO_PLACEHOLDER> + ; + }; + #define LeftRing1(key, layer_index) LeftRing1_unroll(layer_index) (key) + #define LeftRing1_unroll(layer_index) LeftRing1_concat(LeftRing1_layer, layer_index) + #define LeftRing1_concat(prefix, layer_index) prefix ## layer_index + #ifdef ENFORCE_BILATERAL + #define left_ring1_layer0_variant left_ring1_bilateral + #else + #define left_ring1_layer0_variant left_ring1 + #endif + #define LeftRing1_layer0(key) left_ring1_layer0_variant LEFT_RING1_MOD key + #define LeftRing1_layer1(key) left_ring1 LEFT_RING1_MOD key + #define LeftRing1_layer2(key) left_ring1 LEFT_RING1_MOD key + #define LeftRing1_layer3(key) left_ring1 LEFT_RING1_MOD key + #define LeftRing1_layer4(key) left_ring1 LEFT_RING1_MOD key + #define LeftRing1_layer5(key) left_ring1 LEFT_RING1_MOD key + #define LeftRing1_layer6(key) left_ring1 LEFT_RING1_MOD key + #define LeftRing1_layer7(key) left_ring1 LEFT_RING1_MOD key + #define LeftRing1_layer8(key) left_ring1 LEFT_RING1_MOD key +#ifndef RIGHT_RING1_HOLDING_TYPE +#define RIGHT_RING1_HOLDING_TYPE RING1_HOLDING_TYPE +#endif +#ifndef RIGHT_RING1_HOLDING_TIME +#define RIGHT_RING1_HOLDING_TIME RING1_HOLDING_TIME +#endif +#ifndef RIGHT_RING1_STREAK_DECAY +#define RIGHT_RING1_STREAK_DECAY RING1_STREAK_DECAY +#endif +#ifndef RIGHT_RING1_REPEAT_DECAY +#define RIGHT_RING1_REPEAT_DECAY RING1_REPEAT_DECAY +#endif + right_ring1: homey_right_ring1 { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_ring1_bilateral: homey_right_ring1_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&right_ring1_hold>, <&kp>; + }; + right_ring1_hold: homey_right_ring1_hold { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightRing1 + , <¯o_press &mo LAYER_RightRing1> + #endif + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightRing1 + , <¯o_release &mo LAYER_RightRing1> + #endif + ; + }; + right_ring1_tap: homey_right_ring1_tap { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_release + &kp LSFT &kp RSFT + &kp LALT &kp RALT + &kp LCTL &kp RCTL + &kp LGUI &kp RGUI> + , <¯o_tap &kp RIGHT_RING1_KEY> + , <¯o_param_1to1> + , <¯o_tap &kp MACRO_PLACEHOLDER> + ; + }; + #define RightRing1(key, layer_index) RightRing1_unroll(layer_index) (key) + #define RightRing1_unroll(layer_index) RightRing1_concat(RightRing1_layer, layer_index) + #define RightRing1_concat(prefix, layer_index) prefix ## layer_index + #ifdef ENFORCE_BILATERAL + #define right_ring1_layer0_variant right_ring1_bilateral + #else + #define right_ring1_layer0_variant right_ring1 + #endif + #define RightRing1_layer0(key) right_ring1_layer0_variant RIGHT_RING1_MOD key + #define RightRing1_layer1(key) right_ring1 RIGHT_RING1_MOD key + #define RightRing1_layer2(key) right_ring1 RIGHT_RING1_MOD key + #define RightRing1_layer3(key) right_ring1 RIGHT_RING1_MOD key + #define RightRing1_layer4(key) right_ring1 RIGHT_RING1_MOD key + #define RightRing1_layer5(key) right_ring1 RIGHT_RING1_MOD key + #define RightRing1_layer6(key) right_ring1 RIGHT_RING1_MOD key + #define RightRing1_layer7(key) right_ring1 RIGHT_RING1_MOD key + #define RightRing1_layer8(key) right_ring1 RIGHT_RING1_MOD key +#ifndef LEFT_RING2_HOLDING_TYPE +#define LEFT_RING2_HOLDING_TYPE RING2_HOLDING_TYPE +#endif +#ifndef LEFT_RING2_HOLDING_TIME +#define LEFT_RING2_HOLDING_TIME RING2_HOLDING_TIME +#endif +#ifndef LEFT_RING2_STREAK_DECAY +#define LEFT_RING2_STREAK_DECAY RING2_STREAK_DECAY +#endif +#ifndef LEFT_RING2_REPEAT_DECAY +#define LEFT_RING2_REPEAT_DECAY RING2_REPEAT_DECAY +#endif + left_ring2: homey_left_ring2 { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_ring2_bilateral: homey_left_ring2_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&left_ring2_hold>, <&kp>; + }; + left_ring2_hold: homey_left_ring2_hold { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftRing2 + , <¯o_press &mo LAYER_LeftRing2> + #endif + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftRing2 + , <¯o_release &mo LAYER_LeftRing2> + #endif + ; + }; + left_ring2_tap: homey_left_ring2_tap { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_release + &kp LSFT &kp RSFT + &kp LALT &kp RALT + &kp LCTL &kp RCTL + &kp LGUI &kp RGUI> + , <¯o_tap &kp LEFT_RING2_KEY> + , <¯o_param_1to1> + , <¯o_tap &kp MACRO_PLACEHOLDER> + ; + }; + #define LeftRing2(key, layer_index) LeftRing2_unroll(layer_index) (key) + #define LeftRing2_unroll(layer_index) LeftRing2_concat(LeftRing2_layer, layer_index) + #define LeftRing2_concat(prefix, layer_index) prefix ## layer_index + #ifdef ENFORCE_BILATERAL + #define left_ring2_layer0_variant left_ring2_bilateral + #else + #define left_ring2_layer0_variant left_ring2 + #endif + #define LeftRing2_layer0(key) left_ring2_layer0_variant LEFT_RING2_MOD key + #define LeftRing2_layer1(key) left_ring2 LEFT_RING2_MOD key + #define LeftRing2_layer2(key) left_ring2 LEFT_RING2_MOD key + #define LeftRing2_layer3(key) left_ring2 LEFT_RING2_MOD key + #define LeftRing2_layer4(key) left_ring2 LEFT_RING2_MOD key + #define LeftRing2_layer5(key) left_ring2 LEFT_RING2_MOD key + #define LeftRing2_layer6(key) left_ring2 LEFT_RING2_MOD key + #define LeftRing2_layer7(key) left_ring2 LEFT_RING2_MOD key + #define LeftRing2_layer8(key) left_ring2 LEFT_RING2_MOD key +#ifndef RIGHT_RING2_HOLDING_TYPE +#define RIGHT_RING2_HOLDING_TYPE RING2_HOLDING_TYPE +#endif +#ifndef RIGHT_RING2_HOLDING_TIME +#define RIGHT_RING2_HOLDING_TIME RING2_HOLDING_TIME +#endif +#ifndef RIGHT_RING2_STREAK_DECAY +#define RIGHT_RING2_STREAK_DECAY RING2_STREAK_DECAY +#endif +#ifndef RIGHT_RING2_REPEAT_DECAY +#define RIGHT_RING2_REPEAT_DECAY RING2_REPEAT_DECAY +#endif + right_ring2: homey_right_ring2 { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_ring2_bilateral: homey_right_ring2_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&right_ring2_hold>, <&kp>; + }; + right_ring2_hold: homey_right_ring2_hold { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightRing2 + , <¯o_press &mo LAYER_RightRing2> + #endif + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightRing2 + , <¯o_release &mo LAYER_RightRing2> + #endif + ; + }; + right_ring2_tap: homey_right_ring2_tap { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_release + &kp LSFT &kp RSFT + &kp LALT &kp RALT + &kp LCTL &kp RCTL + &kp LGUI &kp RGUI> + , <¯o_tap &kp RIGHT_RING2_KEY> + , <¯o_param_1to1> + , <¯o_tap &kp MACRO_PLACEHOLDER> + ; + }; + #define RightRing2(key, layer_index) RightRing2_unroll(layer_index) (key) + #define RightRing2_unroll(layer_index) RightRing2_concat(RightRing2_layer, layer_index) + #define RightRing2_concat(prefix, layer_index) prefix ## layer_index + #ifdef ENFORCE_BILATERAL + #define right_ring2_layer0_variant right_ring2_bilateral + #else + #define right_ring2_layer0_variant right_ring2 + #endif + #define RightRing2_layer0(key) right_ring2_layer0_variant RIGHT_RING2_MOD key + #define RightRing2_layer1(key) right_ring2 RIGHT_RING2_MOD key + #define RightRing2_layer2(key) right_ring2 RIGHT_RING2_MOD key + #define RightRing2_layer3(key) right_ring2 RIGHT_RING2_MOD key + #define RightRing2_layer4(key) right_ring2 RIGHT_RING2_MOD key + #define RightRing2_layer5(key) right_ring2 RIGHT_RING2_MOD key + #define RightRing2_layer6(key) right_ring2 RIGHT_RING2_MOD key + #define RightRing2_layer7(key) right_ring2 RIGHT_RING2_MOD key + #define RightRing2_layer8(key) right_ring2 RIGHT_RING2_MOD key +#ifndef LEFT_MIDDY_HOLDING_TYPE +#define LEFT_MIDDY_HOLDING_TYPE MIDDY_HOLDING_TYPE +#endif +#ifndef LEFT_MIDDY_HOLDING_TIME +#define LEFT_MIDDY_HOLDING_TIME MIDDY_HOLDING_TIME +#endif +#ifndef LEFT_MIDDY_STREAK_DECAY +#define LEFT_MIDDY_STREAK_DECAY MIDDY_STREAK_DECAY +#endif +#ifndef LEFT_MIDDY_REPEAT_DECAY +#define LEFT_MIDDY_REPEAT_DECAY MIDDY_REPEAT_DECAY +#endif + left_middy: homey_left_middy { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_middy_bilateral: homey_left_middy_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&left_middy_hold>, <&kp>; + }; + left_middy_hold: homey_left_middy_hold { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftMiddy + , <¯o_press &mo LAYER_LeftMiddy> + #endif + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftMiddy + , <¯o_release &mo LAYER_LeftMiddy> + #endif + ; + }; + left_middy_tap: homey_left_middy_tap { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_release + &kp LSFT &kp RSFT + &kp LALT &kp RALT + &kp LCTL &kp RCTL + &kp LGUI &kp RGUI> + , <¯o_tap &kp LEFT_MIDDY_KEY> + , <¯o_param_1to1> + , <¯o_tap &kp MACRO_PLACEHOLDER> + ; + }; + #define LeftMiddy(key, layer_index) LeftMiddy_unroll(layer_index) (key) + #define LeftMiddy_unroll(layer_index) LeftMiddy_concat(LeftMiddy_layer, layer_index) + #define LeftMiddy_concat(prefix, layer_index) prefix ## layer_index + #ifdef ENFORCE_BILATERAL + #define left_middy_layer0_variant left_middy_bilateral + #else + #define left_middy_layer0_variant left_middy + #endif + #define LeftMiddy_layer0(key) left_middy_layer0_variant LEFT_MIDDY_MOD key + #define LeftMiddy_layer1(key) left_middy LEFT_MIDDY_MOD key + #define LeftMiddy_layer2(key) left_middy LEFT_MIDDY_MOD key + #define LeftMiddy_layer3(key) left_middy LEFT_MIDDY_MOD key + #define LeftMiddy_layer4(key) left_middy LEFT_MIDDY_MOD key + #define LeftMiddy_layer5(key) left_middy LEFT_MIDDY_MOD key + #define LeftMiddy_layer6(key) left_middy LEFT_MIDDY_MOD key + #define LeftMiddy_layer7(key) left_middy LEFT_MIDDY_MOD key + #define LeftMiddy_layer8(key) left_middy LEFT_MIDDY_MOD key +#ifndef RIGHT_MIDDY_HOLDING_TYPE +#define RIGHT_MIDDY_HOLDING_TYPE MIDDY_HOLDING_TYPE +#endif +#ifndef RIGHT_MIDDY_HOLDING_TIME +#define RIGHT_MIDDY_HOLDING_TIME MIDDY_HOLDING_TIME +#endif +#ifndef RIGHT_MIDDY_STREAK_DECAY +#define RIGHT_MIDDY_STREAK_DECAY MIDDY_STREAK_DECAY +#endif +#ifndef RIGHT_MIDDY_REPEAT_DECAY +#define RIGHT_MIDDY_REPEAT_DECAY MIDDY_REPEAT_DECAY +#endif + right_middy: homey_right_middy { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_middy_bilateral: homey_right_middy_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&right_middy_hold>, <&kp>; + }; + right_middy_hold: homey_right_middy_hold { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightMiddy + , <¯o_press &mo LAYER_RightMiddy> + #endif + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightMiddy + , <¯o_release &mo LAYER_RightMiddy> + #endif + ; + }; + right_middy_tap: homey_right_middy_tap { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_release + &kp LSFT &kp RSFT + &kp LALT &kp RALT + &kp LCTL &kp RCTL + &kp LGUI &kp RGUI> + , <¯o_tap &kp RIGHT_MIDDY_KEY> + , <¯o_param_1to1> + , <¯o_tap &kp MACRO_PLACEHOLDER> + ; + }; + #define RightMiddy(key, layer_index) RightMiddy_unroll(layer_index) (key) + #define RightMiddy_unroll(layer_index) RightMiddy_concat(RightMiddy_layer, layer_index) + #define RightMiddy_concat(prefix, layer_index) prefix ## layer_index + #ifdef ENFORCE_BILATERAL + #define right_middy_layer0_variant right_middy_bilateral + #else + #define right_middy_layer0_variant right_middy + #endif + #define RightMiddy_layer0(key) right_middy_layer0_variant RIGHT_MIDDY_MOD key + #define RightMiddy_layer1(key) right_middy RIGHT_MIDDY_MOD key + #define RightMiddy_layer2(key) right_middy RIGHT_MIDDY_MOD key + #define RightMiddy_layer3(key) right_middy RIGHT_MIDDY_MOD key + #define RightMiddy_layer4(key) right_middy RIGHT_MIDDY_MOD key + #define RightMiddy_layer5(key) right_middy RIGHT_MIDDY_MOD key + #define RightMiddy_layer6(key) right_middy RIGHT_MIDDY_MOD key + #define RightMiddy_layer7(key) right_middy RIGHT_MIDDY_MOD key + #define RightMiddy_layer8(key) right_middy RIGHT_MIDDY_MOD key +#ifndef LEFT_INDEX_HOLDING_TYPE +#define LEFT_INDEX_HOLDING_TYPE INDEX_HOLDING_TYPE +#endif +#ifndef LEFT_INDEX_HOLDING_TIME +#define LEFT_INDEX_HOLDING_TIME INDEX_HOLDING_TIME +#endif +#ifndef LEFT_INDEX_STREAK_DECAY +#define LEFT_INDEX_STREAK_DECAY INDEX_STREAK_DECAY +#endif +#ifndef LEFT_INDEX_REPEAT_DECAY +#define LEFT_INDEX_REPEAT_DECAY INDEX_REPEAT_DECAY +#endif + left_index: homey_left_index { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_index_bilateral: homey_left_index_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&left_index_hold>, <&kp>; + }; + left_index_hold: homey_left_index_hold { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftIndex + , <¯o_press &mo LAYER_LeftIndex> + #endif + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftIndex + , <¯o_release &mo LAYER_LeftIndex> + #endif + ; + }; + left_index_tap: homey_left_index_tap { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_release + &kp LSFT &kp RSFT + &kp LALT &kp RALT + &kp LCTL &kp RCTL + &kp LGUI &kp RGUI> + , <¯o_tap &kp LEFT_INDEX_KEY> + , <¯o_param_1to1> + , <¯o_tap &kp MACRO_PLACEHOLDER> + ; + }; + #define LeftIndex(key, layer_index) LeftIndex_unroll(layer_index) (key) + #define LeftIndex_unroll(layer_index) LeftIndex_concat(LeftIndex_layer, layer_index) + #define LeftIndex_concat(prefix, layer_index) prefix ## layer_index + #ifdef ENFORCE_BILATERAL + #define left_index_layer0_variant left_index_bilateral + #else + #define left_index_layer0_variant left_index + #endif + #define LeftIndex_layer0(key) left_index_layer0_variant LEFT_INDEX_MOD key + #define LeftIndex_layer1(key) left_index LEFT_INDEX_MOD key + #define LeftIndex_layer2(key) left_index LEFT_INDEX_MOD key + #define LeftIndex_layer3(key) left_index LEFT_INDEX_MOD key + #define LeftIndex_layer4(key) left_index LEFT_INDEX_MOD key + #define LeftIndex_layer5(key) left_index LEFT_INDEX_MOD key + #define LeftIndex_layer6(key) left_index LEFT_INDEX_MOD key + #define LeftIndex_layer7(key) left_index LEFT_INDEX_MOD key + #define LeftIndex_layer8(key) left_index LEFT_INDEX_MOD key +#ifndef RIGHT_INDEX_HOLDING_TYPE +#define RIGHT_INDEX_HOLDING_TYPE INDEX_HOLDING_TYPE +#endif +#ifndef RIGHT_INDEX_HOLDING_TIME +#define RIGHT_INDEX_HOLDING_TIME INDEX_HOLDING_TIME +#endif +#ifndef RIGHT_INDEX_STREAK_DECAY +#define RIGHT_INDEX_STREAK_DECAY INDEX_STREAK_DECAY +#endif +#ifndef RIGHT_INDEX_REPEAT_DECAY +#define RIGHT_INDEX_REPEAT_DECAY INDEX_REPEAT_DECAY +#endif + right_index: homey_right_index { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_index_bilateral: homey_right_index_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&right_index_hold>, <&kp>; + }; + right_index_hold: homey_right_index_hold { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightIndex + , <¯o_press &mo LAYER_RightIndex> + #endif + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightIndex + , <¯o_release &mo LAYER_RightIndex> + #endif + ; + }; + right_index_tap: homey_right_index_tap { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_release + &kp LSFT &kp RSFT + &kp LALT &kp RALT + &kp LCTL &kp RCTL + &kp LGUI &kp RGUI> + , <¯o_tap &kp RIGHT_INDEX_KEY> + , <¯o_param_1to1> + , <¯o_tap &kp MACRO_PLACEHOLDER> + ; + }; + #define RightIndex(key, layer_index) RightIndex_unroll(layer_index) (key) + #define RightIndex_unroll(layer_index) RightIndex_concat(RightIndex_layer, layer_index) + #define RightIndex_concat(prefix, layer_index) prefix ## layer_index + #ifdef ENFORCE_BILATERAL + #define right_index_layer0_variant right_index_bilateral + #else + #define right_index_layer0_variant right_index + #endif + #define RightIndex_layer0(key) right_index_layer0_variant RIGHT_INDEX_MOD key + #define RightIndex_layer1(key) right_index RIGHT_INDEX_MOD key + #define RightIndex_layer2(key) right_index RIGHT_INDEX_MOD key + #define RightIndex_layer3(key) right_index RIGHT_INDEX_MOD key + #define RightIndex_layer4(key) right_index RIGHT_INDEX_MOD key + #define RightIndex_layer5(key) right_index RIGHT_INDEX_MOD key + #define RightIndex_layer6(key) right_index RIGHT_INDEX_MOD key + #define RightIndex_layer7(key) right_index RIGHT_INDEX_MOD key + #define RightIndex_layer8(key) right_index RIGHT_INDEX_MOD key +#ifndef LEFT_RING1_PINKY_HOLDING_TYPE +#define LEFT_RING1_PINKY_HOLDING_TYPE LEFT_RING1_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_RING1_PINKY_HOLDING_TIME +#define LEFT_RING1_PINKY_HOLDING_TIME LEFT_RING1_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_RING1_PINKY_STREAK_DECAY +#define LEFT_RING1_PINKY_STREAK_DECAY LEFT_RING1_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_RING1_PINKY_REPEAT_DECAY +#define LEFT_RING1_PINKY_REPEAT_DECAY LEFT_RING1_CHORD_REPEAT_DECAY +#endif + left_ring1_pinky: homey_left_ring1_pinky { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_ring1_pinky_bilateral: homey_left_ring1_pinky_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_ring1_tap>; + }; + #define LeftRing1Pinky left_ring1_pinky_bilateral LEFT_PINKY_MOD LEFT_PINKY_KEY +#ifndef LEFT_RING2_PINKY_HOLDING_TYPE +#define LEFT_RING2_PINKY_HOLDING_TYPE LEFT_RING2_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_RING2_PINKY_HOLDING_TIME +#define LEFT_RING2_PINKY_HOLDING_TIME LEFT_RING2_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_RING2_PINKY_STREAK_DECAY +#define LEFT_RING2_PINKY_STREAK_DECAY LEFT_RING2_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_RING2_PINKY_REPEAT_DECAY +#define LEFT_RING2_PINKY_REPEAT_DECAY LEFT_RING2_CHORD_REPEAT_DECAY +#endif + left_ring2_pinky: homey_left_ring2_pinky { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_ring2_pinky_bilateral: homey_left_ring2_pinky_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_ring2_tap>; + }; + #define LeftRing2Pinky left_ring2_pinky_bilateral LEFT_PINKY_MOD LEFT_PINKY_KEY +#ifndef LEFT_MIDDY_PINKY_HOLDING_TYPE +#define LEFT_MIDDY_PINKY_HOLDING_TYPE LEFT_MIDDY_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_MIDDY_PINKY_HOLDING_TIME +#define LEFT_MIDDY_PINKY_HOLDING_TIME LEFT_MIDDY_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_MIDDY_PINKY_STREAK_DECAY +#define LEFT_MIDDY_PINKY_STREAK_DECAY LEFT_MIDDY_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_MIDDY_PINKY_REPEAT_DECAY +#define LEFT_MIDDY_PINKY_REPEAT_DECAY LEFT_MIDDY_CHORD_REPEAT_DECAY +#endif + left_middy_pinky: homey_left_middy_pinky { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_middy_pinky_bilateral: homey_left_middy_pinky_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_middy_tap>; + }; + #define LeftMiddyPinky left_middy_pinky_bilateral LEFT_PINKY_MOD LEFT_PINKY_KEY +#ifndef LEFT_INDEX_PINKY_HOLDING_TYPE +#define LEFT_INDEX_PINKY_HOLDING_TYPE LEFT_INDEX_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_INDEX_PINKY_HOLDING_TIME +#define LEFT_INDEX_PINKY_HOLDING_TIME LEFT_INDEX_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_INDEX_PINKY_STREAK_DECAY +#define LEFT_INDEX_PINKY_STREAK_DECAY LEFT_INDEX_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_INDEX_PINKY_REPEAT_DECAY +#define LEFT_INDEX_PINKY_REPEAT_DECAY LEFT_INDEX_CHORD_REPEAT_DECAY +#endif + left_index_pinky: homey_left_index_pinky { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_index_pinky_bilateral: homey_left_index_pinky_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_index_tap>; + }; + #define LeftIndexPinky left_index_pinky_bilateral LEFT_PINKY_MOD LEFT_PINKY_KEY +#ifndef RIGHT_RING1_PINKY_HOLDING_TYPE +#define RIGHT_RING1_PINKY_HOLDING_TYPE RIGHT_RING1_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_RING1_PINKY_HOLDING_TIME +#define RIGHT_RING1_PINKY_HOLDING_TIME RIGHT_RING1_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_RING1_PINKY_STREAK_DECAY +#define RIGHT_RING1_PINKY_STREAK_DECAY RIGHT_RING1_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_RING1_PINKY_REPEAT_DECAY +#define RIGHT_RING1_PINKY_REPEAT_DECAY RIGHT_RING1_CHORD_REPEAT_DECAY +#endif + right_ring1_pinky: homey_right_ring1_pinky { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_ring1_pinky_bilateral: homey_right_ring1_pinky_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_ring1_tap>; + }; + #define RightRing1Pinky right_ring1_pinky_bilateral RIGHT_PINKY_MOD RIGHT_PINKY_KEY +#ifndef RIGHT_RING2_PINKY_HOLDING_TYPE +#define RIGHT_RING2_PINKY_HOLDING_TYPE RIGHT_RING2_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_RING2_PINKY_HOLDING_TIME +#define RIGHT_RING2_PINKY_HOLDING_TIME RIGHT_RING2_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_RING2_PINKY_STREAK_DECAY +#define RIGHT_RING2_PINKY_STREAK_DECAY RIGHT_RING2_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_RING2_PINKY_REPEAT_DECAY +#define RIGHT_RING2_PINKY_REPEAT_DECAY RIGHT_RING2_CHORD_REPEAT_DECAY +#endif + right_ring2_pinky: homey_right_ring2_pinky { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_ring2_pinky_bilateral: homey_right_ring2_pinky_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_ring2_tap>; + }; + #define RightRing2Pinky right_ring2_pinky_bilateral RIGHT_PINKY_MOD RIGHT_PINKY_KEY +#ifndef RIGHT_MIDDY_PINKY_HOLDING_TYPE +#define RIGHT_MIDDY_PINKY_HOLDING_TYPE RIGHT_MIDDY_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_MIDDY_PINKY_HOLDING_TIME +#define RIGHT_MIDDY_PINKY_HOLDING_TIME RIGHT_MIDDY_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_MIDDY_PINKY_STREAK_DECAY +#define RIGHT_MIDDY_PINKY_STREAK_DECAY RIGHT_MIDDY_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_MIDDY_PINKY_REPEAT_DECAY +#define RIGHT_MIDDY_PINKY_REPEAT_DECAY RIGHT_MIDDY_CHORD_REPEAT_DECAY +#endif + right_middy_pinky: homey_right_middy_pinky { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_middy_pinky_bilateral: homey_right_middy_pinky_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_middy_tap>; + }; + #define RightMiddyPinky right_middy_pinky_bilateral RIGHT_PINKY_MOD RIGHT_PINKY_KEY +#ifndef RIGHT_INDEX_PINKY_HOLDING_TYPE +#define RIGHT_INDEX_PINKY_HOLDING_TYPE RIGHT_INDEX_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_INDEX_PINKY_HOLDING_TIME +#define RIGHT_INDEX_PINKY_HOLDING_TIME RIGHT_INDEX_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_INDEX_PINKY_STREAK_DECAY +#define RIGHT_INDEX_PINKY_STREAK_DECAY RIGHT_INDEX_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_INDEX_PINKY_REPEAT_DECAY +#define RIGHT_INDEX_PINKY_REPEAT_DECAY RIGHT_INDEX_CHORD_REPEAT_DECAY +#endif + right_index_pinky: homey_right_index_pinky { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_index_pinky_bilateral: homey_right_index_pinky_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_index_tap>; + }; + #define RightIndexPinky right_index_pinky_bilateral RIGHT_PINKY_MOD RIGHT_PINKY_KEY +#ifndef LEFT_PINKY_RING1_HOLDING_TYPE +#define LEFT_PINKY_RING1_HOLDING_TYPE LEFT_PINKY_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_PINKY_RING1_HOLDING_TIME +#define LEFT_PINKY_RING1_HOLDING_TIME LEFT_PINKY_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_PINKY_RING1_STREAK_DECAY +#define LEFT_PINKY_RING1_STREAK_DECAY LEFT_PINKY_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_PINKY_RING1_REPEAT_DECAY +#define LEFT_PINKY_RING1_REPEAT_DECAY LEFT_PINKY_CHORD_REPEAT_DECAY +#endif + left_pinky_ring1: homey_left_pinky_ring1 { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_pinky_ring1_bilateral: homey_left_pinky_ring1_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_pinky_tap>; + }; + #define LeftPinkyRing1 left_pinky_ring1_bilateral LEFT_RING1_MOD LEFT_RING1_KEY +#ifndef LEFT_RING2_RING1_HOLDING_TYPE +#define LEFT_RING2_RING1_HOLDING_TYPE LEFT_RING2_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_RING2_RING1_HOLDING_TIME +#define LEFT_RING2_RING1_HOLDING_TIME LEFT_RING2_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_RING2_RING1_STREAK_DECAY +#define LEFT_RING2_RING1_STREAK_DECAY LEFT_RING2_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_RING2_RING1_REPEAT_DECAY +#define LEFT_RING2_RING1_REPEAT_DECAY LEFT_RING2_CHORD_REPEAT_DECAY +#endif + left_ring2_ring1: homey_left_ring2_ring1 { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_ring2_ring1_bilateral: homey_left_ring2_ring1_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_ring2_tap>; + }; + #define LeftRing2Ring1 left_ring2_ring1_bilateral LEFT_RING1_MOD LEFT_RING1_KEY +#ifndef LEFT_MIDDY_RING1_HOLDING_TYPE +#define LEFT_MIDDY_RING1_HOLDING_TYPE LEFT_MIDDY_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_MIDDY_RING1_HOLDING_TIME +#define LEFT_MIDDY_RING1_HOLDING_TIME LEFT_MIDDY_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_MIDDY_RING1_STREAK_DECAY +#define LEFT_MIDDY_RING1_STREAK_DECAY LEFT_MIDDY_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_MIDDY_RING1_REPEAT_DECAY +#define LEFT_MIDDY_RING1_REPEAT_DECAY LEFT_MIDDY_CHORD_REPEAT_DECAY +#endif + left_middy_ring1: homey_left_middy_ring1 { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_middy_ring1_bilateral: homey_left_middy_ring1_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_middy_tap>; + }; + #define LeftMiddyRing1 left_middy_ring1_bilateral LEFT_RING1_MOD LEFT_RING1_KEY +#ifndef LEFT_INDEX_RING1_HOLDING_TYPE +#define LEFT_INDEX_RING1_HOLDING_TYPE LEFT_INDEX_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_INDEX_RING1_HOLDING_TIME +#define LEFT_INDEX_RING1_HOLDING_TIME LEFT_INDEX_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_INDEX_RING1_STREAK_DECAY +#define LEFT_INDEX_RING1_STREAK_DECAY LEFT_INDEX_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_INDEX_RING1_REPEAT_DECAY +#define LEFT_INDEX_RING1_REPEAT_DECAY LEFT_INDEX_CHORD_REPEAT_DECAY +#endif + left_index_ring1: homey_left_index_ring1 { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_index_ring1_bilateral: homey_left_index_ring1_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_index_tap>; + }; + #define LeftIndexRing1 left_index_ring1_bilateral LEFT_RING1_MOD LEFT_RING1_KEY +#ifndef RIGHT_PINKY_RING1_HOLDING_TYPE +#define RIGHT_PINKY_RING1_HOLDING_TYPE RIGHT_PINKY_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_PINKY_RING1_HOLDING_TIME +#define RIGHT_PINKY_RING1_HOLDING_TIME RIGHT_PINKY_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_PINKY_RING1_STREAK_DECAY +#define RIGHT_PINKY_RING1_STREAK_DECAY RIGHT_PINKY_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_PINKY_RING1_REPEAT_DECAY +#define RIGHT_PINKY_RING1_REPEAT_DECAY RIGHT_PINKY_CHORD_REPEAT_DECAY +#endif + right_pinky_ring1: homey_right_pinky_ring1 { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_pinky_ring1_bilateral: homey_right_pinky_ring1_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_pinky_tap>; + }; + #define RightPinkyRing1 right_pinky_ring1_bilateral RIGHT_RING1_MOD RIGHT_RING1_KEY +#ifndef RIGHT_RING2_RING1_HOLDING_TYPE +#define RIGHT_RING2_RING1_HOLDING_TYPE RIGHT_RING2_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_RING2_RING1_HOLDING_TIME +#define RIGHT_RING2_RING1_HOLDING_TIME RIGHT_RING2_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_RING2_RING1_STREAK_DECAY +#define RIGHT_RING2_RING1_STREAK_DECAY RIGHT_RING2_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_RING2_RING1_REPEAT_DECAY +#define RIGHT_RING2_RING1_REPEAT_DECAY RIGHT_RING2_CHORD_REPEAT_DECAY +#endif + right_ring2_ring1: homey_right_ring2_ring1 { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_ring2_ring1_bilateral: homey_right_ring2_ring1_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_ring2_tap>; + }; + #define RightRing2Ring1 right_ring2_ring1_bilateral RIGHT_RING1_MOD RIGHT_RING1_KEY +#ifndef RIGHT_MIDDY_RING1_HOLDING_TYPE +#define RIGHT_MIDDY_RING1_HOLDING_TYPE RIGHT_MIDDY_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_MIDDY_RING1_HOLDING_TIME +#define RIGHT_MIDDY_RING1_HOLDING_TIME RIGHT_MIDDY_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_MIDDY_RING1_STREAK_DECAY +#define RIGHT_MIDDY_RING1_STREAK_DECAY RIGHT_MIDDY_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_MIDDY_RING1_REPEAT_DECAY +#define RIGHT_MIDDY_RING1_REPEAT_DECAY RIGHT_MIDDY_CHORD_REPEAT_DECAY +#endif + right_middy_ring1: homey_right_middy_ring1 { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_middy_ring1_bilateral: homey_right_middy_ring1_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_middy_tap>; + }; + #define RightMiddyRing1 right_middy_ring1_bilateral RIGHT_RING1_MOD RIGHT_RING1_KEY +#ifndef RIGHT_INDEX_RING1_HOLDING_TYPE +#define RIGHT_INDEX_RING1_HOLDING_TYPE RIGHT_INDEX_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_INDEX_RING1_HOLDING_TIME +#define RIGHT_INDEX_RING1_HOLDING_TIME RIGHT_INDEX_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_INDEX_RING1_STREAK_DECAY +#define RIGHT_INDEX_RING1_STREAK_DECAY RIGHT_INDEX_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_INDEX_RING1_REPEAT_DECAY +#define RIGHT_INDEX_RING1_REPEAT_DECAY RIGHT_INDEX_CHORD_REPEAT_DECAY +#endif + right_index_ring1: homey_right_index_ring1 { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_index_ring1_bilateral: homey_right_index_ring1_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_index_tap>; + }; + #define RightIndexRing1 right_index_ring1_bilateral RIGHT_RING1_MOD RIGHT_RING1_KEY +#ifndef LEFT_PINKY_RING2_HOLDING_TYPE +#define LEFT_PINKY_RING2_HOLDING_TYPE LEFT_PINKY_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_PINKY_RING2_HOLDING_TIME +#define LEFT_PINKY_RING2_HOLDING_TIME LEFT_PINKY_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_PINKY_RING2_STREAK_DECAY +#define LEFT_PINKY_RING2_STREAK_DECAY LEFT_PINKY_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_PINKY_RING2_REPEAT_DECAY +#define LEFT_PINKY_RING2_REPEAT_DECAY LEFT_PINKY_CHORD_REPEAT_DECAY +#endif + left_pinky_ring2: homey_left_pinky_ring2 { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_pinky_ring2_bilateral: homey_left_pinky_ring2_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_pinky_tap>; + }; + #define LeftPinkyRing2 left_pinky_ring2_bilateral LEFT_RING2_MOD LEFT_RING2_KEY +#ifndef LEFT_RING1_RING2_HOLDING_TYPE +#define LEFT_RING1_RING2_HOLDING_TYPE LEFT_RING1_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_RING1_RING2_HOLDING_TIME +#define LEFT_RING1_RING2_HOLDING_TIME LEFT_RING1_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_RING1_RING2_STREAK_DECAY +#define LEFT_RING1_RING2_STREAK_DECAY LEFT_RING1_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_RING1_RING2_REPEAT_DECAY +#define LEFT_RING1_RING2_REPEAT_DECAY LEFT_RING1_CHORD_REPEAT_DECAY +#endif + left_ring1_ring2: homey_left_ring1_ring2 { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_ring1_ring2_bilateral: homey_left_ring1_ring2_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_ring1_tap>; + }; + #define LeftRing1Ring2 left_ring1_ring2_bilateral LEFT_RING2_MOD LEFT_RING2_KEY +#ifndef LEFT_MIDDY_RING2_HOLDING_TYPE +#define LEFT_MIDDY_RING2_HOLDING_TYPE LEFT_MIDDY_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_MIDDY_RING2_HOLDING_TIME +#define LEFT_MIDDY_RING2_HOLDING_TIME LEFT_MIDDY_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_MIDDY_RING2_STREAK_DECAY +#define LEFT_MIDDY_RING2_STREAK_DECAY LEFT_MIDDY_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_MIDDY_RING2_REPEAT_DECAY +#define LEFT_MIDDY_RING2_REPEAT_DECAY LEFT_MIDDY_CHORD_REPEAT_DECAY +#endif + left_middy_ring2: homey_left_middy_ring2 { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_middy_ring2_bilateral: homey_left_middy_ring2_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_middy_tap>; + }; + #define LeftMiddyRing2 left_middy_ring2_bilateral LEFT_RING2_MOD LEFT_RING2_KEY +#ifndef LEFT_INDEX_RING2_HOLDING_TYPE +#define LEFT_INDEX_RING2_HOLDING_TYPE LEFT_INDEX_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_INDEX_RING2_HOLDING_TIME +#define LEFT_INDEX_RING2_HOLDING_TIME LEFT_INDEX_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_INDEX_RING2_STREAK_DECAY +#define LEFT_INDEX_RING2_STREAK_DECAY LEFT_INDEX_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_INDEX_RING2_REPEAT_DECAY +#define LEFT_INDEX_RING2_REPEAT_DECAY LEFT_INDEX_CHORD_REPEAT_DECAY +#endif + left_index_ring2: homey_left_index_ring2 { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_index_ring2_bilateral: homey_left_index_ring2_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_index_tap>; + }; + #define LeftIndexRing2 left_index_ring2_bilateral LEFT_RING2_MOD LEFT_RING2_KEY +#ifndef RIGHT_PINKY_RING2_HOLDING_TYPE +#define RIGHT_PINKY_RING2_HOLDING_TYPE RIGHT_PINKY_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_PINKY_RING2_HOLDING_TIME +#define RIGHT_PINKY_RING2_HOLDING_TIME RIGHT_PINKY_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_PINKY_RING2_STREAK_DECAY +#define RIGHT_PINKY_RING2_STREAK_DECAY RIGHT_PINKY_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_PINKY_RING2_REPEAT_DECAY +#define RIGHT_PINKY_RING2_REPEAT_DECAY RIGHT_PINKY_CHORD_REPEAT_DECAY +#endif + right_pinky_ring2: homey_right_pinky_ring2 { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_pinky_ring2_bilateral: homey_right_pinky_ring2_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_pinky_tap>; + }; + #define RightPinkyRing2 right_pinky_ring2_bilateral RIGHT_RING2_MOD RIGHT_RING2_KEY +#ifndef RIGHT_RING1_RING2_HOLDING_TYPE +#define RIGHT_RING1_RING2_HOLDING_TYPE RIGHT_RING1_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_RING1_RING2_HOLDING_TIME +#define RIGHT_RING1_RING2_HOLDING_TIME RIGHT_RING1_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_RING1_RING2_STREAK_DECAY +#define RIGHT_RING1_RING2_STREAK_DECAY RIGHT_RING1_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_RING1_RING2_REPEAT_DECAY +#define RIGHT_RING1_RING2_REPEAT_DECAY RIGHT_RING1_CHORD_REPEAT_DECAY +#endif + right_ring1_ring2: homey_right_ring1_ring2 { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_ring1_ring2_bilateral: homey_right_ring1_ring2_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_ring1_tap>; + }; + #define RightRing1Ring2 right_ring1_ring2_bilateral RIGHT_RING2_MOD RIGHT_RING2_KEY +#ifndef RIGHT_MIDDY_RING2_HOLDING_TYPE +#define RIGHT_MIDDY_RING2_HOLDING_TYPE RIGHT_MIDDY_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_MIDDY_RING2_HOLDING_TIME +#define RIGHT_MIDDY_RING2_HOLDING_TIME RIGHT_MIDDY_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_MIDDY_RING2_STREAK_DECAY +#define RIGHT_MIDDY_RING2_STREAK_DECAY RIGHT_MIDDY_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_MIDDY_RING2_REPEAT_DECAY +#define RIGHT_MIDDY_RING2_REPEAT_DECAY RIGHT_MIDDY_CHORD_REPEAT_DECAY +#endif + right_middy_ring2: homey_right_middy_ring2 { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_middy_ring2_bilateral: homey_right_middy_ring2_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_middy_tap>; + }; + #define RightMiddyRing2 right_middy_ring2_bilateral RIGHT_RING2_MOD RIGHT_RING2_KEY +#ifndef RIGHT_INDEX_RING2_HOLDING_TYPE +#define RIGHT_INDEX_RING2_HOLDING_TYPE RIGHT_INDEX_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_INDEX_RING2_HOLDING_TIME +#define RIGHT_INDEX_RING2_HOLDING_TIME RIGHT_INDEX_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_INDEX_RING2_STREAK_DECAY +#define RIGHT_INDEX_RING2_STREAK_DECAY RIGHT_INDEX_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_INDEX_RING2_REPEAT_DECAY +#define RIGHT_INDEX_RING2_REPEAT_DECAY RIGHT_INDEX_CHORD_REPEAT_DECAY +#endif + right_index_ring2: homey_right_index_ring2 { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_index_ring2_bilateral: homey_right_index_ring2_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_index_tap>; + }; + #define RightIndexRing2 right_index_ring2_bilateral RIGHT_RING2_MOD RIGHT_RING2_KEY +#ifndef LEFT_PINKY_MIDDY_HOLDING_TYPE +#define LEFT_PINKY_MIDDY_HOLDING_TYPE LEFT_PINKY_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_PINKY_MIDDY_HOLDING_TIME +#define LEFT_PINKY_MIDDY_HOLDING_TIME LEFT_PINKY_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_PINKY_MIDDY_STREAK_DECAY +#define LEFT_PINKY_MIDDY_STREAK_DECAY LEFT_PINKY_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_PINKY_MIDDY_REPEAT_DECAY +#define LEFT_PINKY_MIDDY_REPEAT_DECAY LEFT_PINKY_CHORD_REPEAT_DECAY +#endif + left_pinky_middy: homey_left_pinky_middy { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_pinky_middy_bilateral: homey_left_pinky_middy_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_pinky_tap>; + }; + #define LeftPinkyMiddy left_pinky_middy_bilateral LEFT_MIDDY_MOD LEFT_MIDDY_KEY +#ifndef LEFT_RING1_MIDDY_HOLDING_TYPE +#define LEFT_RING1_MIDDY_HOLDING_TYPE LEFT_RING1_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_RING1_MIDDY_HOLDING_TIME +#define LEFT_RING1_MIDDY_HOLDING_TIME LEFT_RING1_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_RING1_MIDDY_STREAK_DECAY +#define LEFT_RING1_MIDDY_STREAK_DECAY LEFT_RING1_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_RING1_MIDDY_REPEAT_DECAY +#define LEFT_RING1_MIDDY_REPEAT_DECAY LEFT_RING1_CHORD_REPEAT_DECAY +#endif + left_ring1_middy: homey_left_ring1_middy { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_ring1_middy_bilateral: homey_left_ring1_middy_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_ring1_tap>; + }; + #define LeftRing1Middy left_ring1_middy_bilateral LEFT_MIDDY_MOD LEFT_MIDDY_KEY +#ifndef LEFT_RING2_MIDDY_HOLDING_TYPE +#define LEFT_RING2_MIDDY_HOLDING_TYPE LEFT_RING2_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_RING2_MIDDY_HOLDING_TIME +#define LEFT_RING2_MIDDY_HOLDING_TIME LEFT_RING2_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_RING2_MIDDY_STREAK_DECAY +#define LEFT_RING2_MIDDY_STREAK_DECAY LEFT_RING2_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_RING2_MIDDY_REPEAT_DECAY +#define LEFT_RING2_MIDDY_REPEAT_DECAY LEFT_RING2_CHORD_REPEAT_DECAY +#endif + left_ring2_middy: homey_left_ring2_middy { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_ring2_middy_bilateral: homey_left_ring2_middy_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_ring2_tap>; + }; + #define LeftRing2Middy left_ring2_middy_bilateral LEFT_MIDDY_MOD LEFT_MIDDY_KEY +#ifndef LEFT_INDEX_MIDDY_HOLDING_TYPE +#define LEFT_INDEX_MIDDY_HOLDING_TYPE LEFT_INDEX_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_INDEX_MIDDY_HOLDING_TIME +#define LEFT_INDEX_MIDDY_HOLDING_TIME LEFT_INDEX_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_INDEX_MIDDY_STREAK_DECAY +#define LEFT_INDEX_MIDDY_STREAK_DECAY LEFT_INDEX_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_INDEX_MIDDY_REPEAT_DECAY +#define LEFT_INDEX_MIDDY_REPEAT_DECAY LEFT_INDEX_CHORD_REPEAT_DECAY +#endif + left_index_middy: homey_left_index_middy { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_index_middy_bilateral: homey_left_index_middy_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_index_tap>; + }; + #define LeftIndexMiddy left_index_middy_bilateral LEFT_MIDDY_MOD LEFT_MIDDY_KEY +#ifndef RIGHT_PINKY_MIDDY_HOLDING_TYPE +#define RIGHT_PINKY_MIDDY_HOLDING_TYPE RIGHT_PINKY_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_PINKY_MIDDY_HOLDING_TIME +#define RIGHT_PINKY_MIDDY_HOLDING_TIME RIGHT_PINKY_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_PINKY_MIDDY_STREAK_DECAY +#define RIGHT_PINKY_MIDDY_STREAK_DECAY RIGHT_PINKY_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_PINKY_MIDDY_REPEAT_DECAY +#define RIGHT_PINKY_MIDDY_REPEAT_DECAY RIGHT_PINKY_CHORD_REPEAT_DECAY +#endif + right_pinky_middy: homey_right_pinky_middy { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_pinky_middy_bilateral: homey_right_pinky_middy_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_pinky_tap>; + }; + #define RightPinkyMiddy right_pinky_middy_bilateral RIGHT_MIDDY_MOD RIGHT_MIDDY_KEY +#ifndef RIGHT_RING1_MIDDY_HOLDING_TYPE +#define RIGHT_RING1_MIDDY_HOLDING_TYPE RIGHT_RING1_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_RING1_MIDDY_HOLDING_TIME +#define RIGHT_RING1_MIDDY_HOLDING_TIME RIGHT_RING1_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_RING1_MIDDY_STREAK_DECAY +#define RIGHT_RING1_MIDDY_STREAK_DECAY RIGHT_RING1_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_RING1_MIDDY_REPEAT_DECAY +#define RIGHT_RING1_MIDDY_REPEAT_DECAY RIGHT_RING1_CHORD_REPEAT_DECAY +#endif + right_ring1_middy: homey_right_ring1_middy { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_ring1_middy_bilateral: homey_right_ring1_middy_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_ring1_tap>; + }; + #define RightRing1Middy right_ring1_middy_bilateral RIGHT_MIDDY_MOD RIGHT_MIDDY_KEY +#ifndef RIGHT_RING2_MIDDY_HOLDING_TYPE +#define RIGHT_RING2_MIDDY_HOLDING_TYPE RIGHT_RING2_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_RING2_MIDDY_HOLDING_TIME +#define RIGHT_RING2_MIDDY_HOLDING_TIME RIGHT_RING2_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_RING2_MIDDY_STREAK_DECAY +#define RIGHT_RING2_MIDDY_STREAK_DECAY RIGHT_RING2_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_RING2_MIDDY_REPEAT_DECAY +#define RIGHT_RING2_MIDDY_REPEAT_DECAY RIGHT_RING2_CHORD_REPEAT_DECAY +#endif + right_ring2_middy: homey_right_ring2_middy { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_ring2_middy_bilateral: homey_right_ring2_middy_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_ring2_tap>; + }; + #define RightRing2Middy right_ring2_middy_bilateral RIGHT_MIDDY_MOD RIGHT_MIDDY_KEY +#ifndef RIGHT_INDEX_MIDDY_HOLDING_TYPE +#define RIGHT_INDEX_MIDDY_HOLDING_TYPE RIGHT_INDEX_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_INDEX_MIDDY_HOLDING_TIME +#define RIGHT_INDEX_MIDDY_HOLDING_TIME RIGHT_INDEX_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_INDEX_MIDDY_STREAK_DECAY +#define RIGHT_INDEX_MIDDY_STREAK_DECAY RIGHT_INDEX_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_INDEX_MIDDY_REPEAT_DECAY +#define RIGHT_INDEX_MIDDY_REPEAT_DECAY RIGHT_INDEX_CHORD_REPEAT_DECAY +#endif + right_index_middy: homey_right_index_middy { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_index_middy_bilateral: homey_right_index_middy_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_INDEX_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_index_tap>; + }; + #define RightIndexMiddy right_index_middy_bilateral RIGHT_MIDDY_MOD RIGHT_MIDDY_KEY +#ifndef LEFT_PINKY_INDEX_HOLDING_TYPE +#define LEFT_PINKY_INDEX_HOLDING_TYPE LEFT_PINKY_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_PINKY_INDEX_HOLDING_TIME +#define LEFT_PINKY_INDEX_HOLDING_TIME LEFT_PINKY_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_PINKY_INDEX_STREAK_DECAY +#define LEFT_PINKY_INDEX_STREAK_DECAY LEFT_PINKY_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_PINKY_INDEX_REPEAT_DECAY +#define LEFT_PINKY_INDEX_REPEAT_DECAY LEFT_PINKY_CHORD_REPEAT_DECAY +#endif + left_pinky_index: homey_left_pinky_index { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_pinky_index_bilateral: homey_left_pinky_index_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_pinky_tap>; + }; + #define LeftPinkyIndex left_pinky_index_bilateral LEFT_INDEX_MOD LEFT_INDEX_KEY +#ifndef LEFT_RING1_INDEX_HOLDING_TYPE +#define LEFT_RING1_INDEX_HOLDING_TYPE LEFT_RING1_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_RING1_INDEX_HOLDING_TIME +#define LEFT_RING1_INDEX_HOLDING_TIME LEFT_RING1_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_RING1_INDEX_STREAK_DECAY +#define LEFT_RING1_INDEX_STREAK_DECAY LEFT_RING1_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_RING1_INDEX_REPEAT_DECAY +#define LEFT_RING1_INDEX_REPEAT_DECAY LEFT_RING1_CHORD_REPEAT_DECAY +#endif + left_ring1_index: homey_left_ring1_index { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_ring1_index_bilateral: homey_left_ring1_index_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_ring1_tap>; + }; + #define LeftRing1Index left_ring1_index_bilateral LEFT_INDEX_MOD LEFT_INDEX_KEY +#ifndef LEFT_RING2_INDEX_HOLDING_TYPE +#define LEFT_RING2_INDEX_HOLDING_TYPE LEFT_RING2_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_RING2_INDEX_HOLDING_TIME +#define LEFT_RING2_INDEX_HOLDING_TIME LEFT_RING2_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_RING2_INDEX_STREAK_DECAY +#define LEFT_RING2_INDEX_STREAK_DECAY LEFT_RING2_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_RING2_INDEX_REPEAT_DECAY +#define LEFT_RING2_INDEX_REPEAT_DECAY LEFT_RING2_CHORD_REPEAT_DECAY +#endif + left_ring2_index: homey_left_ring2_index { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_ring2_index_bilateral: homey_left_ring2_index_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_ring2_tap>; + }; + #define LeftRing2Index left_ring2_index_bilateral LEFT_INDEX_MOD LEFT_INDEX_KEY +#ifndef LEFT_MIDDY_INDEX_HOLDING_TYPE +#define LEFT_MIDDY_INDEX_HOLDING_TYPE LEFT_MIDDY_CHORD_HOLDING_TYPE +#endif +#ifndef LEFT_MIDDY_INDEX_HOLDING_TIME +#define LEFT_MIDDY_INDEX_HOLDING_TIME LEFT_MIDDY_CHORD_HOLDING_TIME +#endif +#ifndef LEFT_MIDDY_INDEX_STREAK_DECAY +#define LEFT_MIDDY_INDEX_STREAK_DECAY LEFT_MIDDY_CHORD_STREAK_DECAY +#endif +#ifndef LEFT_MIDDY_INDEX_REPEAT_DECAY +#define LEFT_MIDDY_INDEX_REPEAT_DECAY LEFT_MIDDY_CHORD_REPEAT_DECAY +#endif + left_middy_index: homey_left_middy_index { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + left_middy_index_bilateral: homey_left_middy_index_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = LEFT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&left_middy_tap>; + }; + #define LeftMiddyIndex left_middy_index_bilateral LEFT_INDEX_MOD LEFT_INDEX_KEY +#ifndef RIGHT_PINKY_INDEX_HOLDING_TYPE +#define RIGHT_PINKY_INDEX_HOLDING_TYPE RIGHT_PINKY_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_PINKY_INDEX_HOLDING_TIME +#define RIGHT_PINKY_INDEX_HOLDING_TIME RIGHT_PINKY_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_PINKY_INDEX_STREAK_DECAY +#define RIGHT_PINKY_INDEX_STREAK_DECAY RIGHT_PINKY_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_PINKY_INDEX_REPEAT_DECAY +#define RIGHT_PINKY_INDEX_REPEAT_DECAY RIGHT_PINKY_CHORD_REPEAT_DECAY +#endif + right_pinky_index: homey_right_pinky_index { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_pinky_index_bilateral: homey_right_pinky_index_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_PINKY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_pinky_tap>; + }; + #define RightPinkyIndex right_pinky_index_bilateral RIGHT_INDEX_MOD RIGHT_INDEX_KEY +#ifndef RIGHT_RING1_INDEX_HOLDING_TYPE +#define RIGHT_RING1_INDEX_HOLDING_TYPE RIGHT_RING1_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_RING1_INDEX_HOLDING_TIME +#define RIGHT_RING1_INDEX_HOLDING_TIME RIGHT_RING1_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_RING1_INDEX_STREAK_DECAY +#define RIGHT_RING1_INDEX_STREAK_DECAY RIGHT_RING1_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_RING1_INDEX_REPEAT_DECAY +#define RIGHT_RING1_INDEX_REPEAT_DECAY RIGHT_RING1_CHORD_REPEAT_DECAY +#endif + right_ring1_index: homey_right_ring1_index { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_ring1_index_bilateral: homey_right_ring1_index_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING1_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_ring1_tap>; + }; + #define RightRing1Index right_ring1_index_bilateral RIGHT_INDEX_MOD RIGHT_INDEX_KEY +#ifndef RIGHT_RING2_INDEX_HOLDING_TYPE +#define RIGHT_RING2_INDEX_HOLDING_TYPE RIGHT_RING2_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_RING2_INDEX_HOLDING_TIME +#define RIGHT_RING2_INDEX_HOLDING_TIME RIGHT_RING2_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_RING2_INDEX_STREAK_DECAY +#define RIGHT_RING2_INDEX_STREAK_DECAY RIGHT_RING2_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_RING2_INDEX_REPEAT_DECAY +#define RIGHT_RING2_INDEX_REPEAT_DECAY RIGHT_RING2_CHORD_REPEAT_DECAY +#endif + right_ring2_index: homey_right_ring2_index { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_ring2_index_bilateral: homey_right_ring2_index_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_RING2_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_ring2_tap>; + }; + #define RightRing2Index right_ring2_index_bilateral RIGHT_INDEX_MOD RIGHT_INDEX_KEY +#ifndef RIGHT_MIDDY_INDEX_HOLDING_TYPE +#define RIGHT_MIDDY_INDEX_HOLDING_TYPE RIGHT_MIDDY_CHORD_HOLDING_TYPE +#endif +#ifndef RIGHT_MIDDY_INDEX_HOLDING_TIME +#define RIGHT_MIDDY_INDEX_HOLDING_TIME RIGHT_MIDDY_CHORD_HOLDING_TIME +#endif +#ifndef RIGHT_MIDDY_INDEX_STREAK_DECAY +#define RIGHT_MIDDY_INDEX_STREAK_DECAY RIGHT_MIDDY_CHORD_STREAK_DECAY +#endif +#ifndef RIGHT_MIDDY_INDEX_REPEAT_DECAY +#define RIGHT_MIDDY_INDEX_REPEAT_DECAY RIGHT_MIDDY_CHORD_REPEAT_DECAY +#endif + right_middy_index: homey_right_middy_index { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&kp>; + }; + right_middy_index_bilateral: homey_right_middy_index_bilateral { + compatible = "zmk,behavior-hold-tap"; + flavor = RIGHT_MIDDY_HOLDING_TYPE; + hold-trigger-key-positions = ; + hold-trigger-on-release; // wait for other home row mods + tapping-term-ms = ; + quick-tap-ms = ; + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&kp>, <&right_middy_tap>; + }; + #define RightMiddyIndex right_middy_index_bilateral RIGHT_INDEX_MOD RIGHT_INDEX_KEY + + // + // Key repetition access keys on the index fingers + // + plain: plain_typing_layer { + compatible = "zmk,behavior-hold-tap"; + flavor = PLAIN_HOLDING_TYPE; + tapping-term-ms = ; + quick-tap-ms = ; // enable repeat + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&mo>, <&kp>; + retro-tap; // tap on standalone hold + }; + plain_engram_COMMA: plain_typing_layer_engram_COMMA { + compatible = "zmk,behavior-hold-tap"; + flavor = PLAIN_HOLDING_TYPE; + tapping-term-ms = ; + quick-tap-ms = ; // enable repeat + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&mo>, <&engram_COMMA>; + retro-tap; // tap on standalone hold + }; + plain_engram_DOT: plain_typing_layer_engram_DOT { + compatible = "zmk,behavior-hold-tap"; + flavor = PLAIN_HOLDING_TYPE; + tapping-term-ms = ; + quick-tap-ms = ; // enable repeat + require-prior-idle-ms = ; + #binding-cells = <2>; + bindings = <&mo>, <&engram_DOT>; + retro-tap; // tap on standalone hold + }; + + // + // Thumb cluster hold-tap keys for Miryoku layers + // + thumb: thumb_layer_access { + compatible = "zmk,behavior-hold-tap"; + flavor = THUMB_HOLDING_TYPE; + tapping-term-ms = ; + quick-tap-ms = ; // enable repeat + #binding-cells = <2>; + bindings = <&mo>, <&kp>; + }; + thumb_parang_left: thumb_layer_access_parang_left { + compatible = "zmk,behavior-hold-tap"; + flavor = THUMB_HOLDING_TYPE; + tapping-term-ms = ; + quick-tap-ms = ; // enable repeat + #binding-cells = <2>; + bindings = <&mo>, <¶ng_left>; + }; + thumb_lower_shift: lower_layer_or_sticky_shift { + compatible = "zmk,behavior-hold-tap"; + flavor = "tap-preferred"; + tapping-term-ms = ; + #binding-cells = <2>; + bindings = <&mo>, <&sticky_key_oneshot>; + }; + space: thumb_layer_access_spacebar { + compatible = "zmk,behavior-hold-tap"; + flavor = SPACE_HOLDING_TYPE; + tapping-term-ms = ; + quick-tap-ms = ; // enable repeat + #binding-cells = <2>; + bindings = <&mo>, <&kp>; + }; + + // + // Shift + LEFT_PARENTHESIS = LESS_THAN + // + parang_left: left_parenthesis_and_less_than { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp LPAR>, <&kp LT>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + + // + // Shift + RIGHT_PARENTHESIS = GREATER_THAN + // + parang_right: right_parenthesis_and_greater_than { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp RPAR>, <&kp GT>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + + // + // Custom shifted pairs for the Engram layout + // - https://engram.dev/ + // - https://sunaku.github.io/engram-keyboard-layout.html + // + engram_N1: engram_shift_N1_PIPE { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp N1>, <&kp PIPE>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_N2: engram_shift_N2_EQUAL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp N2>, <&kp EQUAL>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_N3: engram_shift_N3_TILDE { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp N3>, <&kp TILDE>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_N4: engram_shift_N4_PLUS { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp N4>, <&kp PLUS>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_N5: engram_shift_N5_LT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp N5>, <&kp LT>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_N6: engram_shift_N6_GT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp N6>, <&kp GT>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_N7: engram_shift_N7_CARET { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp N7>, <&kp CARET>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_N8: engram_shift_N8_AMPS { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp N8>, <&kp AMPS>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_N9: engram_shift_N9_PRCNT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp N9>, <&kp PRCNT>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_N0: engram_shift_N0_STAR { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp N0>, <&kp STAR>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_SQT: engram_shift_SQT_LPAR { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp SQT>, <&kp LPAR>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_DQT: engram_shift_DQT_RPAR { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp DQT>, <&kp RPAR>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_COMMA: engram_shift_COMMA_SEMI { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp COMMA>, <&kp SEMI>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_DOT: engram_shift_DOT_COLON { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp DOT>, <&kp COLON>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_QMARK: engram_shift_QMARK_EXCL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp QMARK>, <&kp EXCL>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_HASH: engram_shift_HASH_DLLR { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp HASH>, <&kp DLLR>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_AT: engram_shift_AT_GRAVE { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp AT>, <&kp GRAVE>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + engram_FSLH: engram_shift_FSLH_BSLH { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp FSLH>, <&kp BSLH>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + + ////////////////////////////////////////////////////////////////////////// + // + // &sk (sticky key) variant that is truly one-shot + // + ////////////////////////////////////////////////////////////////////////// + + // + // STICKY_1SHOT_DECAY defines how much time you have left (milliseconds) + // after tapping a sticky key before it expires (won't apply to next tap). + // + #ifndef STICKY_1SHOT_DECAY + #define STICKY_1SHOT_DECAY 500 + #endif + + sticky_key_oneshot: sticky_key_oneshot_macro { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_tap &sticky_key_quickrel MACRO_PLACEHOLDER> + ; + }; + sticky_key_quickrel: sticky_key_quick_release { + compatible = "zmk,behavior-sticky-key"; + #binding-cells = <1>; + bindings = <&kp>; + release-after-ms = ; + quick-release; + ignore-modifiers; + }; + + ////////////////////////////////////////////////////////////////////////// + // + // ZMK global overrides + // + ////////////////////////////////////////////////////////////////////////// + + // + // CapsWord - ported from Pascal Getreuer's extension for QMK + // - https://zmk.dev/docs/behaviors/caps-word + // - https://getreuer.info/posts/keyboards/caps-word/index.html + // + behavior_caps_word { + continue-list = < + UNDERSCORE MINUS + BACKSPACE DELETE + N1 N2 N3 N4 N5 N6 N7 N8 N9 N0 + >; + }; + +}; + +macros { + + // + // Linux Magic System Request Key - hold this down and type REISUB + // - https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html + // - https://github.com/manna-harbour/miryoku/discussions/259 + // + ZMK_MACRO(linux_magic_sysrq, + wait-ms = <0>; + tap-ms = <0>; + bindings + = <¯o_press &mo 0 &kp RALT> + , <¯o_tap &kp PRINTSCREEN> + , <¯o_pause_for_release> + , <¯o_release &mo 0 &kp RALT> + ; + ) + + // + // Mod+Tab application switcher - hold this down to keep menu open + // + mod_tab: mod_tab_switcher { + compatible = "zmk,behavior-macro-one-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <1>; + bindings + = <¯o_param_1to1> + , <¯o_press &kp MACRO_PLACEHOLDER> + , <¯o_tap &kp TAB> + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &kp MACRO_PLACEHOLDER> + ; + }; + mod_tab_chord: mod_tab_switcher_chord { + compatible = "zmk,behavior-macro-two-param"; + wait-ms = <0>; + tap-ms = <0>; + #binding-cells = <2>; + bindings + = <¯o_param_2to1> + , <¯o_press &mo MACRO_PLACEHOLDER> + , <¯o_param_1to1> + , <¯o_press &mod_tab MACRO_PLACEHOLDER> + , <¯o_pause_for_release> + , <¯o_param_1to1> + , <¯o_release &mod_tab MACRO_PLACEHOLDER> + , <¯o_param_2to1> + , <¯o_release &mo MACRO_PLACEHOLDER> + ; + }; + + ////////////////////////////////////////////////////////////////////////// + // + // Approximation of Pascal Getreuer's Select Word macro from QMK + // - https://getreuer.info/posts/keyboards/select-word/index.html + // + ////////////////////////////////////////////////////////////////////////// + + // + // SELECT_WORD_DELAY defines how long the macro waits (milliseconds) + // after moving the cursor before it selects a word. A larger delay + // may allow the macro to move to the next word upon each invocation. + // + #ifndef SELECT_WORD_DELAY + #define SELECT_WORD_DELAY 1 + #endif + + ZMK_MACRO(select_none, + wait-ms = ; + tap-ms = ; + bindings = <&kp DOWN &kp UP &kp RIGHT &kp LEFT>; + ) + + // + // select a word (jumps to next word upon each successive invocation) + // + select_word: select_word { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&select_word_right>, <&select_word_left>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + ZMK_MACRO(select_word_right, + wait-ms = ; + tap-ms = ; + bindings = <&kp _W(RIGHT) &kp _W(LEFT) &kp _W(LS(RIGHT))>; + ) + ZMK_MACRO(select_word_left, + wait-ms = ; + tap-ms = ; + bindings = <&kp _W(LEFT) &kp _W(RIGHT) &kp _W(LS(LEFT))>; + ) + + // + // extend current selection by one word + // + extend_word: extend_word { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&extend_word_right>, <&extend_word_left>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + ZMK_MACRO(extend_word_right, + wait-ms = ; + tap-ms = ; + bindings = <&kp _W(LS(RIGHT))>; + ) + ZMK_MACRO(extend_word_left, + wait-ms = ; + tap-ms = ; + bindings = <&kp _W(LS(LEFT))>; + ) + + // + // select current line + // + select_line: select_line { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&select_line_right>, <&select_line_left>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + ZMK_MACRO(select_line_right, + wait-ms = ; + tap-ms = ; + bindings = <&kp _HOME &kp LS(_END)>; + ) + ZMK_MACRO(select_line_left, + wait-ms = ; + tap-ms = ; + bindings = <&kp _END &kp LS(_HOME)>; + ) + + // + // extend current selection by one line + // + extend_line: extend_line { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&extend_line_right>, <&extend_line_left>; + mods = <(MOD_LSFT|MOD_RSFT)>; + }; + ZMK_MACRO(extend_line_right, + wait-ms = ; + tap-ms = ; + bindings = <&kp LS(DOWN) &kp LS(_END)>; + ) + ZMK_MACRO(extend_line_left, + wait-ms = ; + tap-ms = ; + bindings = <&kp LS(UP) &kp LS(_HOME)>; + ) + + ////////////////////////////////////////////////////////////////////////// + // + // World layer - international characters + // + ////////////////////////////////////////////////////////////////////////// + + // + // WORLD_USE_COMPOSE uses OS-native Compose keycodes instead of Unicode + // for characters in the "localizing" section of the `world.yaml` file. + // + //#define WORLD_USE_COMPOSE + + // + // UNICODE_TARGET_OS defines which operating system you're targeting + // for the UNICODE() preprocessor macro to be used on, since each OS + // has different shortcuts for typing Unicode characters as hexcodes. + // + // NOTE: You may need to enable Unicode hexadecimal input in your OS: + // - (macOS) https://sevenseacat.net/posts/2018/unicode-in-qmk-on-osx/ + // - (Linux) https://help.ubuntu.com/stable/ubuntu-help/tips-specialchars.html.en#ctrlshiftu + // - (Windows) https://github.com/samhocevar/wincompose + // + // Specifically, Windows users should be running the WinCompose tool, + // which lets you type Unicode characters via hexadecimal codepoints. + // + #ifndef UNICODE_TARGET_OS + #define UNICODE_TARGET_OS OPERATING_SYSTEM + #endif + + // + // UNICODE_TAP_DELAY defines how long the macro waits (milliseconds) + // between keystrokes while inputting the Unicode codepoint shortcut. + // + #ifndef UNICODE_TAP_DELAY + #define UNICODE_TAP_DELAY 1 + #endif + + // + // UNICODE_SEQ_DELAY defines how long the macro waits (milliseconds) + // between emitting Unicode codepoints in multi-codepoint characters. + // + #ifndef UNICODE_SEQ_DELAY + #define UNICODE_SEQ_DELAY 10 + #endif + + #define UNICODE(name, ...) \ + ZMK_MACRO(name, \ + wait-ms = ; \ + tap-ms = ; \ + bindings = __VA_ARGS__; \ + ) + + // + // UNICODE_SEQ_LINUX() specifies how Unicode hexadecimal codepoint + // keystrokes are transformed into Unicode characters under Linux. + // + #ifndef UNICODE_SEQ_LINUX + #define UNICODE_SEQ_LINUX(keystrokes) \ + <¯o_tap &kp LC(LS(U)) keystrokes &kp ENTER> + #endif + + // + // UNICODE_SEQ_MACOS() specifies how Unicode hexadecimal codepoint + // keystrokes are transformed into Unicode characters under macOS. + // + #ifndef UNICODE_SEQ_MACOS + #define UNICODE_SEQ_MACOS(keystrokes) \ + <¯o_press &kp LALT> ,\ + <¯o_tap keystrokes> ,\ + <¯o_release &kp LALT> + #endif + + // + // UNICODE_SEQ_WINDOWS() specifies how Unicode hexadecimal codepoint + // keystrokes are transformed into Unicode characters under Windows. + // + // If you've configured WinCompose to use a different trigger hotkey, + // such as F13 instead of the default RA(U) shortcut, simply override + // this definition to adapt all UNICODE() function calls accordingly. + // + #ifndef UNICODE_SEQ_WINDOWS + #define UNICODE_SEQ_WINDOWS(keystrokes) \ + <¯o_tap &kp RALT &kp U keystrokes &kp ENTER> + #endif + + // + // COMPOSE_KEY_LINUX specifies the keycode for Compose key in Linux, + // which may be RALT by default but can be reconfigured as follows: + // + // $ setxkbmap -option compose:sclk # use ScrollLock as Compose key + // + // See xkeyboard-config(7) for possible choices for the Compose key: + // https://manpages.debian.org/stable/xkb-data/xkeyboard-config.7.en.html#Position_of_Compose_key + // + // #define COMPOSE_KEY_LINUX RALT // compose:ralt + // #define COMPOSE_KEY_LINUX LGUI // compose:lwin + // #define COMPOSE_KEY_LINUX RA(LGUI) // compose:lwin-altgr + // #define COMPOSE_KEY_LINUX RGUI // compose:rwin + // #define COMPOSE_KEY_LINUX RA(RGUI) // compose:rwin-altgr + // #define COMPOSE_KEY_LINUX K_MENU // compose:menu + // #define COMPOSE_KEY_LINUX RA(K_MENU) // compose:menu-altgr + // #define COMPOSE_KEY_LINUX LCTL // compose:lctrl + // #define COMPOSE_KEY_LINUX RA(LCTL) // compose:lctrl-altgr + // #define COMPOSE_KEY_LINUX RCTL // compose:rctrl + // #define COMPOSE_KEY_LINUX RA(RCTL) // compose:rctrl-altgr + // #define COMPOSE_KEY_LINUX CAPS // compose:caps + // #define COMPOSE_KEY_LINUX RA(CAPS) // compose:caps-altgr + // #define COMPOSE_KEY_LINUX NON_US_BSLH // compose:102 + // #define COMPOSE_KEY_LINUX RA(NON_US_BSLH) // compose:102-altgr + // #define COMPOSE_KEY_LINUX PAUSE_BREAK // compose:paus + // #define COMPOSE_KEY_LINUX PSCRN // compose:prsc + // #define COMPOSE_KEY_LINUX SLCK // compose:sclk + // + #ifndef COMPOSE_KEY_LINUX + #define COMPOSE_KEY_LINUX RALT + #endif + + // + // COMPOSE_SEQ_LINUX() prefixes keystrokes with the Linux Compose key. + // + #ifndef COMPOSE_SEQ_LINUX + #define COMPOSE_SEQ_LINUX(keystrokes) \ + <¯o_tap &kp COMPOSE_KEY_LINUX keystrokes> + #endif + + // + // COMPOSE_SEQ_MACOS() formats keystrokes for macOS character entry. + // + #ifndef COMPOSE_SEQ_MACOS + #define COMPOSE_SEQ_MACOS(keystrokes) \ + <¯o_tap keystrokes> + #endif + + // + // COMPOSE_SEQ_WINDOWS() wraps keystrokes in Windows AltCode sequence. + // + #ifndef COMPOSE_SEQ_WINDOWS + #define COMPOSE_SEQ_WINDOWS(keystrokes) \ + <¯o_press &kp LALT>, \ + <¯o_tap keystrokes>, \ + <¯o_release &kp LALT> + #endif + #if UNICODE_TARGET_OS == 'L' + #define UNICODE_MORPH_MODS (MOD_LCTL|MOD_LSFT) + #elif UNICODE_TARGET_OS == 'M' + #define UNICODE_MORPH_MODS MOD_LALT + #elif UNICODE_TARGET_OS == 'W' + #define UNICODE_MORPH_MODS MOD_RALT + #endif + #if UNICODE_TARGET_OS == 'L' + // $ grep "compose:" /usr/share/X11/xkb/rules/base.lst + // compose:ralt Right Alt + #if COMPOSE_KEY_LINUX == RALT + #define COMPOSE_MORPH_MODS MOD_RALT + // compose:lwin Left Win + #elif COMPOSE_KEY_LINUX == LGUI + #define COMPOSE_MORPH_MODS MOD_LGUI + // compose:lwin-altgr 3rd level of Left Win + #elif COMPOSE_KEY_LINUX == RA(LGUI) + #define COMPOSE_MORPH_MODS (MOD_LGUI|MOD_RALT) + // compose:rwin Right Win + #elif COMPOSE_KEY_LINUX == RGUI + #define COMPOSE_MORPH_MODS MOD_RGUI + // compose:rwin-altgr 3rd level of Right Win + #elif COMPOSE_KEY_LINUX == RA(RGUI) + #define COMPOSE_MORPH_MODS (MOD_RGUI|MOD_RALT) + // compose:menu Menu + // compose:menu-altgr 3rd level of Menu + #elif COMPOSE_KEY_LINUX == RA(K_MENU) + #define COMPOSE_MORPH_MODS MOD_RALT + // compose:lctrl Left Ctrl + #elif COMPOSE_KEY_LINUX == LCTL + #define COMPOSE_MORPH_MODS MOD_LCTL + // compose:lctrl-altgr 3rd level of Left Ctrl + #elif COMPOSE_KEY_LINUX == RA(LCTL) + #define COMPOSE_MORPH_MODS (MOD_LCTL|MOD_RALT) + // compose:rctrl Right Ctrl + #elif COMPOSE_KEY_LINUX == RCTL + #define COMPOSE_MORPH_MODS MOD_RCTL + // compose:rctrl-altgr 3rd level of Right Ctrl + #elif COMPOSE_KEY_LINUX == RA(RCTL) + #define COMPOSE_MORPH_MODS (MOD_RCTL|MOD_RALT) + // compose:caps Caps Lock + // compose:caps-altgr 3rd level of Caps Lock + #elif COMPOSE_KEY_LINUX == RA(CAPS) + #define COMPOSE_MORPH_MODS MOD_RALT + // compose:102 The "< >" key + // compose:102-altgr 3rd level of the "< >" key + #elif COMPOSE_KEY_LINUX == RA(NON_US_BSLH) + #define COMPOSE_MORPH_MODS MOD_RALT + // compose:paus Pause + // compose:prsc PrtSc + // compose:sclk Scroll Lock + #else + #define COMPOSE_MORPH_MODS 0 + #endif + #elif UNICODE_TARGET_OS == 'M' + #define COMPOSE_MORPH_MODS 0 + #elif UNICODE_TARGET_OS == 'W' + #define COMPOSE_MORPH_MODS MOD_LALT + #endif + + + // + // NOTE: edit the world.yaml file and run `rake` to generate this: + // + + // + // codepoints + // + UNICODE(world_degree_sign_macro, /* ° */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_degree_sign + COMPOSE_SEQ_LINUX(&kp O &kp O) + #else + UNICODE_SEQ_LINUX(&kp B &kp N0) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_degree_sign + COMPOSE_SEQ_MACOS(&kp LA(LS(N8))) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp N0) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_degree_sign + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N7 &kp KP_N6) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp N0) + #endif + #endif + ) + world_degree_sign: world_degree_sign { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_degree_sign_macro>, <&world_degree_sign_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_degree_sign +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_section_sign_macro, /* § */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_section_sign + COMPOSE_SEQ_LINUX(&kp S &kp O) + #else + UNICODE_SEQ_LINUX(&kp A &kp N7) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_section_sign + COMPOSE_SEQ_MACOS(&kp LA(N6)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N7) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_section_sign + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N6 &kp KP_N7) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N7) + #endif + #endif + ) + world_section_sign: world_section_sign { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_section_sign_macro>, <&world_section_sign_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_section_sign +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_paragraph_sign_macro, /* ¶ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_paragraph_sign + COMPOSE_SEQ_LINUX(&kp P &kp EXCL) + #else + UNICODE_SEQ_LINUX(&kp B &kp N6) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_paragraph_sign + COMPOSE_SEQ_MACOS(&kp LA(N7)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp N6) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_paragraph_sign + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N8 &kp KP_N2) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp N6) + #endif + #endif + ) + world_paragraph_sign: world_paragraph_sign { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_paragraph_sign_macro>, <&world_paragraph_sign_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_paragraph_sign +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_o_ordinal_macro, /* º */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_ordinal + COMPOSE_SEQ_LINUX(&kp CARET &kp UNDER &kp O) + #else + UNICODE_SEQ_LINUX(&kp B &kp A) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_ordinal + COMPOSE_SEQ_MACOS(&kp LA(N0)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp A) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_ordinal + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N8 &kp KP_N6) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp A) + #endif + #endif + ) + world_o_ordinal: world_o_ordinal { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_ordinal_macro>, <&world_o_ordinal_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_ordinal +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_a_ordinal_macro, /* ª */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_ordinal + COMPOSE_SEQ_LINUX(&kp CARET &kp UNDER &kp A) + #else + UNICODE_SEQ_LINUX(&kp A &kp A) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_ordinal + COMPOSE_SEQ_MACOS(&kp LA(N9)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp A) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_ordinal + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N7 &kp KP_N0) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp A) + #endif + #endif + ) + world_a_ordinal: world_a_ordinal { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_ordinal_macro>, <&world_a_ordinal_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_ordinal +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_exclaim_left_macro, /* ¡ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp A &kp N1) + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_exclaim_left + COMPOSE_SEQ_MACOS(&kp LA(N1)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N1) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_exclaim_left + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N6 &kp KP_N1) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N1) + #endif + #endif + ) + world_exclaim_left: world_exclaim_left { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_exclaim_left_macro>, <&world_exclaim_left_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_exclaim_left +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_question_left_macro, /* ¿ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_question_left + COMPOSE_SEQ_LINUX(&kp EXCL &kp EXCL) + #else + UNICODE_SEQ_LINUX(&kp B &kp F) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_question_left + COMPOSE_SEQ_MACOS(&kp LA(LS(FSLH))) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp F) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_question_left + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N1) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp F) + #endif + #endif + ) + world_question_left: world_question_left { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_question_left_macro>, <&world_question_left_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_question_left +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_currency_crypto_macro, /* ₿ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp B &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp B &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp B &kp F) + #endif + ) + world_currency_crypto: world_currency_crypto { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_crypto_macro>, <&world_currency_crypto_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_currency_crypto +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_currency_cent_macro, /* ¢ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp A &kp N2) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N2) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N2) + #endif + ) + world_currency_cent: world_currency_cent { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_cent_macro>, <&world_currency_cent_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_currency_cent +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_currency_sign_macro, /* ¤ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp A &kp N4) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N4) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N4) + #endif + ) + world_currency_sign: world_currency_sign { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_sign_macro>, <&world_currency_sign_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_currency_sign +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_micro_sign_macro, /* µ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_micro_sign + COMPOSE_SEQ_LINUX(&kp M &kp U) + #else + UNICODE_SEQ_LINUX(&kp B &kp N5) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_micro_sign + COMPOSE_SEQ_MACOS(&kp LA(M)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp N5) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_micro_sign + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N8 &kp KP_N1) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp N5) + #endif + #endif + ) + world_micro_sign: world_micro_sign { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_micro_sign_macro>, <&world_micro_sign_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_micro_sign +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + + // + // characters + // + UNICODE(world_i_acute_lower_macro, /* í */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_acute_lower + COMPOSE_SEQ_LINUX(&kp SQT &kp I) + #else + UNICODE_SEQ_LINUX(&kp E &kp D) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_acute_lower + COMPOSE_SEQ_MACOS(&kp LA(E) &kp I) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp D) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_acute_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N7) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp D) + #endif + #endif + ) + world_i_acute_lower: world_i_acute_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_acute_lower_macro>, <&world_i_acute_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_i_acute_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_i_acute_upper_macro, /* Í */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_acute_upper + COMPOSE_SEQ_LINUX(&kp SQT &kp LS(I)) + #else + UNICODE_SEQ_LINUX(&kp C &kp D) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_acute_upper + COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(I)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp D) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_acute_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N5) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp D) + #endif + #endif + ) + world_i_acute_upper: world_i_acute_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_acute_upper_macro>, <&world_i_acute_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_i_acute_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_i_acute: world_i_acute { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_acute_lower>, <&world_i_acute_upper>; + mods = ; + }; + UNICODE(world_i_diaeresis_lower_macro, /* ï */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_lower + COMPOSE_SEQ_LINUX(&kp DQT &kp I) + #else + UNICODE_SEQ_LINUX(&kp E &kp F) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_lower + COMPOSE_SEQ_MACOS(&kp LA(U) &kp I) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp F) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N9) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp F) + #endif + #endif + ) + world_i_diaeresis_lower: world_i_diaeresis_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_diaeresis_lower_macro>, <&world_i_diaeresis_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_i_diaeresis_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_i_diaeresis_upper_macro, /* Ï */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_upper + COMPOSE_SEQ_LINUX(&kp DQT &kp LS(I)) + #else + UNICODE_SEQ_LINUX(&kp C &kp F) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_upper + COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(I)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp F) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N7) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp F) + #endif + #endif + ) + world_i_diaeresis_upper: world_i_diaeresis_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_diaeresis_upper_macro>, <&world_i_diaeresis_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_i_diaeresis_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_i_diaeresis: world_i_diaeresis { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_diaeresis_lower>, <&world_i_diaeresis_upper>; + mods = ; + }; + UNICODE(world_i_circumflex_lower_macro, /* î */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_lower + COMPOSE_SEQ_LINUX(&kp CARET &kp I) + #else + UNICODE_SEQ_LINUX(&kp E &kp E) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_lower + COMPOSE_SEQ_MACOS(&kp LA(I) &kp I) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp E) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N8) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp E) + #endif + #endif + ) + world_i_circumflex_lower: world_i_circumflex_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_circumflex_lower_macro>, <&world_i_circumflex_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_i_circumflex_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_i_circumflex_upper_macro, /* Î */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_upper + COMPOSE_SEQ_LINUX(&kp CARET &kp LS(I)) + #else + UNICODE_SEQ_LINUX(&kp C &kp E) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_upper + COMPOSE_SEQ_MACOS(&kp LA(I) &kp LS(I)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp E) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N6) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp E) + #endif + #endif + ) + world_i_circumflex_upper: world_i_circumflex_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_circumflex_upper_macro>, <&world_i_circumflex_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_i_circumflex_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_i_circumflex: world_i_circumflex { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_circumflex_lower>, <&world_i_circumflex_upper>; + mods = ; + }; + UNICODE(world_i_grave_lower_macro, /* ì */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_grave_lower + COMPOSE_SEQ_LINUX(&kp GRAVE &kp I) + #else + UNICODE_SEQ_LINUX(&kp E &kp C) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_grave_lower + COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp I) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp C) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_grave_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N6) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp C) + #endif + #endif + ) + world_i_grave_lower: world_i_grave_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_grave_lower_macro>, <&world_i_grave_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_i_grave_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_i_grave_upper_macro, /* Ì */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_grave_upper + COMPOSE_SEQ_LINUX(&kp GRAVE &kp LS(I)) + #else + UNICODE_SEQ_LINUX(&kp C &kp C) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_grave_upper + COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp LS(I)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp C) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_i_grave_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N6) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp C) + #endif + #endif + ) + world_i_grave_upper: world_i_grave_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_grave_upper_macro>, <&world_i_grave_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_i_grave_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_i_grave: world_i_grave { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_grave_lower>, <&world_i_grave_upper>; + mods = ; + }; + UNICODE(world_e_acute_lower_macro, /* é */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_acute_lower + COMPOSE_SEQ_LINUX(&kp SQT &kp E) + #else + UNICODE_SEQ_LINUX(&kp E &kp N9) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_acute_lower + COMPOSE_SEQ_MACOS(&kp LA(E) &kp E) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N9) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_acute_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N3) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N9) + #endif + #endif + ) + world_e_acute_lower: world_e_acute_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_acute_lower_macro>, <&world_e_acute_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_e_acute_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_e_acute_upper_macro, /* É */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_acute_upper + COMPOSE_SEQ_LINUX(&kp SQT &kp LS(E)) + #else + UNICODE_SEQ_LINUX(&kp C &kp N9) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_acute_upper + COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(E)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N9) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_acute_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N1) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N9) + #endif + #endif + ) + world_e_acute_upper: world_e_acute_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_acute_upper_macro>, <&world_e_acute_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_e_acute_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_e_acute: world_e_acute { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_acute_lower>, <&world_e_acute_upper>; + mods = ; + }; + UNICODE(world_e_diaeresis_lower_macro, /* ë */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_lower + COMPOSE_SEQ_LINUX(&kp DQT &kp E) + #else + UNICODE_SEQ_LINUX(&kp E &kp B) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_lower + COMPOSE_SEQ_MACOS(&kp LA(U) &kp E) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp B) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N5) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp B) + #endif + #endif + ) + world_e_diaeresis_lower: world_e_diaeresis_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_diaeresis_lower_macro>, <&world_e_diaeresis_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_e_diaeresis_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_e_diaeresis_upper_macro, /* Ë */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_upper + COMPOSE_SEQ_LINUX(&kp DQT &kp LS(E)) + #else + UNICODE_SEQ_LINUX(&kp C &kp B) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_upper + COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(E)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp B) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N3) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp B) + #endif + #endif + ) + world_e_diaeresis_upper: world_e_diaeresis_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_diaeresis_upper_macro>, <&world_e_diaeresis_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_e_diaeresis_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_e_diaeresis: world_e_diaeresis { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_diaeresis_lower>, <&world_e_diaeresis_upper>; + mods = ; + }; + UNICODE(world_e_circumflex_lower_macro, /* ê */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_lower + COMPOSE_SEQ_LINUX(&kp CARET &kp E) + #else + UNICODE_SEQ_LINUX(&kp E &kp A) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_lower + COMPOSE_SEQ_MACOS(&kp LA(I) &kp E) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp A) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N4) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp A) + #endif + #endif + ) + world_e_circumflex_lower: world_e_circumflex_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_circumflex_lower_macro>, <&world_e_circumflex_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_e_circumflex_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_e_circumflex_upper_macro, /* Ê */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_upper + COMPOSE_SEQ_LINUX(&kp CARET &kp LS(E)) + #else + UNICODE_SEQ_LINUX(&kp C &kp A) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_upper + COMPOSE_SEQ_MACOS(&kp LA(I) &kp LS(E)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp A) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N2) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp A) + #endif + #endif + ) + world_e_circumflex_upper: world_e_circumflex_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_circumflex_upper_macro>, <&world_e_circumflex_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_e_circumflex_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_e_circumflex: world_e_circumflex { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_circumflex_lower>, <&world_e_circumflex_upper>; + mods = ; + }; + UNICODE(world_e_grave_lower_macro, /* è */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_grave_lower + COMPOSE_SEQ_LINUX(&kp GRAVE &kp E) + #else + UNICODE_SEQ_LINUX(&kp E &kp N8) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_grave_lower + COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp E) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N8) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_grave_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N2) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N8) + #endif + #endif + ) + world_e_grave_lower: world_e_grave_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_grave_lower_macro>, <&world_e_grave_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_e_grave_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_e_grave_upper_macro, /* È */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_grave_upper + COMPOSE_SEQ_LINUX(&kp GRAVE &kp LS(E)) + #else + UNICODE_SEQ_LINUX(&kp C &kp N8) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_grave_upper + COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp LS(E)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N8) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_grave_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N0) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N8) + #endif + #endif + ) + world_e_grave_upper: world_e_grave_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_grave_upper_macro>, <&world_e_grave_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_e_grave_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_e_grave: world_e_grave { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_grave_lower>, <&world_e_grave_upper>; + mods = ; + }; + UNICODE(world_e_ae_lower_macro, /* æ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_ae_lower + COMPOSE_SEQ_LINUX(&kp A &kp E) + #else + UNICODE_SEQ_LINUX(&kp E &kp N6) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_ae_lower + COMPOSE_SEQ_MACOS(&kp LA(SQT)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N6) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_ae_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N0) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N6) + #endif + #endif + ) + world_e_ae_lower: world_e_ae_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_ae_lower_macro>, <&world_e_ae_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_e_ae_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_e_ae_upper_macro, /* Æ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_ae_upper + COMPOSE_SEQ_LINUX(&kp LS(A) &kp LS(E)) + #else + UNICODE_SEQ_LINUX(&kp C &kp N6) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_ae_upper + COMPOSE_SEQ_MACOS(&kp LA(LS(SQT))) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N6) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_e_ae_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N8) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N6) + #endif + #endif + ) + world_e_ae_upper: world_e_ae_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_ae_upper_macro>, <&world_e_ae_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_e_ae_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_e_ae: world_e_ae { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_ae_lower>, <&world_e_ae_upper>; + mods = ; + }; + UNICODE(world_a_acute_lower_macro, /* á */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_acute_lower + COMPOSE_SEQ_LINUX(&kp SQT &kp A) + #else + UNICODE_SEQ_LINUX(&kp E &kp N1) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_acute_lower + COMPOSE_SEQ_MACOS(&kp LA(E) &kp A) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N1) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_acute_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N5) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N1) + #endif + #endif + ) + world_a_acute_lower: world_a_acute_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_acute_lower_macro>, <&world_a_acute_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_acute_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_a_acute_upper_macro, /* Á */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_acute_upper + COMPOSE_SEQ_LINUX(&kp SQT &kp LS(A)) + #else + UNICODE_SEQ_LINUX(&kp C &kp N1) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_acute_upper + COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(A)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N1) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_acute_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N3) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N1) + #endif + #endif + ) + world_a_acute_upper: world_a_acute_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_acute_upper_macro>, <&world_a_acute_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_acute_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_a_acute: world_a_acute { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_acute_lower>, <&world_a_acute_upper>; + mods = ; + }; + UNICODE(world_a_diaeresis_lower_macro, /* ä */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_lower + COMPOSE_SEQ_LINUX(&kp DQT &kp A) + #else + UNICODE_SEQ_LINUX(&kp E &kp N4) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_lower + COMPOSE_SEQ_MACOS(&kp LA(U) &kp A) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N4) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N8) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N4) + #endif + #endif + ) + world_a_diaeresis_lower: world_a_diaeresis_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_diaeresis_lower_macro>, <&world_a_diaeresis_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_diaeresis_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_a_diaeresis_upper_macro, /* Ä */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_upper + COMPOSE_SEQ_LINUX(&kp DQT &kp LS(A)) + #else + UNICODE_SEQ_LINUX(&kp C &kp N4) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_upper + COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(A)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N4) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N6) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N4) + #endif + #endif + ) + world_a_diaeresis_upper: world_a_diaeresis_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_diaeresis_upper_macro>, <&world_a_diaeresis_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_diaeresis_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_a_diaeresis: world_a_diaeresis { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_diaeresis_lower>, <&world_a_diaeresis_upper>; + mods = ; + }; + UNICODE(world_a_circumflex_lower_macro, /* â */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_lower + COMPOSE_SEQ_LINUX(&kp CARET &kp A) + #else + UNICODE_SEQ_LINUX(&kp E &kp N2) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_lower + COMPOSE_SEQ_MACOS(&kp LA(I) &kp A) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N2) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N6) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N2) + #endif + #endif + ) + world_a_circumflex_lower: world_a_circumflex_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_circumflex_lower_macro>, <&world_a_circumflex_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_circumflex_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_a_circumflex_upper_macro, /* Â */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_upper + COMPOSE_SEQ_LINUX(&kp CARET &kp LS(A)) + #else + UNICODE_SEQ_LINUX(&kp C &kp N2) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_upper + COMPOSE_SEQ_MACOS(&kp LA(I) &kp LS(A)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N2) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N4) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N2) + #endif + #endif + ) + world_a_circumflex_upper: world_a_circumflex_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_circumflex_upper_macro>, <&world_a_circumflex_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_circumflex_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_a_circumflex: world_a_circumflex { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_circumflex_lower>, <&world_a_circumflex_upper>; + mods = ; + }; + UNICODE(world_a_grave_lower_macro, /* à */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_grave_lower + COMPOSE_SEQ_LINUX(&kp GRAVE &kp A) + #else + UNICODE_SEQ_LINUX(&kp E &kp N0) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_grave_lower + COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp A) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N0) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_grave_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N4) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N0) + #endif + #endif + ) + world_a_grave_lower: world_a_grave_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_grave_lower_macro>, <&world_a_grave_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_grave_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_a_grave_upper_macro, /* À */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_grave_upper + COMPOSE_SEQ_LINUX(&kp GRAVE &kp LS(A)) + #else + UNICODE_SEQ_LINUX(&kp C &kp N0) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_grave_upper + COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp LS(A)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N0) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_grave_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N2) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N0) + #endif + #endif + ) + world_a_grave_upper: world_a_grave_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_grave_upper_macro>, <&world_a_grave_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_grave_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_a_grave: world_a_grave { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_grave_lower>, <&world_a_grave_upper>; + mods = ; + }; + UNICODE(world_a_tilde_lower_macro, /* ã */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_tilde_lower + COMPOSE_SEQ_LINUX(&kp TILDE &kp A) + #else + UNICODE_SEQ_LINUX(&kp E &kp N3) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_tilde_lower + COMPOSE_SEQ_MACOS(&kp LA(N) &kp A) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N3) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_tilde_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N7) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N3) + #endif + #endif + ) + world_a_tilde_lower: world_a_tilde_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_tilde_lower_macro>, <&world_a_tilde_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_tilde_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_a_tilde_upper_macro, /* Ã */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_tilde_upper + COMPOSE_SEQ_LINUX(&kp TILDE &kp LS(A)) + #else + UNICODE_SEQ_LINUX(&kp C &kp N3) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_tilde_upper + COMPOSE_SEQ_MACOS(&kp LA(N) &kp LS(A)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N3) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_tilde_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N5) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N3) + #endif + #endif + ) + world_a_tilde_upper: world_a_tilde_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_tilde_upper_macro>, <&world_a_tilde_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_tilde_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_a_tilde: world_a_tilde { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_tilde_lower>, <&world_a_tilde_upper>; + mods = ; + }; + UNICODE(world_a_ring_lower_macro, /* å */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_ring_lower + COMPOSE_SEQ_LINUX(&kp O &kp A) + #else + UNICODE_SEQ_LINUX(&kp E &kp N5) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_ring_lower + COMPOSE_SEQ_MACOS(&kp LA(A)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N5) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_ring_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N9) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N5) + #endif + #endif + ) + world_a_ring_lower: world_a_ring_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_ring_lower_macro>, <&world_a_ring_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_ring_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_a_ring_upper_macro, /* Å */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_ring_upper + COMPOSE_SEQ_LINUX(&kp O &kp LS(A)) + #else + UNICODE_SEQ_LINUX(&kp C &kp N5) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_ring_upper + COMPOSE_SEQ_MACOS(&kp LA(LS(A))) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N5) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_a_ring_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N7) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N5) + #endif + #endif + ) + world_a_ring_upper: world_a_ring_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_ring_upper_macro>, <&world_a_ring_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_a_ring_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_a_ring: world_a_ring { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_ring_lower>, <&world_a_ring_upper>; + mods = ; + }; + UNICODE(world_y_acute_lower_macro, /* ý */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_acute_lower + COMPOSE_SEQ_LINUX(&kp SQT &kp Y) + #else + UNICODE_SEQ_LINUX(&kp F &kp D) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_acute_lower + COMPOSE_SEQ_MACOS(&kp LA(E) &kp Y) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp D) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_acute_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N5 &kp KP_N3) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp D) + #endif + #endif + ) + world_y_acute_lower: world_y_acute_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_y_acute_lower_macro>, <&world_y_acute_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_y_acute_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_y_acute_upper_macro, /* Ý */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_acute_upper + COMPOSE_SEQ_LINUX(&kp SQT &kp LS(Y)) + #else + UNICODE_SEQ_LINUX(&kp D &kp D) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_acute_upper + COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(Y)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp D) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_acute_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N1) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp D) + #endif + #endif + ) + world_y_acute_upper: world_y_acute_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_y_acute_upper_macro>, <&world_y_acute_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_y_acute_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_y_acute: world_y_acute { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_y_acute_lower>, <&world_y_acute_upper>; + mods = ; + }; + UNICODE(world_y_diaeresis_lower_macro, /* ÿ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_lower + COMPOSE_SEQ_LINUX(&kp DQT &kp Y) + #else + UNICODE_SEQ_LINUX(&kp F &kp F) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_lower + COMPOSE_SEQ_MACOS(&kp LA(U) &kp Y) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp F) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N5 &kp KP_N5) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp F) + #endif + #endif + ) + world_y_diaeresis_lower: world_y_diaeresis_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_y_diaeresis_lower_macro>, <&world_y_diaeresis_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_y_diaeresis_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_y_diaeresis_upper_macro, /* Ÿ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_upper + COMPOSE_SEQ_LINUX(&kp DQT &kp LS(Y)) + #else + UNICODE_SEQ_LINUX(&kp N1 &kp N7 &kp N8) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_upper + COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(Y)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N1 &kp N7 &kp N8) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N5 &kp KP_N9) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp N7 &kp N8) + #endif + #endif + ) + world_y_diaeresis_upper: world_y_diaeresis_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_y_diaeresis_upper_macro>, <&world_y_diaeresis_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_y_diaeresis_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_y_diaeresis: world_y_diaeresis { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_y_diaeresis_lower>, <&world_y_diaeresis_upper>; + mods = ; + }; + UNICODE(world_o_acute_lower_macro, /* ó */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_acute_lower + COMPOSE_SEQ_LINUX(&kp SQT &kp O) + #else + UNICODE_SEQ_LINUX(&kp F &kp N3) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_acute_lower + COMPOSE_SEQ_MACOS(&kp LA(E) &kp O) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N3) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_acute_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N3) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N3) + #endif + #endif + ) + world_o_acute_lower: world_o_acute_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_acute_lower_macro>, <&world_o_acute_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_acute_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_o_acute_upper_macro, /* Ó */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_acute_upper + COMPOSE_SEQ_LINUX(&kp SQT &kp LS(O)) + #else + UNICODE_SEQ_LINUX(&kp D &kp N3) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_acute_upper + COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(O)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N3) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_acute_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N1) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N3) + #endif + #endif + ) + world_o_acute_upper: world_o_acute_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_acute_upper_macro>, <&world_o_acute_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_acute_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_o_acute: world_o_acute { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_acute_lower>, <&world_o_acute_upper>; + mods = ; + }; + UNICODE(world_o_diaeresis_lower_macro, /* ö */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_lower + COMPOSE_SEQ_LINUX(&kp DQT &kp O) + #else + UNICODE_SEQ_LINUX(&kp F &kp N6) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_lower + COMPOSE_SEQ_MACOS(&kp LA(U) &kp O) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N6) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N6) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N6) + #endif + #endif + ) + world_o_diaeresis_lower: world_o_diaeresis_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_diaeresis_lower_macro>, <&world_o_diaeresis_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_diaeresis_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_o_diaeresis_upper_macro, /* Ö */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_upper + COMPOSE_SEQ_LINUX(&kp DQT &kp LS(O)) + #else + UNICODE_SEQ_LINUX(&kp D &kp N6) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_upper + COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(O)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N6) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N4) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N6) + #endif + #endif + ) + world_o_diaeresis_upper: world_o_diaeresis_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_diaeresis_upper_macro>, <&world_o_diaeresis_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_diaeresis_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_o_diaeresis: world_o_diaeresis { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_diaeresis_lower>, <&world_o_diaeresis_upper>; + mods = ; + }; + UNICODE(world_o_circumflex_lower_macro, /* ô */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_lower + COMPOSE_SEQ_LINUX(&kp CARET &kp O) + #else + UNICODE_SEQ_LINUX(&kp F &kp N4) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_lower + COMPOSE_SEQ_MACOS(&kp LA(I) &kp O) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N4) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N4) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N4) + #endif + #endif + ) + world_o_circumflex_lower: world_o_circumflex_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_circumflex_lower_macro>, <&world_o_circumflex_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_circumflex_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_o_circumflex_upper_macro, /* Ô */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_upper + COMPOSE_SEQ_LINUX(&kp CARET &kp LS(O)) + #else + UNICODE_SEQ_LINUX(&kp D &kp N4) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_upper + COMPOSE_SEQ_MACOS(&kp LA(I) &kp LS(O)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N4) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N2) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N4) + #endif + #endif + ) + world_o_circumflex_upper: world_o_circumflex_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_circumflex_upper_macro>, <&world_o_circumflex_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_circumflex_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_o_circumflex: world_o_circumflex { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_circumflex_lower>, <&world_o_circumflex_upper>; + mods = ; + }; + UNICODE(world_o_grave_lower_macro, /* ò */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_grave_lower + COMPOSE_SEQ_LINUX(&kp GRAVE &kp O) + #else + UNICODE_SEQ_LINUX(&kp F &kp N2) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_grave_lower + COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp O) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N2) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_grave_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N2) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N2) + #endif + #endif + ) + world_o_grave_lower: world_o_grave_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_grave_lower_macro>, <&world_o_grave_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_grave_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_o_grave_upper_macro, /* Ò */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_grave_upper + COMPOSE_SEQ_LINUX(&kp GRAVE &kp LS(O)) + #else + UNICODE_SEQ_LINUX(&kp D &kp N2) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_grave_upper + COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp LS(O)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N2) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_grave_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N0) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N2) + #endif + #endif + ) + world_o_grave_upper: world_o_grave_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_grave_upper_macro>, <&world_o_grave_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_grave_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_o_grave: world_o_grave { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_grave_lower>, <&world_o_grave_upper>; + mods = ; + }; + UNICODE(world_o_tilde_lower_macro, /* õ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_tilde_lower + COMPOSE_SEQ_LINUX(&kp TILDE &kp O) + #else + UNICODE_SEQ_LINUX(&kp F &kp N5) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_tilde_lower + COMPOSE_SEQ_MACOS(&kp LA(N) &kp O) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N5) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_tilde_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N5) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N5) + #endif + #endif + ) + world_o_tilde_lower: world_o_tilde_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_tilde_lower_macro>, <&world_o_tilde_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_tilde_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_o_tilde_upper_macro, /* Õ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_tilde_upper + COMPOSE_SEQ_LINUX(&kp TILDE &kp LS(O)) + #else + UNICODE_SEQ_LINUX(&kp D &kp N5) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_tilde_upper + COMPOSE_SEQ_MACOS(&kp LA(N) &kp LS(O)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N5) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_tilde_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N3) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N5) + #endif + #endif + ) + world_o_tilde_upper: world_o_tilde_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_tilde_upper_macro>, <&world_o_tilde_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_tilde_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_o_tilde: world_o_tilde { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_tilde_lower>, <&world_o_tilde_upper>; + mods = ; + }; + UNICODE(world_o_slash_lower_macro, /* ø */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_slash_lower + COMPOSE_SEQ_LINUX(&kp FSLH &kp O) + #else + UNICODE_SEQ_LINUX(&kp F &kp N8) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_slash_lower + COMPOSE_SEQ_MACOS(&kp LA(O)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N8) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_slash_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N8) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N8) + #endif + #endif + ) + world_o_slash_lower: world_o_slash_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_slash_lower_macro>, <&world_o_slash_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_slash_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_o_slash_upper_macro, /* Ø */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_slash_upper + COMPOSE_SEQ_LINUX(&kp FSLH &kp LS(O)) + #else + UNICODE_SEQ_LINUX(&kp D &kp N8) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_slash_upper + COMPOSE_SEQ_MACOS(&kp LA(LS(O))) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N8) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_o_slash_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N6) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N8) + #endif + #endif + ) + world_o_slash_upper: world_o_slash_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_slash_upper_macro>, <&world_o_slash_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_o_slash_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_o_slash: world_o_slash { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_slash_lower>, <&world_o_slash_upper>; + mods = ; + }; + UNICODE(world_u_acute_lower_macro, /* ú */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_acute_lower + COMPOSE_SEQ_LINUX(&kp SQT &kp U) + #else + UNICODE_SEQ_LINUX(&kp F &kp A) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_acute_lower + COMPOSE_SEQ_MACOS(&kp LA(E) &kp U) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp A) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_acute_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N5 &kp KP_N0) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp A) + #endif + #endif + ) + world_u_acute_lower: world_u_acute_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_acute_lower_macro>, <&world_u_acute_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_u_acute_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_u_acute_upper_macro, /* Ú */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_acute_upper + COMPOSE_SEQ_LINUX(&kp SQT &kp LS(U)) + #else + UNICODE_SEQ_LINUX(&kp D &kp A) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_acute_upper + COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(U)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp A) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_acute_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N8) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp A) + #endif + #endif + ) + world_u_acute_upper: world_u_acute_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_acute_upper_macro>, <&world_u_acute_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_u_acute_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_u_acute: world_u_acute { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_acute_lower>, <&world_u_acute_upper>; + mods = ; + }; + UNICODE(world_u_diaeresis_lower_macro, /* ü */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_lower + COMPOSE_SEQ_LINUX(&kp DQT &kp U) + #else + UNICODE_SEQ_LINUX(&kp F &kp C) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_lower + COMPOSE_SEQ_MACOS(&kp LA(U) &kp U) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp C) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N5 &kp KP_N2) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp C) + #endif + #endif + ) + world_u_diaeresis_lower: world_u_diaeresis_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_diaeresis_lower_macro>, <&world_u_diaeresis_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_u_diaeresis_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_u_diaeresis_upper_macro, /* Ü */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_upper + COMPOSE_SEQ_LINUX(&kp DQT &kp LS(U)) + #else + UNICODE_SEQ_LINUX(&kp D &kp C) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_upper + COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(U)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp C) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N0) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp C) + #endif + #endif + ) + world_u_diaeresis_upper: world_u_diaeresis_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_diaeresis_upper_macro>, <&world_u_diaeresis_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_u_diaeresis_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_u_diaeresis: world_u_diaeresis { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_diaeresis_lower>, <&world_u_diaeresis_upper>; + mods = ; + }; + UNICODE(world_u_circumflex_lower_macro, /* û */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_lower + COMPOSE_SEQ_LINUX(&kp CARET &kp U) + #else + UNICODE_SEQ_LINUX(&kp F &kp B) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_lower + COMPOSE_SEQ_MACOS(&kp LA(I) &kp U) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp B) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N5 &kp KP_N1) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp B) + #endif + #endif + ) + world_u_circumflex_lower: world_u_circumflex_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_circumflex_lower_macro>, <&world_u_circumflex_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_u_circumflex_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_u_circumflex_upper_macro, /* Û */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_upper + COMPOSE_SEQ_LINUX(&kp CARET &kp LS(U)) + #else + UNICODE_SEQ_LINUX(&kp D &kp B) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_upper + COMPOSE_SEQ_MACOS(&kp LA(I) &kp LS(U)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp B) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N9) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp B) + #endif + #endif + ) + world_u_circumflex_upper: world_u_circumflex_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_circumflex_upper_macro>, <&world_u_circumflex_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_u_circumflex_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_u_circumflex: world_u_circumflex { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_circumflex_lower>, <&world_u_circumflex_upper>; + mods = ; + }; + UNICODE(world_u_grave_lower_macro, /* ù */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_grave_lower + COMPOSE_SEQ_LINUX(&kp GRAVE &kp U) + #else + UNICODE_SEQ_LINUX(&kp F &kp N9) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_grave_lower + COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp U) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N9) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_grave_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N9) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N9) + #endif + #endif + ) + world_u_grave_lower: world_u_grave_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_grave_lower_macro>, <&world_u_grave_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_u_grave_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_u_grave_upper_macro, /* Ù */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_grave_upper + COMPOSE_SEQ_LINUX(&kp GRAVE &kp LS(U)) + #else + UNICODE_SEQ_LINUX(&kp D &kp N9) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_grave_upper + COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp LS(U)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N9) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_u_grave_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N7) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N9) + #endif + #endif + ) + world_u_grave_upper: world_u_grave_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_grave_upper_macro>, <&world_u_grave_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_u_grave_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_u_grave: world_u_grave { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_grave_lower>, <&world_u_grave_upper>; + mods = ; + }; + UNICODE(world_consonants_cedilla_lower_macro, /* ç */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_lower + COMPOSE_SEQ_LINUX(&kp COMMA &kp C) + #else + UNICODE_SEQ_LINUX(&kp E &kp N7) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_lower + COMPOSE_SEQ_MACOS(&kp LA(C)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N7) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N1) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N7) + #endif + #endif + ) + world_consonants_cedilla_lower: world_consonants_cedilla_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_cedilla_lower_macro>, <&world_consonants_cedilla_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_consonants_cedilla_upper_macro, /* Ç */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_upper + COMPOSE_SEQ_LINUX(&kp COMMA &kp LS(C)) + #else + UNICODE_SEQ_LINUX(&kp C &kp N7) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_upper + COMPOSE_SEQ_MACOS(&kp LA(LS(C))) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N7) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N9) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N7) + #endif + #endif + ) + world_consonants_cedilla_upper: world_consonants_cedilla_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_cedilla_upper_macro>, <&world_consonants_cedilla_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_consonants_cedilla: world_consonants_cedilla { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_cedilla_lower>, <&world_consonants_cedilla_upper>; + mods = ; + }; + UNICODE(world_consonants_eszett_lower_macro, /* ß */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_eszett_lower + COMPOSE_SEQ_LINUX(&kp S &kp S) + #else + UNICODE_SEQ_LINUX(&kp D &kp F) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_eszett_lower + COMPOSE_SEQ_MACOS(&kp LA(S)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp F) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_eszett_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N3) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp F) + #endif + #endif + ) + world_consonants_eszett_lower: world_consonants_eszett_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_eszett_lower_macro>, <&world_consonants_eszett_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_eszett_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_consonants_eszett_upper_macro, /* ẞ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_eszett_upper + COMPOSE_SEQ_LINUX(&kp LS(S) &kp LS(S)) + #else + UNICODE_SEQ_LINUX(&kp N1 &kp E &kp N9 &kp E) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_eszett_upper + COMPOSE_SEQ_MACOS(&kp LA(LS(S))) + #else + UNICODE_SEQ_MACOS(&kp N1 &kp E &kp N9 &kp E) + #endif + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp E &kp N9 &kp E) + #endif + ) + world_consonants_eszett_upper: world_consonants_eszett_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_eszett_upper_macro>, <&world_consonants_eszett_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_eszett_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_consonants_eszett: world_consonants_eszett { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_eszett_lower>, <&world_consonants_eszett_upper>; + mods = ; + }; + UNICODE(world_consonants_ntilde_lower_macro, /* ñ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_lower + COMPOSE_SEQ_LINUX(&kp TILDE &kp N) + #else + UNICODE_SEQ_LINUX(&kp F &kp N1) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_lower + COMPOSE_SEQ_MACOS(&kp LA(N) &kp N) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N1) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_lower + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N1) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N1) + #endif + #endif + ) + world_consonants_ntilde_lower: world_consonants_ntilde_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_ntilde_lower_macro>, <&world_consonants_ntilde_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_consonants_ntilde_upper_macro, /* Ñ */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_upper + COMPOSE_SEQ_LINUX(&kp TILDE &kp LS(N)) + #else + UNICODE_SEQ_LINUX(&kp D &kp N1) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_upper + COMPOSE_SEQ_MACOS(&kp LA(N) &kp LS(N)) + #else + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N1) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_upper + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N9) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N1) + #endif + #endif + ) + world_consonants_ntilde_upper: world_consonants_ntilde_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_ntilde_upper_macro>, <&world_consonants_ntilde_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_consonants_ntilde: world_consonants_ntilde { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_ntilde_lower>, <&world_consonants_ntilde_upper>; + mods = ; + }; + UNICODE(world_quotes_left_angle_lower_macro, /* ‹ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N3 &kp N9) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N3 &kp N9) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N3 &kp N9) + #endif + ) + world_quotes_left_angle_lower: world_quotes_left_angle_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_angle_lower_macro>, <&world_quotes_left_angle_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_angle_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_quotes_left_angle_upper_macro, /* « */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp A &kp B) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp B) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp B) + #endif + ) + world_quotes_left_angle_upper: world_quotes_left_angle_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_angle_upper_macro>, <&world_quotes_left_angle_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_angle_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_quotes_left_angle: world_quotes_left_angle { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_angle_lower>, <&world_quotes_left_angle_upper>; + mods = ; + }; + UNICODE(world_quotes_left_curly_lower_macro, /* ‘ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp N8) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp N8) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp N8) + #endif + ) + world_quotes_left_curly_lower: world_quotes_left_curly_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_curly_lower_macro>, <&world_quotes_left_curly_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_curly_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_quotes_left_curly_upper_macro, /* “ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp C) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp C) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp C) + #endif + ) + world_quotes_left_curly_upper: world_quotes_left_curly_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_curly_upper_macro>, <&world_quotes_left_curly_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_curly_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_quotes_left_curly: world_quotes_left_curly { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_curly_lower>, <&world_quotes_left_curly_upper>; + mods = ; + }; + UNICODE(world_quotes_left_low_lower_macro, /* ‚ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp A) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp A) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp A) + #endif + ) + world_quotes_left_low_lower: world_quotes_left_low_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_low_lower_macro>, <&world_quotes_left_low_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_low_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_quotes_left_low_upper_macro, /* „ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp E) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp E) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp E) + #endif + ) + world_quotes_left_low_upper: world_quotes_left_low_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_low_upper_macro>, <&world_quotes_left_low_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_low_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_quotes_left_low: world_quotes_left_low { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_low_lower>, <&world_quotes_left_low_upper>; + mods = ; + }; + UNICODE(world_quotes_left_corner1_lower_macro, /* 「 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N3 &kp N0 &kp N0 &kp C) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N3 &kp N0 &kp N0 &kp C) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N3 &kp N0 &kp N0 &kp C) + #endif + ) + world_quotes_left_corner1_lower: world_quotes_left_corner1_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_corner1_lower_macro>, <&world_quotes_left_corner1_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_corner1_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_quotes_left_corner1_upper_macro, /* ﹁ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp F &kp E &kp N4 &kp N1) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp F &kp E &kp N4 &kp N1) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N4 &kp N1) + #endif + ) + world_quotes_left_corner1_upper: world_quotes_left_corner1_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_corner1_upper_macro>, <&world_quotes_left_corner1_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_corner1_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_quotes_left_corner1: world_quotes_left_corner1 { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_corner1_lower>, <&world_quotes_left_corner1_upper>; + mods = ; + }; + UNICODE(world_quotes_left_corner2_lower_macro, /* 『 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N3 &kp N0 &kp N0 &kp E) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N3 &kp N0 &kp N0 &kp E) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N3 &kp N0 &kp N0 &kp E) + #endif + ) + world_quotes_left_corner2_lower: world_quotes_left_corner2_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_corner2_lower_macro>, <&world_quotes_left_corner2_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_corner2_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_quotes_left_corner2_upper_macro, /* ﹃ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp F &kp E &kp N4 &kp N3) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp F &kp E &kp N4 &kp N3) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N4 &kp N3) + #endif + ) + world_quotes_left_corner2_upper: world_quotes_left_corner2_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_corner2_upper_macro>, <&world_quotes_left_corner2_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_corner2_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_quotes_left_corner2: world_quotes_left_corner2 { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_corner2_lower>, <&world_quotes_left_corner2_upper>; + mods = ; + }; + UNICODE(world_quotes_left_grave_macro, /* ` */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N6 &kp N0) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp N6 &kp N0) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N6 &kp N0) + #endif + ) + world_quotes_left_grave: world_quotes_left_grave { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_grave_macro>, <&world_quotes_left_grave_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_grave +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_quotes_right_angle_lower_macro, /* › */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N3 &kp A) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N3 &kp A) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N3 &kp A) + #endif + ) + world_quotes_right_angle_lower: world_quotes_right_angle_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_angle_lower_macro>, <&world_quotes_right_angle_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_angle_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_quotes_right_angle_upper_macro, /* » */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp B &kp B) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp B) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp B) + #endif + ) + world_quotes_right_angle_upper: world_quotes_right_angle_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_angle_upper_macro>, <&world_quotes_right_angle_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_angle_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_quotes_right_angle: world_quotes_right_angle { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_angle_lower>, <&world_quotes_right_angle_upper>; + mods = ; + }; + UNICODE(world_quotes_right_curly_lower_macro, /* ’ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp N9) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp N9) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp N9) + #endif + ) + world_quotes_right_curly_lower: world_quotes_right_curly_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_curly_lower_macro>, <&world_quotes_right_curly_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_curly_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_quotes_right_curly_upper_macro, /* ” */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp D) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp D) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp D) + #endif + ) + world_quotes_right_curly_upper: world_quotes_right_curly_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_curly_upper_macro>, <&world_quotes_right_curly_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_curly_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_quotes_right_curly: world_quotes_right_curly { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_curly_lower>, <&world_quotes_right_curly_upper>; + mods = ; + }; + world_quotes_right_low: world_quotes_right_low { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_low_lower>, <&world_quotes_left_low_upper>; + mods = ; + }; + UNICODE(world_quotes_right_corner1_lower_macro, /* 」 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N3 &kp N0 &kp N0 &kp D) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N3 &kp N0 &kp N0 &kp D) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N3 &kp N0 &kp N0 &kp D) + #endif + ) + world_quotes_right_corner1_lower: world_quotes_right_corner1_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_corner1_lower_macro>, <&world_quotes_right_corner1_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_corner1_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_quotes_right_corner1_upper_macro, /* ﹂ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp F &kp E &kp N4 &kp N2) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp F &kp E &kp N4 &kp N2) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N4 &kp N2) + #endif + ) + world_quotes_right_corner1_upper: world_quotes_right_corner1_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_corner1_upper_macro>, <&world_quotes_right_corner1_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_corner1_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_quotes_right_corner1: world_quotes_right_corner1 { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_corner1_lower>, <&world_quotes_right_corner1_upper>; + mods = ; + }; + UNICODE(world_quotes_right_corner2_lower_macro, /* 』 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N3 &kp N0 &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N3 &kp N0 &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N3 &kp N0 &kp N0 &kp F) + #endif + ) + world_quotes_right_corner2_lower: world_quotes_right_corner2_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_corner2_lower_macro>, <&world_quotes_right_corner2_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_corner2_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_quotes_right_corner2_upper_macro, /* ﹄ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp F &kp E &kp N4 &kp N4) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp F &kp E &kp N4 &kp N4) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N4 &kp N4) + #endif + ) + world_quotes_right_corner2_upper: world_quotes_right_corner2_upper { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_corner2_upper_macro>, <&world_quotes_right_corner2_upper_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_corner2_upper +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_quotes_right_corner2: world_quotes_right_corner2 { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_corner2_lower>, <&world_quotes_right_corner2_upper>; + mods = ; + }; + UNICODE(world_quotes_right_grave_macro, /* ´ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp B &kp N4) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp N4) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp N4) + #endif + ) + world_quotes_right_grave: world_quotes_right_grave { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_grave_macro>, <&world_quotes_right_grave_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_grave +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_currency_dollar_lower_macro, /* $ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N4) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp N2 &kp N4) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N4) + #endif + ) + world_currency_dollar_lower: world_currency_dollar_lower { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_dollar_lower_macro>, <&world_currency_dollar_lower_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_currency_dollar_lower +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_currency_dollar: world_currency_dollar { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_dollar_lower>, <&world_currency_cent>; + mods = ; + }; + UNICODE(world_currency_yen_macro, /* ¥ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp A &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N5) + #endif + ) + world_currency_yen: world_currency_yen { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_yen_macro>, <&world_currency_yen_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_currency_yen +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_currency_euro_macro, /* € */ + #if UNICODE_TARGET_OS == 'L' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_currency_euro + COMPOSE_SEQ_LINUX(&kp E &kp EQUAL) + #else + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp A &kp C) + #endif + #elif UNICODE_TARGET_OS == 'M' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_currency_euro + COMPOSE_SEQ_MACOS(&kp LA(LS(N2))) + #else + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp A &kp C) + #endif + #elif UNICODE_TARGET_OS == 'W' + #ifdef WORLD_USE_COMPOSE + #define WORLD_USE_COMPOSE_FOR_world_currency_euro + COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N2 &kp KP_N8) + #else + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp A &kp C) + #endif + #endif + ) + world_currency_euro: world_currency_euro { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_euro_macro>, <&world_currency_euro_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_currency_euro +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_currency_won_macro, /* ₩ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp A &kp N9) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp A &kp N9) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp A &kp N9) + #endif + ) + world_currency_won: world_currency_won { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_won_macro>, <&world_currency_won_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_currency_won +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(world_currency_pound_macro, /* £ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp A &kp N3) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N3) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N3) + #endif + ) + world_currency_pound: world_currency_pound { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_pound_macro>, <&world_currency_pound_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_world_currency_pound +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + world_currency_generic: world_currency_generic { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_sign>, <&world_currency_crypto>; + mods = ; + }; + + // + // transforms + // + world_i_base: world_i_base { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_acute>, <&world_i_LCTL>; + mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_i_LCTL: world_i_LCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_diaeresis>, <&world_i_RCTL>; + mods = <(MOD_RCTL|MOD_RSFT)>; + }; + world_i_RCTL: world_i_RCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_i_circumflex>, <&world_i_grave>; + mods = <(MOD_RSFT)>; + }; + world_e_base: world_e_base { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_acute>, <&world_e_RALT>; + mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_e_RALT: world_e_RALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_ae>, <&world_e_LCTL>; + mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_e_LCTL: world_e_LCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_diaeresis>, <&world_e_RCTL>; + mods = <(MOD_RCTL|MOD_RSFT)>; + }; + world_e_RCTL: world_e_RCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_e_circumflex>, <&world_e_grave>; + mods = <(MOD_RSFT)>; + }; + world_a_base: world_a_base { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_acute>, <&world_a_LALT>; + mods = <(MOD_LALT|MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_a_LALT: world_a_LALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_tilde>, <&world_a_RALT>; + mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_a_RALT: world_a_RALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_ring>, <&world_a_LCTL>; + mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_a_LCTL: world_a_LCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_diaeresis>, <&world_a_RCTL>; + mods = <(MOD_RCTL|MOD_RSFT)>; + }; + world_a_RCTL: world_a_RCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_a_circumflex>, <&world_a_grave>; + mods = <(MOD_RSFT)>; + }; + world_y_base: world_y_base { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_y_acute>, <&world_y_diaeresis>; + mods = <(MOD_LCTL)>; + }; + world_o_base: world_o_base { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_acute>, <&world_o_LALT>; + mods = <(MOD_LALT|MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_o_LALT: world_o_LALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_tilde>, <&world_o_RALT>; + mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_o_RALT: world_o_RALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_slash>, <&world_o_LCTL>; + mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_o_LCTL: world_o_LCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_diaeresis>, <&world_o_RCTL>; + mods = <(MOD_RCTL|MOD_RSFT)>; + }; + world_o_RCTL: world_o_RCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_o_circumflex>, <&world_o_grave>; + mods = <(MOD_RSFT)>; + }; + world_u_base: world_u_base { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_acute>, <&world_u_LCTL>; + mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_u_LCTL: world_u_LCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_diaeresis>, <&world_u_RCTL>; + mods = <(MOD_RCTL|MOD_RSFT)>; + }; + world_u_RCTL: world_u_RCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_u_circumflex>, <&world_u_grave>; + mods = <(MOD_RSFT)>; + }; + world_consonants_base: world_consonants_base { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_cedilla>, <&world_consonants_LCTL>; + mods = <(MOD_LCTL|MOD_RCTL)>; + }; + world_consonants_LCTL: world_consonants_LCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_consonants_ntilde>, <&world_consonants_eszett>; + mods = <(MOD_RCTL)>; + }; + world_quotes_left_base: world_quotes_left_base { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_angle>, <&world_quotes_left_LALT>; + mods = <(MOD_LALT|MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_quotes_left_LALT: world_quotes_left_LALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_corner1>, <&world_quotes_left_RALT>; + mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_quotes_left_RALT: world_quotes_left_RALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_corner2>, <&world_quotes_left_LCTL>; + mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_quotes_left_LCTL: world_quotes_left_LCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_curly>, <&world_quotes_left_RCTL>; + mods = <(MOD_RCTL|MOD_RSFT)>; + }; + world_quotes_left_RCTL: world_quotes_left_RCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_left_low>, <&world_quotes_left_grave>; + mods = <(MOD_RSFT)>; + }; + world_quotes_right_base: world_quotes_right_base { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_angle>, <&world_quotes_right_LALT>; + mods = <(MOD_LALT|MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_quotes_right_LALT: world_quotes_right_LALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_corner1>, <&world_quotes_right_RALT>; + mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_quotes_right_RALT: world_quotes_right_RALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_corner2>, <&world_quotes_right_LCTL>; + mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_quotes_right_LCTL: world_quotes_right_LCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_curly>, <&world_quotes_right_RCTL>; + mods = <(MOD_RCTL|MOD_RSFT)>; + }; + world_quotes_right_RCTL: world_quotes_right_RCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_quotes_right_low>, <&world_quotes_right_grave>; + mods = <(MOD_RSFT)>; + }; + world_currency_base: world_currency_base { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_dollar>, <&world_currency_LALT>; + mods = <(MOD_LALT|MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_currency_LALT: world_currency_LALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_yen>, <&world_currency_RALT>; + mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_currency_RALT: world_currency_RALT { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_won>, <&world_currency_LCTL>; + mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>; + }; + world_currency_LCTL: world_currency_LCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_euro>, <&world_currency_RCTL>; + mods = <(MOD_RCTL|MOD_RSFT)>; + }; + world_currency_RCTL: world_currency_RCTL { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&world_currency_pound>, <&world_currency_generic>; + mods = <(MOD_RSFT)>; + }; + + ////////////////////////////////////////////////////////////////////////// + // + // Emoji layer - modern age pictograms + // + ////////////////////////////////////////////////////////////////////////// + + // + // EMOJI_GENDER_SIGN_PRESET defines an Emoji gender sign for use as a + // convenient inward-rolling shortcut on the home row of the layer. + // + #ifndef EMOJI_GENDER_SIGN_PRESET + #define EMOJI_GENDER_SIGN_PRESET 'N' // neutral + //#define EMOJI_GENDER_SIGN_PRESET 'M' // male + //#define EMOJI_GENDER_SIGN_PRESET 'F' // female + #endif + + // + // EMOJI_SKIN_TONE_PRESET defines an Emoji skin tone for use as a + // convenient inward-rolling shortcut on the home row of the layer. + // + #ifndef EMOJI_SKIN_TONE_PRESET + #define EMOJI_SKIN_TONE_PRESET 'N' // neutral + //#define EMOJI_SKIN_TONE_PRESET 'L' // light_skin_tone + //#define EMOJI_SKIN_TONE_PRESET 'l' // medium_light_skin_tone + //#define EMOJI_SKIN_TONE_PRESET 'M' // medium_skin_tone + //#define EMOJI_SKIN_TONE_PRESET 'd' // medium_dark_skin_tone + //#define EMOJI_SKIN_TONE_PRESET 'D' // dark_skin_tone + #endif + + // + // EMOJI_HAIR_STYLE_PRESET defines an Emoji hair style for use as a + // convenient inward-rolling shortcut on the home row of the layer. + // + #ifndef EMOJI_HAIR_STYLE_PRESET + #define EMOJI_HAIR_STYLE_PRESET 'N' // neutral + //#define EMOJI_HAIR_STYLE_PRESET 'B' // bald + //#define EMOJI_HAIR_STYLE_PRESET 'R' // red_hair + //#define EMOJI_HAIR_STYLE_PRESET 'C' // curly_hair + //#define EMOJI_HAIR_STYLE_PRESET 'W' // white_hair + #endif + + // + // NOTE: edit the emoji.yaml file and run `rake` to generate this: + // + + // + // codepoints + // + UNICODE(emoji_zwj_macro, /* ‍ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N0 &kp D) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N0 &kp D) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N0 &kp D) + #endif + ) + emoji_zwj: emoji_zwj { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_zwj_macro>, <&emoji_zwj_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_zwj +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_male_sign_macro, /* ♂️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N6 &kp N4 &kp N2), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N6 &kp N4 &kp N2), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N6 &kp N4 &kp N2), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_male_sign: emoji_male_sign { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_male_sign_macro>, <&emoji_male_sign_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_male_sign +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_female_sign_macro, /* ♀️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N6 &kp N4 &kp N0), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N6 &kp N4 &kp N0), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N6 &kp N4 &kp N0), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_female_sign: emoji_female_sign { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_female_sign_macro>, <&emoji_female_sign_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_female_sign +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_right_arrow_macro, /* ➡️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N7 &kp A &kp N1), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N7 &kp A &kp N1), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N7 &kp A &kp N1), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_right_arrow: emoji_right_arrow { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_right_arrow_macro>, <&emoji_right_arrow_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_right_arrow +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_left_arrow_macro, /* ⬅️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp B &kp N0 &kp N5), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp B &kp N0 &kp N5), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp B &kp N0 &kp N5), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_left_arrow: emoji_left_arrow { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_left_arrow_macro>, <&emoji_left_arrow_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_left_arrow +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_rainbow_macro, /* 🌈 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N0 &kp N8) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N0 &kp N8) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N0 &kp N8) + #endif + ) + emoji_rainbow: emoji_rainbow { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_rainbow_macro>, <&emoji_rainbow_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_rainbow +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_cloudy_macro, /* ️☁️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp N2 &kp N6 &kp N0 &kp N1), UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp N2 &kp N6 &kp N0 &kp N1), UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N6 &kp N0 &kp N1), UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_cloudy: emoji_cloudy { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_cloudy_macro>, <&emoji_cloudy_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_cloudy +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_mostly_cloudy_macro, /* 🌥 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N2 &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N2 &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N2 &kp N5) + #endif + ) + emoji_mostly_cloudy: emoji_mostly_cloudy { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_mostly_cloudy_macro>, <&emoji_mostly_cloudy_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_mostly_cloudy +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_partly_cloudy_macro, /* ⛅ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N6 &kp C &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N6 &kp C &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N6 &kp C &kp N5) + #endif + ) + emoji_partly_cloudy: emoji_partly_cloudy { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_partly_cloudy_macro>, <&emoji_partly_cloudy_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_partly_cloudy +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_mostly_sunny_macro, /* ️🌤️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N2 &kp N4), UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N2 &kp N4), UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N2 &kp N4), UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_mostly_sunny: emoji_mostly_sunny { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_mostly_sunny_macro>, <&emoji_mostly_sunny_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_mostly_sunny +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_sunny_macro, /* ☀️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N6 &kp N0 &kp N0), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N6 &kp N0 &kp N0), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N6 &kp N0 &kp N0), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_sunny: emoji_sunny { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_sunny_macro>, <&emoji_sunny_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_sunny +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_sunrise_macro, /* 🌅 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N0 &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N0 &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N0 &kp N5) + #endif + ) + emoji_sunrise: emoji_sunrise { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_sunrise_macro>, <&emoji_sunrise_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_sunrise +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_sunrise_mountains_macro, /* 🌄 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N0 &kp N4) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N0 &kp N4) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N0 &kp N4) + #endif + ) + emoji_sunrise_mountains: emoji_sunrise_mountains { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_sunrise_mountains_macro>, <&emoji_sunrise_mountains_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_sunrise_mountains +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_cityscape_macro, /* ️🏙️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp D &kp N9), UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp D &kp N9), UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp D &kp N9), UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_cityscape: emoji_cityscape { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_cityscape_macro>, <&emoji_cityscape_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_cityscape +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_cityscape_dusk_macro, /* ️🌇 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N0 &kp N7) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N0 &kp N7) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N0 &kp N7) + #endif + ) + emoji_cityscape_dusk: emoji_cityscape_dusk { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_cityscape_dusk_macro>, <&emoji_cityscape_dusk_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_cityscape_dusk +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_cityscape_night_macro, /* 🌃 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N0 &kp N3) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N0 &kp N3) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N0 &kp N3) + #endif + ) + emoji_cityscape_night: emoji_cityscape_night { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_cityscape_night_macro>, <&emoji_cityscape_night_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_cityscape_night +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_light_skin_tone_macro, /* 🏻 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp F &kp B) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp F &kp B) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp F &kp B) + #endif + ) + emoji_light_skin_tone: emoji_light_skin_tone { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_light_skin_tone_macro>, <&emoji_light_skin_tone_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_light_skin_tone +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_medium_light_skin_tone_macro, /* 🏼 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp F &kp C) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp F &kp C) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp F &kp C) + #endif + ) + emoji_medium_light_skin_tone: emoji_medium_light_skin_tone { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_medium_light_skin_tone_macro>, <&emoji_medium_light_skin_tone_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_medium_light_skin_tone +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_medium_skin_tone_macro, /* 🏽 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp F &kp D) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp F &kp D) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp F &kp D) + #endif + ) + emoji_medium_skin_tone: emoji_medium_skin_tone { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_medium_skin_tone_macro>, <&emoji_medium_skin_tone_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_medium_skin_tone +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_medium_dark_skin_tone_macro, /* 🏾 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp F &kp E) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp F &kp E) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp F &kp E) + #endif + ) + emoji_medium_dark_skin_tone: emoji_medium_dark_skin_tone { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_medium_dark_skin_tone_macro>, <&emoji_medium_dark_skin_tone_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_medium_dark_skin_tone +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_dark_skin_tone_macro, /* 🏿 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp F &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp F &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp F &kp F) + #endif + ) + emoji_dark_skin_tone: emoji_dark_skin_tone { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_dark_skin_tone_macro>, <&emoji_dark_skin_tone_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_dark_skin_tone +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_baby_bottle_macro, /* 🍼 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N7 &kp C) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N7 &kp C) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N7 &kp C) + #endif + ) + emoji_baby_bottle: emoji_baby_bottle { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_baby_bottle_macro>, <&emoji_baby_bottle_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_baby_bottle +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_baby_macro, /* 👶 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N7 &kp N6) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N7 &kp N6) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N7 &kp N6) + #endif + ) + emoji_baby: emoji_baby { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_baby_macro>, <&emoji_baby_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_baby +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_boy_macro, /* 👦 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N6 &kp N6) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N6 &kp N6) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N6 &kp N6) + #endif + ) + emoji_boy: emoji_boy { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_boy_macro>, <&emoji_boy_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_boy +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_girl_macro, /* 👧 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N6 &kp N7) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N6 &kp N7) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N6 &kp N7) + #endif + ) + emoji_girl: emoji_girl { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_girl_macro>, <&emoji_girl_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_girl +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_man_macro, /* 👨 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N6 &kp N8) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N6 &kp N8) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N6 &kp N8) + #endif + ) + emoji_man: emoji_man { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_man_macro>, <&emoji_man_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_man +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_woman_macro, /* 👩 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N6 &kp N9) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N6 &kp N9) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N6 &kp N9) + #endif + ) + emoji_woman: emoji_woman { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_woman_macro>, <&emoji_woman_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_woman +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_old_man_macro, /* 👴 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N7 &kp N4) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N7 &kp N4) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N7 &kp N4) + #endif + ) + emoji_old_man: emoji_old_man { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_old_man_macro>, <&emoji_old_man_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_old_man +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_old_woman_macro, /* 👵 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N7 &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N7 &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N7 &kp N5) + #endif + ) + emoji_old_woman: emoji_old_woman { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_old_woman_macro>, <&emoji_old_woman_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_old_woman +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_white_hair_macro, /* 🦳 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp B &kp N3) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp B &kp N3) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp B &kp N3) + #endif + ) + emoji_white_hair: emoji_white_hair { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_white_hair_macro>, <&emoji_white_hair_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_white_hair +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_curly_hair_macro, /* 🦱 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp B &kp N1) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp B &kp N1) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp B &kp N1) + #endif + ) + emoji_curly_hair: emoji_curly_hair { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_curly_hair_macro>, <&emoji_curly_hair_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_curly_hair +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_red_hair_macro, /* 🦰 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp B &kp N0) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp B &kp N0) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp B &kp N0) + #endif + ) + emoji_red_hair: emoji_red_hair { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_red_hair_macro>, <&emoji_red_hair_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_red_hair +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_bald_macro, /* 🦲 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp B &kp N2) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp B &kp N2) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp B &kp N2) + #endif + ) + emoji_bald: emoji_bald { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_bald_macro>, <&emoji_bald_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_bald +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_new_moon_macro, /* 🌑 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N1) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N1) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N1) + #endif + ) + emoji_new_moon: emoji_new_moon { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_new_moon_macro>, <&emoji_new_moon_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_new_moon +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_waxing_crescent_moon_macro, /* 🌒 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N2) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N2) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N2) + #endif + ) + emoji_waxing_crescent_moon: emoji_waxing_crescent_moon { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_waxing_crescent_moon_macro>, <&emoji_waxing_crescent_moon_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_waxing_crescent_moon +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_first_quarter_moon_macro, /* 🌓 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N3) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N3) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N3) + #endif + ) + emoji_first_quarter_moon: emoji_first_quarter_moon { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_first_quarter_moon_macro>, <&emoji_first_quarter_moon_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_first_quarter_moon +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_waxing_gibbous_moon_macro, /* 🌔 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N4) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N4) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N4) + #endif + ) + emoji_waxing_gibbous_moon: emoji_waxing_gibbous_moon { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_waxing_gibbous_moon_macro>, <&emoji_waxing_gibbous_moon_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_waxing_gibbous_moon +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_full_moon_macro, /* 🌕 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N5) + #endif + ) + emoji_full_moon: emoji_full_moon { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_full_moon_macro>, <&emoji_full_moon_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_full_moon +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_waning_gibbous_moon_macro, /* 🌖 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N6) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N6) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N6) + #endif + ) + emoji_waning_gibbous_moon: emoji_waning_gibbous_moon { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_waning_gibbous_moon_macro>, <&emoji_waning_gibbous_moon_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_waning_gibbous_moon +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_last_quarter_moon_macro, /* 🌗 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N7) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N7) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N7) + #endif + ) + emoji_last_quarter_moon: emoji_last_quarter_moon { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_last_quarter_moon_macro>, <&emoji_last_quarter_moon_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_last_quarter_moon +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_waning_crescent_moon_macro, /* 🌘 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N8) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N8) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N8) + #endif + ) + emoji_waning_crescent_moon: emoji_waning_crescent_moon { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_waning_crescent_moon_macro>, <&emoji_waning_crescent_moon_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_waning_crescent_moon +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_tada_macro, /* 🎉 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N8 &kp N9) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N8 &kp N9) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N8 &kp N9) + #endif + ) + emoji_tada: emoji_tada { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_tada_macro>, <&emoji_tada_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_tada +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_heart_macro, /* ️❤️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp N2 &kp N7 &kp N6 &kp N4), UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp N2 &kp N7 &kp N6 &kp N4), UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N7 &kp N6 &kp N4), UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_heart: emoji_heart { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_heart_macro>, <&emoji_heart_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_heart +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_fire_macro, /* 🔥 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N5 &kp N2 &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp D &kp N2 &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N5 &kp N2 &kp N5) + #endif + ) + emoji_fire: emoji_fire { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_fire_macro>, <&emoji_fire_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_fire +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_muscle_macro, /* 💪 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp A &kp A) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp A &kp A) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp A &kp A) + #endif + ) + emoji_muscle: emoji_muscle { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_muscle_macro>, <&emoji_muscle_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_muscle +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_person_climbing_macro, /* 🧗 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp D &kp N7) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp D &kp N7) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp D &kp N7) + #endif + ) + emoji_person_climbing: emoji_person_climbing { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_person_climbing_macro>, <&emoji_person_climbing_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_climbing +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_lab_coat_macro, /* 🥼 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N7 &kp C) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N7 &kp C) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N7 &kp C) + #endif + ) + emoji_lab_coat: emoji_lab_coat { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_lab_coat_macro>, <&emoji_lab_coat_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_lab_coat +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_rocket_macro, /* 🚀 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N8 &kp N0) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N8 &kp N0) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N8 &kp N0) + #endif + ) + emoji_rocket: emoji_rocket { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_rocket_macro>, <&emoji_rocket_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_rocket +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_joy_macro, /* 😂 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N0 &kp N2) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N0 &kp N2) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N0 &kp N2) + #endif + ) + emoji_joy: emoji_joy { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_joy_macro>, <&emoji_joy_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_joy +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_rofl_macro, /* 🤣 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N2 &kp N3) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N2 &kp N3) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N2 &kp N3) + #endif + ) + emoji_rofl: emoji_rofl { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_rofl_macro>, <&emoji_rofl_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_rofl +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_star_struck_macro, /* 🤩 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N2 &kp N9) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N2 &kp N9) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N2 &kp N9) + #endif + ) + emoji_star_struck: emoji_star_struck { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_star_struck_macro>, <&emoji_star_struck_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_star_struck +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_love_struck_macro, /* 😍 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N0 &kp D) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N0 &kp D) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N0 &kp D) + #endif + ) + emoji_love_struck: emoji_love_struck { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_love_struck_macro>, <&emoji_love_struck_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_love_struck +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_saluting_face_macro, /* 🫡 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp A &kp E &kp N1) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp E &kp E &kp N1) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp A &kp E &kp N1) + #endif + ) + emoji_saluting_face: emoji_saluting_face { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_saluting_face_macro>, <&emoji_saluting_face_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_saluting_face +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_shocked_face_macro, /* 🤯 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N2 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N2 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N2 &kp F) + #endif + ) + emoji_shocked_face: emoji_shocked_face { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_shocked_face_macro>, <&emoji_shocked_face_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_shocked_face +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_cold_sweat_macro, /* 😰 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N3 &kp N0) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N3 &kp N0) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N3 &kp N0) + #endif + ) + emoji_cold_sweat: emoji_cold_sweat { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_cold_sweat_macro>, <&emoji_cold_sweat_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_cold_sweat +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_monocle_face_macro, /* 🧐 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp D &kp N0) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp D &kp N0) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp D &kp N0) + #endif + ) + emoji_monocle_face: emoji_monocle_face { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_monocle_face_macro>, <&emoji_monocle_face_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_monocle_face +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_snap_fingers_macro, /* 🫰 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp A &kp F &kp N0) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp E &kp F &kp N0) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp A &kp F &kp N0) + #endif + ) + emoji_snap_fingers: emoji_snap_fingers { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_snap_fingers_macro>, <&emoji_snap_fingers_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_snap_fingers +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_ok_hand_macro, /* 👌 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N4 &kp C) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N4 &kp C) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N4 &kp C) + #endif + ) + emoji_ok_hand: emoji_ok_hand { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_ok_hand_macro>, <&emoji_ok_hand_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_ok_hand +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_pray_macro, /* 🙏 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp F) + #endif + ) + emoji_pray: emoji_pray { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_pray_macro>, <&emoji_pray_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_pray +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_sweat_smile_macro, /* 😅 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N0 &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N0 &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N0 &kp N5) + #endif + ) + emoji_sweat_smile: emoji_sweat_smile { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_sweat_smile_macro>, <&emoji_sweat_smile_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_sweat_smile +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_disappointed_macro, /* 😞 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N1 &kp E) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N1 &kp E) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N1 &kp E) + #endif + ) + emoji_disappointed: emoji_disappointed { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_disappointed_macro>, <&emoji_disappointed_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_disappointed +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_thinking_macro, /* 🤔 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N1 &kp N4) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N1 &kp N4) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N1 &kp N4) + #endif + ) + emoji_thinking: emoji_thinking { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_thinking_macro>, <&emoji_thinking_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_thinking +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_person_tipping_hand_macro, /* 💁 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N8 &kp N1) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N8 &kp N1) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N8 &kp N1) + #endif + ) + emoji_person_tipping_hand: emoji_person_tipping_hand { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_person_tipping_hand_macro>, <&emoji_person_tipping_hand_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_tipping_hand +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_person_gesturing_ok_macro, /* 🙆 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp N6) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp N6) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp N6) + #endif + ) + emoji_person_gesturing_ok: emoji_person_gesturing_ok { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_person_gesturing_ok_macro>, <&emoji_person_gesturing_ok_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_gesturing_ok +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_person_bowing_macro, /* 🙇 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp N7) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp N7) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp N7) + #endif + ) + emoji_person_bowing: emoji_person_bowing { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_person_bowing_macro>, <&emoji_person_bowing_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_bowing +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_person_raising_hand_macro, /* 🙋 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp B) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp B) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp B) + #endif + ) + emoji_person_raising_hand: emoji_person_raising_hand { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_person_raising_hand_macro>, <&emoji_person_raising_hand_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_raising_hand +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_person_gesturing_no_macro, /* 🙅 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp N5) + #endif + ) + emoji_person_gesturing_no: emoji_person_gesturing_no { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_person_gesturing_no_macro>, <&emoji_person_gesturing_no_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_gesturing_no +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_person_shrugging_macro, /* 🤷 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N3 &kp N7) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N3 &kp N7) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N3 &kp N7) + #endif + ) + emoji_person_shrugging: emoji_person_shrugging { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_person_shrugging_macro>, <&emoji_person_shrugging_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_shrugging +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_checkoff_macro, /* ✅ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N7 &kp N0 &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N7 &kp N0 &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N7 &kp N0 &kp N5) + #endif + ) + emoji_checkoff: emoji_checkoff { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_checkoff_macro>, <&emoji_checkoff_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_checkoff +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_100_macro, /* 💯 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp A &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp A &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp A &kp F) + #endif + ) + emoji_100: emoji_100 { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_100_macro>, <&emoji_100_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_100 +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_warning_macro, /* ⚠️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N6 &kp A &kp N0), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N6 &kp A &kp N0), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N6 &kp A &kp N0), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_warning: emoji_warning { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_warning_macro>, <&emoji_warning_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_warning +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_x_macro, /* ❌ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N7 &kp N4 &kp C) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N7 &kp N4 &kp C) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N7 &kp N4 &kp C) + #endif + ) + emoji_x: emoji_x { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_x_macro>, <&emoji_x_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_x +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_question_macro, /* ❓ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N7 &kp N5 &kp N3) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N7 &kp N5 &kp N3) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N7 &kp N5 &kp N3) + #endif + ) + emoji_question: emoji_question { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_question_macro>, <&emoji_question_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_question +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_astronaut_macro, /* 🧑‍🚀 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp D &kp N1), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N0 &kp D), UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N8 &kp N0) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp D &kp N1), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N0 &kp D), UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N8 &kp N0) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp D &kp N1), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N0 &kp D), UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N8 &kp N0) + #endif + ) + emoji_astronaut: emoji_astronaut { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_astronaut_macro>, <&emoji_astronaut_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_astronaut +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_nerd_macro, /* 🤓 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N1 &kp N3) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N1 &kp N3) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N1 &kp N3) + #endif + ) + emoji_nerd: emoji_nerd { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_nerd_macro>, <&emoji_nerd_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_nerd +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_sparkles_macro, /* ✨ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N7 &kp N2 &kp N8) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N7 &kp N2 &kp N8) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N7 &kp N2 &kp N8) + #endif + ) + emoji_sparkles: emoji_sparkles { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_sparkles_macro>, <&emoji_sparkles_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_sparkles +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_raised_hands_macro, /* 🙌 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp C) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp C) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp C) + #endif + ) + emoji_raised_hands: emoji_raised_hands { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_raised_hands_macro>, <&emoji_raised_hands_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_raised_hands +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_point_up_macro, /* ☝️ */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N2 &kp N6 &kp N1 &kp D), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_LINUX(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp N2 &kp N6 &kp N1 &kp D), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_MACOS(&kp F &kp E &kp N0 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N6 &kp N1 &kp D), <¯o_wait_time UNICODE_SEQ_DELAY>, UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N0 &kp F) + #endif + ) + emoji_point_up: emoji_point_up { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_point_up_macro>, <&emoji_point_up_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_point_up +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_thumbs_up_macro, /* 👍 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N4 &kp D) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N4 &kp D) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N4 &kp D) + #endif + ) + emoji_thumbs_up: emoji_thumbs_up { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_thumbs_up_macro>, <&emoji_thumbs_up_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_thumbs_up +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + + // + // characters + // + emoji_moon_complete: emoji_moon_complete { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_new_moon>, <&emoji_full_moon>; + mods = ; + }; + emoji_moon_gibbous: emoji_moon_gibbous { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_waning_gibbous_moon>, <&emoji_waxing_gibbous_moon>; + mods = ; + }; + emoji_moon_quarter: emoji_moon_quarter { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_last_quarter_moon>, <&emoji_first_quarter_moon>; + mods = ; + }; + emoji_moon_crescent: emoji_moon_crescent { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_waning_crescent_moon>, <&emoji_waxing_crescent_moon>; + mods = ; + }; + UNICODE(emoji_moon_stars_magic_macro, /* 🪄 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp A &kp N8 &kp N4) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp E &kp N8 &kp N4) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp A &kp N8 &kp N4) + #endif + ) + emoji_moon_stars_magic: emoji_moon_stars_magic { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_moon_stars_magic_macro>, <&emoji_moon_stars_magic_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_moon_stars_magic +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_moon_stars: emoji_moon_stars { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_sparkles>, <&emoji_moon_stars_magic>; + mods = ; + }; + UNICODE(emoji_face_smile_up_macro, /* 🙂 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp N2) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp N2) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp N2) + #endif + ) + emoji_face_smile_up: emoji_face_smile_up { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_face_smile_up_macro>, <&emoji_face_smile_up_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_smile_up +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_face_smile_down_macro, /* 🙃 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp N3) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp N3) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp N3) + #endif + ) + emoji_face_smile_down: emoji_face_smile_down { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_face_smile_down_macro>, <&emoji_face_smile_down_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_smile_down +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_face_smile: emoji_face_smile { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_face_smile_up>, <&emoji_face_smile_down>; + mods = ; + }; + emoji_face_laugh: emoji_face_laugh { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_joy>, <&emoji_rofl>; + mods = ; + }; + emoji_face_eyes: emoji_face_eyes { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_star_struck>, <&emoji_love_struck>; + mods = ; + }; + UNICODE(emoji_face_joke_wink_macro, /* 😉 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N0 &kp N9) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N0 &kp N9) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N0 &kp N9) + #endif + ) + emoji_face_joke_wink: emoji_face_joke_wink { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_face_joke_wink_macro>, <&emoji_face_joke_wink_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_joke_wink +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_face_joke_tounge_macro, /* 😜 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N1 &kp C) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N1 &kp C) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N1 &kp C) + #endif + ) + emoji_face_joke_tounge: emoji_face_joke_tounge { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_face_joke_tounge_macro>, <&emoji_face_joke_tounge_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_joke_tounge +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_face_joke: emoji_face_joke { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_face_joke_wink>, <&emoji_face_joke_tounge>; + mods = ; + }; + UNICODE(emoji_face_fear_scared_macro, /* 😨 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N2 &kp N8) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N2 &kp N8) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N2 &kp N8) + #endif + ) + emoji_face_fear_scared: emoji_face_fear_scared { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_face_fear_scared_macro>, <&emoji_face_fear_scared_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_fear_scared +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + UNICODE(emoji_face_fear_scream_macro, /* 😱 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N3 &kp N1) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N3 &kp N1) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N3 &kp N1) + #endif + ) + emoji_face_fear_scream: emoji_face_fear_scream { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_face_fear_scream_macro>, <&emoji_face_fear_scream_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_fear_scream +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_face_fear: emoji_face_fear { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_face_fear_scared>, <&emoji_face_fear_scream>; + mods = ; + }; + UNICODE(emoji_face_surprise_dizzy_macro, /* 😵 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N3 &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N3 &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N3 &kp N5) + #endif + ) + emoji_face_surprise_dizzy: emoji_face_surprise_dizzy { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_face_surprise_dizzy_macro>, <&emoji_face_surprise_dizzy_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_surprise_dizzy +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_face_surprise: emoji_face_surprise { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_shocked_face>, <&emoji_face_surprise_dizzy>; + mods = ; + }; + UNICODE(emoji_gesture_attention_wave_macro, /* 👋 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N4 &kp B) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N4 &kp B) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N4 &kp B) + #endif + ) + emoji_gesture_attention_wave: emoji_gesture_attention_wave { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_gesture_attention_wave_macro>, <&emoji_gesture_attention_wave_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_attention_wave +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_gesture_attention: emoji_gesture_attention { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_snap_fingers>, <&emoji_gesture_attention_wave>; + mods = ; + }; + UNICODE(emoji_gesture_approval_cool_macro, /* 😎 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N0 &kp E) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N0 &kp E) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N0 &kp E) + #endif + ) + emoji_gesture_approval_cool: emoji_gesture_approval_cool { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_gesture_approval_cool_macro>, <&emoji_gesture_approval_cool_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_approval_cool +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_gesture_approval: emoji_gesture_approval { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_ok_hand>, <&emoji_gesture_approval_cool>; + mods = ; + }; + emoji_gesture_gratitude: emoji_gesture_gratitude { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_pray>, <&emoji_saluting_face>; + mods = ; + }; + emoji_gesture_anxiety: emoji_gesture_anxiety { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_sweat_smile>, <&emoji_cold_sweat>; + mods = ; + }; + UNICODE(emoji_gesture_despair_cry_macro, /* 😢 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N2 &kp N2) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N2 &kp N2) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N2 &kp N2) + #endif + ) + emoji_gesture_despair_cry: emoji_gesture_despair_cry { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_gesture_despair_cry_macro>, <&emoji_gesture_despair_cry_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_despair_cry +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_gesture_despair: emoji_gesture_despair { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_disappointed>, <&emoji_gesture_despair_cry>; + mods = ; + }; + emoji_gesture_curious: emoji_gesture_curious { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_thinking>, <&emoji_monocle_face>; + mods = ; + }; + UNICODE(emoji_gesture_point_you_macro, /* 🫵 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp A &kp F &kp N5) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp E &kp F &kp N5) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp A &kp F &kp N5) + #endif + ) + emoji_gesture_point_you: emoji_gesture_point_you { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_gesture_point_you_macro>, <&emoji_gesture_point_you_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_point_you +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_gesture_point: emoji_gesture_point { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_point_up>, <&emoji_gesture_point_you>; + mods = ; + }; + UNICODE(emoji_gesture_thumbs_down_macro, /* 👎 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N4 &kp E) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N4 &kp E) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N4 &kp E) + #endif + ) + emoji_gesture_thumbs_down: emoji_gesture_thumbs_down { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_gesture_thumbs_down_macro>, <&emoji_gesture_thumbs_down_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_thumbs_down +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_gesture_thumbs: emoji_gesture_thumbs { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_thumbs_up>, <&emoji_gesture_thumbs_down>; + mods = ; + }; + UNICODE(emoji_gesture_hands_clap_macro, /* 👏 */ + #if UNICODE_TARGET_OS == 'L' + UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N4 &kp F) + #elif UNICODE_TARGET_OS == 'M' + UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N4 &kp F) + #elif UNICODE_TARGET_OS == 'W' + UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N4 &kp F) + #endif + ) + emoji_gesture_hands_clap: emoji_gesture_hands_clap { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_gesture_hands_clap_macro>, <&emoji_gesture_hands_clap_macro>; + mods = <(~( +#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_hands_clap +COMPOSE_MORPH_MODS +#else +UNICODE_MORPH_MODS +#endif +))>; + }; + emoji_gesture_hands: emoji_gesture_hands { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&emoji_raised_hands>, <&emoji_gesture_hands_clap>; + mods = ; + }; +}; +/*HACK*/}; +#if EMOJI_GENDER_SIGN_PRESET == 'N' + emoji_gender_sign_preset: &none {}; +#elif EMOJI_GENDER_SIGN_PRESET == 'M' + emoji_gender_sign_preset: &emoji_male_sign {}; +#elif EMOJI_GENDER_SIGN_PRESET == 'F' + emoji_gender_sign_preset: &emoji_female_sign {}; +#endif + +#if EMOJI_SKIN_TONE_PRESET == 'N' + emoji_skin_tone_preset: &none {}; +#elif EMOJI_SKIN_TONE_PRESET == 'L' + emoji_skin_tone_preset: &emoji_light_skin_tone {}; +#elif EMOJI_SKIN_TONE_PRESET == 'l' + emoji_skin_tone_preset: &emoji_medium_light_skin_tone {}; +#elif EMOJI_SKIN_TONE_PRESET == 'M' + emoji_skin_tone_preset: &emoji_medium_skin_tone {}; +#elif EMOJI_SKIN_TONE_PRESET == 'd' + emoji_skin_tone_preset: &emoji_medium_dark_skin_tone {}; +#elif EMOJI_SKIN_TONE_PRESET == 'D' + emoji_skin_tone_preset: &emoji_dark_skin_tone {}; +#endif + +#if EMOJI_HAIR_STYLE_PRESET == 'N' + emoji_hair_style_preset: &none {}; +#elif EMOJI_HAIR_STYLE_PRESET == 'B' + emoji_hair_style_preset: &emoji_bald {}; +#elif EMOJI_HAIR_STYLE_PRESET == 'R' + emoji_hair_style_preset: &emoji_red_hair {}; +#elif EMOJI_HAIR_STYLE_PRESET == 'C' + emoji_hair_style_preset: &emoji_curly_hair {}; +#elif EMOJI_HAIR_STYLE_PRESET == 'W' + emoji_hair_style_preset: &emoji_white_hair {}; +#endif +/*HACK*//{ + +////////////////////////////////////////////////////////////////////////// +// +// Mouse keys (control mouse via keyboard) -- requires PR23 beta firmware: +// select "community.pr23.mouse-keys" from the drop-down menu located at +// Glove80 Layout Editor > Settings > Advanced Settings > Firmware Version +// +// - https://github.com/moergo-sc/zmk/pull/23 +// - https://gist.github.com/krissen/dd27082e7ab0575619c7a31f4d2ec7ae +// - https://github.com/zmkfirmware/zmk/compare/main...urob:zmk:mouse-3.2 +// +////////////////////////////////////////////////////////////////////////// + +// +// MOUSE_MOTION_DELAY defines how long to wait (milliseconds) before starting +// to move the mouse pointer. +// +#ifndef MOUSE_MOTION_DELAY +#define MOUSE_MOTION_DELAY 0 +#endif + +// +// MOUSE_MOTION_ACCELERATION_EXPONENT sets how the mouse pointer accelerates: +// +// acceleration exponent 0: uniform speed +// acceleration exponent 1: uniform acceleration +// acceleration exponent 2: uniform jerk +// +#ifndef MOUSE_MOTION_ACCELERATION_EXPONENT +#define MOUSE_MOTION_ACCELERATION_EXPONENT 1 +#endif + +// +// MOUSE_MOTION_TIME_TO_MAXIMUM_SPEED defines how long to wait (milliseconds) +// before the mouse pointer speed is suddenly boosted to the maximum value. +// +#ifndef MOUSE_MOTION_TIME_TO_MAXIMUM_SPEED +#define MOUSE_MOTION_TIME_TO_MAXIMUM_SPEED 300 +#endif + +// +// MOUSE_MOTION_MAXIMUM_SPEED defines how quickly the mouse pointer can move. +// +#ifndef MOUSE_MOTION_MAXIMUM_SPEED +#define MOUSE_MOTION_MAXIMUM_SPEED 600 +#endif + +// +// MOUSE_SCROLL_DELAY defines how long to wait (milliseconds) before starting +// to move the mouse pointer. +// +#ifndef MOUSE_SCROLL_DELAY +#define MOUSE_SCROLL_DELAY 0 +#endif + +// +// MOUSE_SCROLL_ACCELERATION_EXPONENT sets how the mouse pointer accelerates: +// +// acceleration exponent 0: uniform speed +// acceleration exponent 1: uniform acceleration +// acceleration exponent 2: uniform jerk +// +#ifndef MOUSE_SCROLL_ACCELERATION_EXPONENT +#define MOUSE_SCROLL_ACCELERATION_EXPONENT 0 +#endif + +// +// MOUSE_SCROLL_TIME_TO_MAXIMUM_SPEED defines how long to wait (milliseconds) +// before the mouse pointer speed is suddenly boosted to the maximum value. +// +#ifndef MOUSE_SCROLL_TIME_TO_MAXIMUM_SPEED +#define MOUSE_SCROLL_TIME_TO_MAXIMUM_SPEED 300 +#endif + +// +// MOUSE_SCROLL_MAXIMUM_SPEED defines how quickly the mouse wheel can scroll. +// +#ifndef MOUSE_SCROLL_MAXIMUM_SPEED +#define MOUSE_SCROLL_MAXIMUM_SPEED 10 +#endif +/*HACK*/}; +#if __has_include() + // ==== MOUSE-KEY
==== + #define ZMK_MOUSE_DEFAULT_MOVE_VAL MOUSE_MOTION_MAXIMUM_SPEED + #define ZMK_MOUSE_DEFAULT_SCRL_VAL MOUSE_SCROLL_MAXIMUM_SPEED + #include + &mmv { + delay-ms = ; + acceleration-exponent = ; + time-to-max-speed-ms = ; + }; + &msc { + delay-ms = ; + acceleration-exponent = ; + time-to-max-speed-ms = ; + }; + // ==== MOUSE-KEY
===== +#else + #define mkp none + #define mmv none + #define msc none + #define LCLK + #define MCLK + #define RCLK + #define MB1 + #define MB2 + #define MB3 + #define MB4 + #define MB5 + #define MB6 + #define MB7 + #define MB8 + #define MOVE_UP + #define MOVE_DOWN + #define MOVE_LEFT + #define MOVE_RIGHT + #define SCRL_UP + #define SCRL_DOWN + #define SCRL_LEFT + #define SCRL_RIGHT +#endif +/*HACK*//{ + +}; + +/* Automatically generated macro definitions */ +/ { + macros { + + }; +}; + +/* Automatically generated behavior definitions */ +/ { + behaviors { + + }; +}; + +/* Automatically generated combos definitions */ +/ { + combos { + compatible = "zmk,combos"; + }; +}; + +/* Automatically generated keymap */ +/ { + keymap { + compatible = "zmk,keymap"; + + + layer_QWERTY { + bindings = < + &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 + &kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSLH + &kp GRAVE &kp Q &LeftRing2 (W, LAYER_QWERTY) &kp E &kp R &kp T &kp Y &kp U &kp I &RightRing2 (O, LAYER_QWERTY) &kp P &kp MINUS + &kp CAPS &LeftPinky (A, LAYER_QWERTY) &LeftRing1 (S, LAYER_QWERTY) &LeftMiddy (D, LAYER_QWERTY) &LeftIndex (F, LAYER_QWERTY) &plain LAYER_Typing G &plain LAYER_Typing H &RightIndex (J, LAYER_QWERTY) &RightMiddy (K, LAYER_QWERTY) &RightRing1 (L, LAYER_QWERTY) &RightPinky (SEMI, LAYER_QWERTY) &kp SQT + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &thumb LAYER_Function ESC &kp UP &kp DOWN &kp LEFT &kp RIGHT &thumb LAYER_System ENTER &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &magic LAYER_Magic 0 &kp HOME &kp PG_UP &kp PG_DN &thumb LAYER_Emoji END &thumb LAYER_Cursor BACKSPACE &thumb LAYER_Number DELETE &thumb_lower_shift LAYER_Lower LSFT &thumb_lower_shift LAYER_Lower LSFT &thumb LAYER_Mouse TAB &space LAYER_Symbol SPACE &thumb_parang_left LAYER_World 0 &kp LBKT &kp RBKT ¶ng_right &magic LAYER_Magic 0 + >; + }; + + layer_Engrammer { + bindings = < + &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 + &kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSLH + &kp GRAVE &kp B &LeftRing2 (Y, LAYER_Engrammer) &kp O &kp U &kp SQT &kp SEMI &kp L &kp D &RightRing2 (W, LAYER_Engrammer) &kp V &kp Z + &caps_word &LeftPinky (C, LAYER_Engrammer) &LeftRing1 (I, LAYER_Engrammer) &LeftMiddy (E, LAYER_Engrammer) &LeftIndex (A, LAYER_Engrammer) &plain LAYER_Typing COMMA &plain LAYER_Typing DOT &RightIndex (H, LAYER_Engrammer) &RightMiddy (T, LAYER_Engrammer) &RightRing1 (S, LAYER_Engrammer) &RightPinky (N, LAYER_Engrammer) &kp Q + &kp LSHFT &kp G &kp X &kp J &kp K &kp MINUS &thumb LAYER_Function ESC &kp UP &kp DOWN &kp LEFT &kp RIGHT &thumb LAYER_System ENTER &kp FSLH &kp R &kp M &kp F &kp P &kp RSHFT + &magic LAYER_Magic 0 &kp HOME &kp PG_UP &kp PG_DN &thumb LAYER_Emoji END &thumb LAYER_Cursor BACKSPACE &thumb LAYER_Number DELETE &thumb_lower_shift LAYER_Lower LSFT &thumb_lower_shift LAYER_Lower LSFT &thumb LAYER_Mouse TAB &space LAYER_Symbol SPACE &thumb_parang_left LAYER_World 0 &kp LBKT &kp RBKT ¶ng_right &magic LAYER_Magic 0 + >; + }; + + layer_Engram { + bindings = < + &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 + &kp LBKT &engram_N1 &engram_N2 &engram_N3 &engram_N4 &engram_N5 &engram_N6 &engram_N7 &engram_N8 &engram_N9 &engram_N0 &kp RBKT + &engram_AT &kp B &LeftRing2 (Y, LAYER_Engram) &kp O &kp U &engram_SQT &engram_DQT &kp L &kp D &RightRing2 (W, LAYER_Engram) &kp V &kp Z + &caps_word &LeftPinky (C, LAYER_Engram) &LeftRing1 (I, LAYER_Engram) &LeftMiddy (E, LAYER_Engram) &LeftIndex (A, LAYER_Engram) &plain_engram_COMMA LAYER_Typing 0 &plain_engram_DOT LAYER_Typing 0 &RightIndex (H, LAYER_Engram) &RightMiddy (T, LAYER_Engram) &RightRing1 (S, LAYER_Engram) &RightPinky (N, LAYER_Engram) &kp Q + &kp LSHFT &kp G &kp X &kp J &kp K &kp MINUS &thumb LAYER_Function ESC &kp UP &kp DOWN &kp LEFT &kp RIGHT &thumb LAYER_System ENTER &engram_QMARK &kp R &kp M &kp F &kp P &kp RSHFT + &magic LAYER_Magic 0 &kp HOME &kp PG_UP &kp PG_DN &thumb LAYER_Emoji END &thumb LAYER_Cursor BACKSPACE &thumb LAYER_Number DELETE &thumb_lower_shift LAYER_Lower LSFT &thumb_lower_shift LAYER_Lower LSFT &thumb LAYER_Mouse TAB &space LAYER_Symbol SPACE &thumb_parang_left LAYER_World 0 &engram_HASH &engram_FSLH ¶ng_right &magic LAYER_Magic 0 + >; + }; + + layer_Dvorak { + bindings = < + &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 + &kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSLH + &kp GRAVE &kp SQT &LeftRing2 (COMMA, LAYER_Dvorak) &kp DOT &kp P &kp Y &kp F &kp G &kp C &RightRing2 (R, LAYER_Dvorak) &kp L &kp SLASH + &caps_word &LeftPinky (A, LAYER_Dvorak) &LeftRing1 (O, LAYER_Dvorak) &LeftMiddy (E, LAYER_Dvorak) &LeftIndex (U, LAYER_Dvorak) &plain LAYER_Typing I &plain LAYER_Typing D &RightIndex (H, LAYER_Dvorak) &RightMiddy (T, LAYER_Dvorak) &RightRing1 (N, LAYER_Dvorak) &RightPinky (S, LAYER_Dvorak) &kp MINUS + &kp LSHFT &kp SEMI &kp Q &kp J &kp K &kp X &thumb LAYER_Function ESC &kp UP &kp DOWN &kp LEFT &kp RIGHT &thumb LAYER_System ENTER &kp B &kp M &kp W &kp V &kp Z &kp RSHFT + &magic LAYER_Magic 0 &kp HOME &kp PG_UP &kp PG_DN &thumb LAYER_Emoji END &thumb LAYER_Cursor BACKSPACE &thumb LAYER_Number DELETE &thumb_lower_shift LAYER_Lower LSFT &thumb_lower_shift LAYER_Lower LSFT &thumb LAYER_Mouse TAB &space LAYER_Symbol SPACE &thumb_parang_left LAYER_World 0 &kp LBKT &kp RBKT ¶ng_right &magic LAYER_Magic 0 + >; + }; + + layer_ColemakDHm { + bindings = < + &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 + &kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSLH + &kp GRAVE &kp Q &LeftRing2 (W, LAYER_ColemakDHm) &kp F &kp P &kp B &kp J &kp L &kp U &RightRing2 (Y, LAYER_ColemakDHm) &kp SEMI &kp MINUS + &caps_word &LeftPinky (A, LAYER_ColemakDHm) &LeftRing1 (R, LAYER_ColemakDHm) &LeftMiddy (S, LAYER_ColemakDHm) &LeftIndex (T, LAYER_ColemakDHm) &plain LAYER_Typing G &plain LAYER_Typing M &RightIndex (N, LAYER_ColemakDHm) &RightMiddy (E, LAYER_ColemakDHm) &RightRing1 (I, LAYER_ColemakDHm) &RightPinky (O, LAYER_ColemakDHm) &kp SQT + &kp LSHFT &kp Z &kp X &kp C &kp D &kp V &thumb LAYER_Function ESC &kp UP &kp DOWN &kp LEFT &kp RIGHT &thumb LAYER_System ENTER &kp K &kp H &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &magic LAYER_Magic 0 &kp HOME &kp PG_UP &kp PG_DN &thumb LAYER_Emoji END &thumb LAYER_Cursor BACKSPACE &thumb LAYER_Number DELETE &thumb_lower_shift LAYER_Lower LSFT &thumb_lower_shift LAYER_Lower LSFT &thumb LAYER_Mouse TAB &space LAYER_Symbol SPACE &thumb_parang_left LAYER_World 0 &kp LBKT &kp RBKT ¶ng_right &magic LAYER_Magic 0 + >; + }; + + layer_Colemak { + bindings = < + &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 + &kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSLH + &kp GRAVE &kp Q &LeftRing2 (W, LAYER_Colemak) &kp F &kp P &kp G &kp J &kp L &kp U &RightRing2 (Y, LAYER_Colemak) &kp SEMI &kp MINUS + &caps_word &LeftPinky (A, LAYER_Colemak) &LeftRing1 (R, LAYER_Colemak) &LeftMiddy (S, LAYER_Colemak) &LeftIndex (T, LAYER_Colemak) &plain LAYER_Typing D &plain LAYER_Typing H &RightIndex (N, LAYER_Colemak) &RightMiddy (E, LAYER_Colemak) &RightRing1 (I, LAYER_Colemak) &RightPinky (O, LAYER_Colemak) &kp SQT + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &thumb LAYER_Function ESC &kp UP &kp DOWN &kp LEFT &kp RIGHT &thumb LAYER_System ENTER &kp K &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &magic LAYER_Magic 0 &kp HOME &kp PG_UP &kp PG_DN &thumb LAYER_Emoji END &thumb LAYER_Cursor BACKSPACE &thumb LAYER_Number DELETE &thumb_lower_shift LAYER_Lower LSFT &thumb_lower_shift LAYER_Lower LSFT &thumb LAYER_Mouse TAB &space LAYER_Symbol SPACE &thumb_parang_left LAYER_World 0 &kp LBKT &kp RBKT ¶ng_right &magic LAYER_Magic 0 + >; + }; + + layer_Norman { + bindings = < + &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 + &kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSLH + &kp GRAVE &kp Q &LeftRing2 (W, LAYER_Norman) &kp D &kp F &kp K &kp J &kp U &kp R &RightRing2 (L, LAYER_Norman) &kp SEMI &kp MINUS + &caps_word &LeftPinky (A, LAYER_Norman) &LeftRing1 (S, LAYER_Norman) &LeftMiddy (E, LAYER_Norman) &LeftIndex (T, LAYER_Norman) &plain LAYER_Typing G &plain LAYER_Typing Y &RightIndex (N, LAYER_Norman) &RightMiddy (I, LAYER_Norman) &RightRing1 (O, LAYER_Norman) &RightPinky (H, LAYER_Norman) &kp SQT + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &thumb LAYER_Function ESC &kp UP &kp DOWN &kp LEFT &kp RIGHT &thumb LAYER_System ENTER &kp P &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &magic LAYER_Magic 0 &kp HOME &kp PG_UP &kp PG_DN &thumb LAYER_Emoji END &thumb LAYER_Cursor BACKSPACE &thumb LAYER_Number DELETE &thumb_lower_shift LAYER_Lower LSFT &thumb_lower_shift LAYER_Lower LSFT &thumb LAYER_Mouse TAB &space LAYER_Symbol SPACE &thumb_parang_left LAYER_World 0 &kp LBKT &kp RBKT ¶ng_right &magic LAYER_Magic 0 + >; + }; + + layer_Workman { + bindings = < + &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 + &kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSLH + &kp GRAVE &kp Q &LeftRing2 (D, LAYER_Workman) &kp R &kp W &kp B &kp J &kp F &kp U &RightRing2 (P, LAYER_Workman) &kp SEMI &kp MINUS + &caps_word &LeftPinky (A, LAYER_Workman) &LeftRing1 (S, LAYER_Workman) &LeftMiddy (H, LAYER_Workman) &LeftIndex (T, LAYER_Workman) &plain LAYER_Typing G &plain LAYER_Typing Y &RightIndex (N, LAYER_Workman) &RightMiddy (E, LAYER_Workman) &RightRing1 (O, LAYER_Workman) &RightPinky (I, LAYER_Workman) &kp SQT + &kp LSHFT &kp Z &kp X &kp M &kp C &kp V &thumb LAYER_Function ESC &kp UP &kp DOWN &kp LEFT &kp RIGHT &thumb LAYER_System ENTER &kp K &kp L &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &magic LAYER_Magic 0 &kp HOME &kp PG_UP &kp PG_DN &thumb LAYER_Emoji END &thumb LAYER_Cursor BACKSPACE &thumb LAYER_Number DELETE &thumb_lower_shift LAYER_Lower LSFT &thumb_lower_shift LAYER_Lower LSFT &thumb LAYER_Mouse TAB &space LAYER_Symbol SPACE &thumb_parang_left LAYER_World 0 &kp LBKT &kp RBKT ¶ng_right &magic LAYER_Magic 0 + >; + }; + + layer_Halmak { + bindings = < + &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 + &kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSLH + &kp GRAVE &kp W &LeftRing2 (L, LAYER_Halmak) &kp R &kp B &kp Z &kp SEMI &kp Q &kp U &RightRing2 (D, LAYER_Halmak) &kp J &kp MINUS + &caps_word &LeftPinky (S, LAYER_Halmak) &LeftRing1 (H, LAYER_Halmak) &LeftMiddy (N, LAYER_Halmak) &LeftIndex (T, LAYER_Halmak) &plain LAYER_Typing COMMA &plain LAYER_Typing DOT &RightIndex (A, LAYER_Halmak) &RightMiddy (E, LAYER_Halmak) &RightRing1 (O, LAYER_Halmak) &RightPinky (I, LAYER_Halmak) &kp SQT + &kp LSHFT &kp F &kp M &kp V &kp C &kp FSLH &thumb LAYER_Function ESC &kp UP &kp DOWN &kp LEFT &kp RIGHT &thumb LAYER_System ENTER &kp G &kp P &kp X &kp K &kp Y &kp RSHFT + &magic LAYER_Magic 0 &kp HOME &kp PG_UP &kp PG_DN &thumb LAYER_Emoji END &thumb LAYER_Cursor BACKSPACE &thumb LAYER_Number DELETE &thumb_lower_shift LAYER_Lower LSFT &thumb_lower_shift LAYER_Lower LSFT &thumb LAYER_Mouse TAB &space LAYER_Symbol SPACE &thumb_parang_left LAYER_World 0 &kp LBKT &kp RBKT ¶ng_right &magic LAYER_Magic 0 + >; + }; + + layer_Typing { + bindings = < + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &trans &kp LEFT_RING2_KEY &trans &trans &trans &trans &trans &trans &kp RIGHT_RING2_KEY &trans &trans + &trans &kp LEFT_PINKY_KEY &kp LEFT_RING1_KEY &kp LEFT_MIDDY_KEY &kp LEFT_INDEX_KEY &LeftPlainKey &RightPlainKey &kp RIGHT_INDEX_KEY &kp RIGHT_MIDDY_KEY &kp RIGHT_RING1_KEY &kp RIGHT_PINKY_KEY &trans + &trans &trans &trans &trans &trans &trans &kp KEY_LH_T1 &trans &trans &trans &trans &kp KEY_RH_T1 &trans &trans &trans &trans &trans &trans + &trans &trans &trans &trans &trans &kp KEY_LH_T4 &kp KEY_LH_T5 &tog LAYER_Typing &tog LAYER_Typing &kp KEY_RH_T5 &kp KEY_RH_T4 &trans &trans &trans &trans &trans + >; + }; + + layer_LeftPinky { + bindings = < + &left_pinky_tap KEY_LH_C6R1 &left_pinky_tap KEY_LH_C5R1 &left_pinky_tap KEY_LH_C4R1 &left_pinky_tap KEY_LH_C3R1 &left_pinky_tap KEY_LH_C2R1 &trans &trans &trans &trans &trans + &left_pinky_tap KEY_LH_C6R2 &left_pinky_tap KEY_LH_C5R2 &left_pinky_tap KEY_LH_C4R2 &left_pinky_tap KEY_LH_C3R2 &left_pinky_tap KEY_LH_C2R2 &left_pinky_tap KEY_LH_C1R2 &trans &trans &trans &trans &trans &trans + &left_pinky_tap KEY_LH_C6R3 &left_pinky_tap KEY_LH_C5R3 &LeftPinkyRing2 &left_pinky_tap KEY_LH_C3R3 &left_pinky_tap KEY_LH_C2R3 &left_pinky_tap KEY_LH_C1R3 &trans &trans &trans &kp RIGHT_RING2_KEY &trans &trans + &left_pinky_tap KEY_LH_C6R4 &none &LeftPinkyRing1 &LeftPinkyMiddy &LeftPinkyIndex &left_pinky_tap KEY_LH_C1R4 &RightPlainKey &kp RIGHT_INDEX_KEY &kp RIGHT_MIDDY_KEY &kp RIGHT_RING1_KEY &kp RIGHT_PINKY_KEY &trans + &left_pinky_tap KEY_LH_C6R5 &left_pinky_tap KEY_LH_C5R5 &left_pinky_tap KEY_LH_C4R5 &left_pinky_tap KEY_LH_C3R5 &left_pinky_tap KEY_LH_C2R5 &left_pinky_tap KEY_LH_C1R5 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &left_pinky_tap KEY_LH_C5R6 &left_pinky_tap KEY_LH_C4R6 &left_pinky_tap KEY_LH_C3R6 &left_pinky_tap KEY_LH_C2R6 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + >; + }; + + layer_LeftRing1 { + bindings = < + &left_ring1_tap KEY_LH_C6R1 &left_ring1_tap KEY_LH_C5R1 &left_ring1_tap KEY_LH_C4R1 &left_ring1_tap KEY_LH_C3R1 &left_ring1_tap KEY_LH_C2R1 &trans &trans &trans &trans &trans + &left_ring1_tap KEY_LH_C6R2 &left_ring1_tap KEY_LH_C5R2 &left_ring1_tap KEY_LH_C4R2 &left_ring1_tap KEY_LH_C3R2 &left_ring1_tap KEY_LH_C2R2 &left_ring1_tap KEY_LH_C1R2 &trans &trans &trans &trans &trans &trans + &left_ring1_tap KEY_LH_C6R3 &left_ring1_tap KEY_LH_C5R3 &LeftRing1Ring2 &left_ring1_tap KEY_LH_C3R3 &left_ring1_tap KEY_LH_C2R3 &left_ring1_tap KEY_LH_C1R3 &trans &trans &trans &kp RIGHT_RING2_KEY &trans &trans + &left_ring1_tap KEY_LH_C6R4 &LeftRing1Pinky &none &LeftRing1Middy &LeftRing1Index &left_ring1_tap KEY_LH_C1R4 &RightPlainKey &kp RIGHT_INDEX_KEY &kp RIGHT_MIDDY_KEY &kp RIGHT_RING1_KEY &kp RIGHT_PINKY_KEY &trans + &left_ring1_tap KEY_LH_C6R5 &left_ring1_tap KEY_LH_C5R5 &left_ring1_tap KEY_LH_C4R5 &left_ring1_tap KEY_LH_C3R5 &left_ring1_tap KEY_LH_C2R5 &left_ring1_tap KEY_LH_C1R5 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &left_ring1_tap KEY_LH_C5R6 &left_ring1_tap KEY_LH_C4R6 &left_ring1_tap KEY_LH_C3R6 &left_ring1_tap KEY_LH_C2R6 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + >; + }; + + layer_LeftRing2 { + bindings = < + &left_ring2_tap KEY_LH_C6R1 &left_ring2_tap KEY_LH_C5R1 &left_ring2_tap KEY_LH_C4R1 &left_ring2_tap KEY_LH_C3R1 &left_ring2_tap KEY_LH_C2R1 &trans &trans &trans &trans &trans + &left_ring2_tap KEY_LH_C6R2 &left_ring2_tap KEY_LH_C5R2 &left_ring2_tap KEY_LH_C4R2 &left_ring2_tap KEY_LH_C3R2 &left_ring2_tap KEY_LH_C2R2 &left_ring2_tap KEY_LH_C1R2 &trans &trans &trans &trans &trans &trans + &left_ring2_tap KEY_LH_C6R3 &left_ring2_tap KEY_LH_C5R3 &none &left_ring2_tap KEY_LH_C3R3 &left_ring2_tap KEY_LH_C2R3 &left_ring2_tap KEY_LH_C1R3 &trans &trans &trans &kp RIGHT_RING2_KEY &trans &trans + &left_ring2_tap KEY_LH_C6R4 &LeftRing2Pinky &LeftRing2Ring1 &LeftRing2Middy &LeftRing2Index &left_ring2_tap KEY_LH_C1R4 &RightPlainKey &kp RIGHT_INDEX_KEY &kp RIGHT_MIDDY_KEY &kp RIGHT_RING1_KEY &kp RIGHT_PINKY_KEY &trans + &left_ring2_tap KEY_LH_C6R5 &left_ring2_tap KEY_LH_C5R5 &left_ring2_tap KEY_LH_C4R5 &left_ring2_tap KEY_LH_C3R5 &left_ring2_tap KEY_LH_C2R5 &left_ring2_tap KEY_LH_C1R5 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &left_ring2_tap KEY_LH_C5R6 &left_ring2_tap KEY_LH_C4R6 &left_ring2_tap KEY_LH_C3R6 &left_ring2_tap KEY_LH_C2R6 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + >; + }; + + layer_LeftMiddy { + bindings = < + &left_middy_tap KEY_LH_C6R1 &left_middy_tap KEY_LH_C5R1 &left_middy_tap KEY_LH_C4R1 &left_middy_tap KEY_LH_C3R1 &left_middy_tap KEY_LH_C2R1 &trans &trans &trans &trans &trans + &left_middy_tap KEY_LH_C6R2 &left_middy_tap KEY_LH_C5R2 &left_middy_tap KEY_LH_C4R2 &left_middy_tap KEY_LH_C3R2 &left_middy_tap KEY_LH_C2R2 &left_middy_tap KEY_LH_C1R2 &trans &trans &trans &trans &trans &trans + &left_middy_tap KEY_LH_C6R3 &left_middy_tap KEY_LH_C5R3 &LeftMiddyRing2 &left_middy_tap KEY_LH_C3R3 &left_middy_tap KEY_LH_C2R3 &left_middy_tap KEY_LH_C1R3 &trans &trans &trans &kp RIGHT_RING2_KEY &trans &trans + &left_middy_tap KEY_LH_C6R4 &LeftMiddyPinky &LeftMiddyRing1 &none &LeftMiddyIndex &left_middy_tap KEY_LH_C1R4 &RightPlainKey &kp RIGHT_INDEX_KEY &kp RIGHT_MIDDY_KEY &kp RIGHT_RING1_KEY &kp RIGHT_PINKY_KEY &trans + &left_middy_tap KEY_LH_C6R5 &left_middy_tap KEY_LH_C5R5 &left_middy_tap KEY_LH_C4R5 &left_middy_tap KEY_LH_C3R5 &left_middy_tap KEY_LH_C2R5 &left_middy_tap KEY_LH_C1R5 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &left_middy_tap KEY_LH_C5R6 &left_middy_tap KEY_LH_C4R6 &left_middy_tap KEY_LH_C3R6 &left_middy_tap KEY_LH_C2R6 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + >; + }; + + layer_LeftIndex { + bindings = < + &left_index_tap KEY_LH_C6R1 &left_index_tap KEY_LH_C5R1 &left_index_tap KEY_LH_C4R1 &left_index_tap KEY_LH_C3R1 &left_index_tap KEY_LH_C2R1 &trans &trans &trans &trans &trans + &left_index_tap KEY_LH_C6R2 &left_index_tap KEY_LH_C5R2 &left_index_tap KEY_LH_C4R2 &left_index_tap KEY_LH_C3R2 &left_index_tap KEY_LH_C2R2 &left_index_tap KEY_LH_C1R2 &trans &trans &trans &trans &trans &trans + &left_index_tap KEY_LH_C6R3 &left_index_tap KEY_LH_C5R3 &LeftIndexRing2 &left_index_tap KEY_LH_C3R3 &left_index_tap KEY_LH_C2R3 &left_index_tap KEY_LH_C1R3 &trans &trans &trans &kp RIGHT_RING2_KEY &trans &trans + &left_index_tap KEY_LH_C6R4 &LeftIndexPinky &LeftIndexRing1 &LeftIndexMiddy &none &left_index_tap KEY_LH_C1R4 &RightPlainKey &kp RIGHT_INDEX_KEY &kp RIGHT_MIDDY_KEY &kp RIGHT_RING1_KEY &kp RIGHT_PINKY_KEY &trans + &left_index_tap KEY_LH_C6R5 &left_index_tap KEY_LH_C5R5 &left_index_tap KEY_LH_C4R5 &left_index_tap KEY_LH_C3R5 &left_index_tap KEY_LH_C2R5 &left_index_tap KEY_LH_C1R5 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &left_index_tap KEY_LH_C5R6 &left_index_tap KEY_LH_C4R6 &left_index_tap KEY_LH_C3R6 &left_index_tap KEY_LH_C2R6 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + >; + }; + + layer_RightPinky { + bindings = < + &trans &trans &trans &trans &trans &right_pinky_tap KEY_RH_C2R1 &right_pinky_tap KEY_RH_C3R1 &right_pinky_tap KEY_RH_C4R1 &right_pinky_tap KEY_RH_C5R1 &right_pinky_tap KEY_RH_C6R1 + &trans &trans &trans &trans &trans &trans &right_pinky_tap KEY_RH_C1R2 &right_pinky_tap KEY_RH_C2R2 &right_pinky_tap KEY_RH_C3R2 &right_pinky_tap KEY_RH_C4R2 &right_pinky_tap KEY_RH_C5R2 &right_pinky_tap KEY_RH_C6R2 + &trans &trans &kp LEFT_RING2_KEY &trans &trans &trans &right_pinky_tap KEY_RH_C1R3 &right_pinky_tap KEY_RH_C2R3 &right_pinky_tap KEY_RH_C3R3 &RightPinkyRing2 &right_pinky_tap KEY_RH_C5R3 &right_pinky_tap KEY_RH_C6R3 + &trans &kp LEFT_PINKY_KEY &kp LEFT_RING1_KEY &kp LEFT_MIDDY_KEY &kp LEFT_INDEX_KEY &LeftPlainKey &right_pinky_tap KEY_RH_C1R4 &RightPinkyIndex &RightPinkyMiddy &RightPinkyRing1 &none &right_pinky_tap KEY_RH_C6R4 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &right_pinky_tap KEY_RH_C1R5 &right_pinky_tap KEY_RH_C2R5 &right_pinky_tap KEY_RH_C3R5 &right_pinky_tap KEY_RH_C4R5 &right_pinky_tap KEY_RH_C5R5 &right_pinky_tap KEY_RH_C6R5 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &right_pinky_tap KEY_RH_C2R6 &right_pinky_tap KEY_RH_C3R6 &right_pinky_tap KEY_RH_C4R6 &right_pinky_tap KEY_RH_C5R6 &trans + >; + }; + + layer_RightRing1 { + bindings = < + &trans &trans &trans &trans &trans &right_ring1_tap KEY_RH_C2R1 &right_ring1_tap KEY_RH_C3R1 &right_ring1_tap KEY_RH_C4R1 &right_ring1_tap KEY_RH_C5R1 &right_ring1_tap KEY_RH_C6R1 + &trans &trans &trans &trans &trans &trans &right_ring1_tap KEY_RH_C1R2 &right_ring1_tap KEY_RH_C2R2 &right_ring1_tap KEY_RH_C3R2 &right_ring1_tap KEY_RH_C4R2 &right_ring1_tap KEY_RH_C5R2 &right_ring1_tap KEY_RH_C6R2 + &trans &trans &kp LEFT_RING2_KEY &trans &trans &trans &right_ring1_tap KEY_RH_C1R3 &right_ring1_tap KEY_RH_C2R3 &right_ring1_tap KEY_RH_C3R3 &RightRing1Ring2 &right_ring1_tap KEY_RH_C5R3 &right_ring1_tap KEY_RH_C6R3 + &trans &kp LEFT_PINKY_KEY &kp LEFT_RING1_KEY &kp LEFT_MIDDY_KEY &kp LEFT_INDEX_KEY &LeftPlainKey &right_ring1_tap KEY_RH_C1R4 &RightRing1Index &RightRing1Middy &none &RightRing1Pinky &right_ring1_tap KEY_RH_C6R4 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &right_ring1_tap KEY_RH_C1R5 &right_ring1_tap KEY_RH_C2R5 &right_ring1_tap KEY_RH_C3R5 &right_ring1_tap KEY_RH_C4R5 &right_ring1_tap KEY_RH_C5R5 &right_ring1_tap KEY_RH_C6R5 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &right_ring1_tap KEY_RH_C2R6 &right_ring1_tap KEY_RH_C3R6 &right_ring1_tap KEY_RH_C4R6 &right_ring1_tap KEY_RH_C5R6 &trans + >; + }; + + layer_RightRing2 { + bindings = < + &trans &trans &trans &trans &trans &right_ring2_tap KEY_RH_C2R1 &right_ring2_tap KEY_RH_C3R1 &right_ring2_tap KEY_RH_C4R1 &right_ring2_tap KEY_RH_C5R1 &right_ring2_tap KEY_RH_C6R1 + &trans &trans &trans &trans &trans &trans &right_ring2_tap KEY_RH_C1R2 &right_ring2_tap KEY_RH_C2R2 &right_ring2_tap KEY_RH_C3R2 &right_ring2_tap KEY_RH_C4R2 &right_ring2_tap KEY_RH_C5R2 &right_ring2_tap KEY_RH_C6R2 + &trans &trans &kp LEFT_RING2_KEY &trans &trans &trans &right_ring2_tap KEY_RH_C1R3 &right_ring2_tap KEY_RH_C2R3 &right_ring2_tap KEY_RH_C3R3 &none &right_ring2_tap KEY_RH_C5R3 &right_ring2_tap KEY_RH_C6R3 + &trans &kp LEFT_PINKY_KEY &kp LEFT_RING1_KEY &kp LEFT_MIDDY_KEY &kp LEFT_INDEX_KEY &LeftPlainKey &right_ring2_tap KEY_RH_C1R4 &RightRing2Index &RightRing2Middy &RightRing2Ring1 &RightRing2Pinky &right_ring2_tap KEY_RH_C6R4 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &right_ring2_tap KEY_RH_C1R5 &right_ring2_tap KEY_RH_C2R5 &right_ring2_tap KEY_RH_C3R5 &right_ring2_tap KEY_RH_C4R5 &right_ring2_tap KEY_RH_C5R5 &right_ring2_tap KEY_RH_C6R5 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &right_ring2_tap KEY_RH_C2R6 &right_ring2_tap KEY_RH_C3R6 &right_ring2_tap KEY_RH_C4R6 &right_ring2_tap KEY_RH_C5R6 &trans + >; + }; + + layer_RightMiddy { + bindings = < + &trans &trans &trans &trans &trans &right_middy_tap KEY_RH_C2R1 &right_middy_tap KEY_RH_C3R1 &right_middy_tap KEY_RH_C4R1 &right_middy_tap KEY_RH_C5R1 &right_middy_tap KEY_RH_C6R1 + &trans &trans &trans &trans &trans &trans &right_middy_tap KEY_RH_C1R2 &right_middy_tap KEY_RH_C2R2 &right_middy_tap KEY_RH_C3R2 &right_middy_tap KEY_RH_C4R2 &right_middy_tap KEY_RH_C5R2 &right_middy_tap KEY_RH_C6R2 + &trans &trans &kp LEFT_RING2_KEY &trans &trans &trans &right_middy_tap KEY_RH_C1R3 &right_middy_tap KEY_RH_C2R3 &right_middy_tap KEY_RH_C3R3 &RightMiddyRing2 &right_middy_tap KEY_RH_C5R3 &right_middy_tap KEY_RH_C6R3 + &trans &kp LEFT_PINKY_KEY &kp LEFT_RING1_KEY &kp LEFT_MIDDY_KEY &kp LEFT_INDEX_KEY &LeftPlainKey &right_middy_tap KEY_RH_C1R4 &RightMiddyIndex &none &RightMiddyRing1 &RightMiddyPinky &right_middy_tap KEY_RH_C6R4 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &right_middy_tap KEY_RH_C1R5 &right_middy_tap KEY_RH_C2R5 &right_middy_tap KEY_RH_C3R5 &right_middy_tap KEY_RH_C4R5 &right_middy_tap KEY_RH_C5R5 &right_middy_tap KEY_RH_C6R5 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &right_middy_tap KEY_RH_C2R6 &right_middy_tap KEY_RH_C3R6 &right_middy_tap KEY_RH_C4R6 &right_middy_tap KEY_RH_C5R6 &trans + >; + }; + + layer_RightIndex { + bindings = < + &trans &trans &trans &trans &trans &right_index_tap KEY_RH_C2R1 &right_index_tap KEY_RH_C3R1 &right_index_tap KEY_RH_C4R1 &right_index_tap KEY_RH_C5R1 &right_index_tap KEY_RH_C6R1 + &trans &trans &trans &trans &trans &trans &right_index_tap KEY_RH_C1R2 &right_index_tap KEY_RH_C2R2 &right_index_tap KEY_RH_C3R2 &right_index_tap KEY_RH_C4R2 &right_index_tap KEY_RH_C5R2 &right_index_tap KEY_RH_C6R2 + &trans &trans &kp LEFT_RING2_KEY &trans &trans &trans &right_index_tap KEY_RH_C1R3 &right_index_tap KEY_RH_C2R3 &right_index_tap KEY_RH_C3R3 &RightIndexRing2 &right_index_tap KEY_RH_C5R3 &right_index_tap KEY_RH_C6R3 + &trans &kp LEFT_PINKY_KEY &kp LEFT_RING1_KEY &kp LEFT_MIDDY_KEY &kp LEFT_INDEX_KEY &LeftPlainKey &right_index_tap KEY_RH_C1R4 &none &RightIndexMiddy &RightIndexRing1 &RightIndexPinky &right_index_tap KEY_RH_C6R4 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &right_index_tap KEY_RH_C1R5 &right_index_tap KEY_RH_C2R5 &right_index_tap KEY_RH_C3R5 &right_index_tap KEY_RH_C4R5 &right_index_tap KEY_RH_C5R5 &right_index_tap KEY_RH_C6R5 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &right_index_tap KEY_RH_C2R6 &right_index_tap KEY_RH_C3R6 &right_index_tap KEY_RH_C4R6 &right_index_tap KEY_RH_C5R6 &trans + >; + }; + + layer_Cursor { + bindings = < + &none &none &none &none &none &none &none &none &none &none + &kp ESC &kp RET &kp SPACE &kp TAB &kp DEL &kp INS &kp INS &kp DEL &kp TAB &kp SPACE &kp RET &kp ESC + &kp _C(K) &sk LSHFT &kp _REDO &kp _UNDO &kp BSPC &kp _CUT &kp _CUT &kp BSPC &kp _UNDO &kp _REDO &sk LSHFT &kp _C(K) + &kp _C(L) &kp LEFT_PINKY_MOD &kp LEFT_RING1_MOD &kp LEFT_MIDDY_MOD &kp LEFT_INDEX_MOD &kp _COPY &kp _COPY &kp LEFT &kp UP &kp DOWN &kp RIGHT &kp _C(L) + &kp _C(J) &kp _C(A) &select_line &select_word &kp _FIND &kp _PASTE &mod_tab _A_TAB &mod_tab _G_TAB &kp TAB &select_none &extend_line &extend_word &kp _PASTE &kp HOME &kp PG_UP &kp PG_DN &kp END &kp _C(J) + &kp _C(H) &kp _FIND_PREV &extend_line &extend_word &kp _FIND_NEXT &none &mod_tab LCTL &tog LAYER_Cursor &kp _C(A) &select_line &select_word &kp _FIND &kp _FIND_PREV &kp _FIND_NEXT &kp _C(H) &kp LG(DOT) + >; + }; + + layer_Number { + bindings = < + &none &none &none &none &none &none &none &none &none &none + &kp ESC &kp RET &kp SPACE &kp TAB &kp DEL &kp INS &kp CARET &kp DLLR &kp HASH &kp AT &kp EXCL &kp PIPE + &none &sk LSHFT &kp _REDO &kp _UNDO &kp BSPC &kp A &kp PRCNT &kp _KP_N7 &kp _KP_N8 &kp _KP_N9 &kp COLON &kp K + &kp KP_NUM &kp LEFT_PINKY_MOD &kp LEFT_RING1_MOD &kp LEFT_MIDDY_MOD &kp LEFT_INDEX_MOD &kp B &kp _KP_PLUS &kp _KP_N4 &kp _KP_N5 &kp _KP_N6 &kp _KP_MINUS &kp J + &none &kp _C(A) &select_line &select_word &kp UNDER &kp C &kp D &kp E &kp F &kp LT &kp GT &kp _KP_EQUAL &kp _KP_ASTERISK &kp _KP_N1 &kp _KP_N2 &kp _KP_N3 &kp _KP_SLASH &kp LS(G) + &none &none &extend_line &extend_word &kp X &none &none &tog LAYER_Number &kp _KP_COMMA &kp _KP_DOT &kp _KP_N0 &trans &trans &trans &trans &kp TILDE + >; + }; + + layer_Function { + bindings = < + &none &none &none &none &none &none &none &none &none &none + &kp ESC &kp RET &kp SPACE &kp TAB &kp DEL &kp INS &kp C_MEDIA_HOME &kp C_PLAY &kp C_PREV &kp C_NEXT &kp C_STOP &kp C_EJECT + &none &sk LSHFT &kp _REDO &kp _UNDO &kp BSPC &none &kp K_WWW &kp F7 &kp F8 &kp F9 &kp F10 &kp F13 + &kp CAPS &kp LEFT_PINKY_MOD &kp LEFT_RING1_MOD &kp LEFT_MIDDY_MOD &kp LEFT_INDEX_MOD &none &kp K_CALC &kp F4 &kp F5 &kp F6 &kp F11 &kp F14 + &none &kp _C(A) &select_line &select_word &none &none &none &none &none &kp C_PREV &kp C_NEXT &kp C_PP &kp C_AL_FILES &kp F1 &kp F2 &kp F3 &kp F12 &kp F15 + &none &none &extend_line &extend_word &none &none &none &tog LAYER_Function &kp C_MUTE &kp C_VOL_DN &kp C_VOL_UP &kp C_BRI_MAX &kp C_BRI_UP &kp C_BRI_DN &kp C_BRI_MIN &kp C_BRI_AUTO + >; + }; + + layer_Emoji { + bindings = < + &emoji_cloudy &emoji_mostly_cloudy &emoji_partly_cloudy &emoji_mostly_sunny &emoji_sunny &emoji_new_moon &emoji_moon_crescent &emoji_moon_quarter &emoji_moon_gibbous &emoji_full_moon + &emoji_rainbow &emoji_light_skin_tone &emoji_medium_light_skin_tone &emoji_medium_skin_tone &emoji_medium_dark_skin_tone &emoji_dark_skin_tone &emoji_tada &emoji_heart &emoji_fire &emoji_muscle &emoji_person_climbing &emoji_lab_coat + &emoji_left_arrow &emoji_bald &emoji_red_hair &emoji_curly_hair &emoji_white_hair &emoji_right_arrow &emoji_face_laugh &emoji_face_smile &emoji_face_eyes &emoji_face_joke &emoji_face_fear &emoji_face_surprise + &emoji_female_sign &emoji_skin_tone_preset &emoji_zwj &emoji_gender_sign_preset &emoji_hair_style_preset &emoji_male_sign &emoji_gesture_attention &emoji_gesture_approval &emoji_gesture_gratitude &emoji_gesture_anxiety &emoji_gesture_despair &emoji_gesture_curious + &emoji_old_woman &emoji_woman &emoji_girl &emoji_boy &emoji_man &emoji_old_man &emoji_cityscape &emoji_cityscape_dusk &emoji_cityscape_night &emoji_astronaut &emoji_rocket &emoji_moon_stars &emoji_person_tipping_hand &emoji_person_gesturing_ok &emoji_person_bowing &emoji_person_raising_hand &emoji_person_gesturing_no &emoji_person_shrugging + &emoji_sunrise_mountains &emoji_sunrise &emoji_baby &emoji_baby_bottle &none &kp LSHFT &none &tog LAYER_Emoji &emoji_gesture_hands &emoji_gesture_point &emoji_gesture_thumbs &emoji_checkoff &emoji_100 &emoji_warning &emoji_x &emoji_question + >; + }; + + layer_Symbol { + bindings = < + &none &none &none &none &none &none &none &none &none &none + &none &kp GRAVE &kp LPAR &kp RPAR &kp SEMI &kp COMMA &none &none &none &none &none &none + &kp EXCL &kp LBRC &kp SQT &kp LS(N2) &kp RBRC &kp QMARK &kp SEMI &kp RIGHT_INDEX_MOD &kp RIGHT_MIDDY_MOD &kp RIGHT_RING1_MOD &kp RIGHT_PINKY_MOD &none + &kp BSLH &kp CARET &kp EQUAL &kp UNDER &kp DLLR &kp STAR &kp DOT &kp BSPC &kp TAB &kp SPACE &kp RET &none + &kp LS(SQT) &kp LT &kp LS(NON_US_BSLH) &kp MINUS &kp GT &kp FSLH &kp NON_US_BSLH &kp DOT &kp STAR &none &none &none &kp FSLH &kp DEL &kp LS(TAB) &none &none &none + &kp LS(NON_US_HASH) &kp LS(N7) &kp LBKT &kp RBKT &kp PLUS &kp PRCNT &kp COLON &kp SEMI &tog LAYER_Symbol &none &none &trans &trans &trans &trans &none + >; + }; + + layer_Mouse { + bindings = < + &none &none &none &none &none &none &none &none &none &none + &none &none &none &none &none &none &none &none &none &none &none &none + &none &none &msc SCRL_LEFT &mmv MOVE_UP &msc SCRL_RIGHT &none &mkp MCLK &kp RIGHT_INDEX_MOD &kp RIGHT_MIDDY_MOD &kp RIGHT_RING1_MOD &kp RIGHT_PINKY_MOD &none + &none &none &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_RIGHT &none &mkp LCLK &mmv MOVE_LEFT &mmv MOVE_UP &mmv MOVE_DOWN &mmv MOVE_RIGHT &none + &none &none &none &msc SCRL_DOWN &msc SCRL_UP &none &mkp MCLK &none &none &none &none &none &mkp RCLK &msc SCRL_LEFT &msc SCRL_UP &msc SCRL_DOWN &msc SCRL_RIGHT &none + &none &none &none &none &none &mkp LCLK &mkp RCLK &none &tog LAYER_Mouse &none &none &none &none &none &none &none + >; + }; + + layer_System { + bindings = < + &none &none &none &none &none &none &none &none &none &none + &none &none &none &none &none &none &none &none &none &none &none &none + &none &none &rgb_ug RGB_HUD &rgb_ug RGB_HUI &none &none &rgb_ug RGB_SAI &kp RIGHT_INDEX_MOD &kp RIGHT_MIDDY_MOD &kp RIGHT_RING1_MOD &kp RIGHT_PINKY_MOD &rgb_ug RGB_SAD + &rgb_ug RGB_TOG &rgb_ug RGB_EFR &rgb_ug RGB_BRD &rgb_ug RGB_BRI &rgb_ug RGB_EFF &kp K_APP &rgb_ug RGB_HUI &kp K_APP &kp _LOCK &kp _SLEEP &kp _POWER &rgb_ug RGB_HUD + &none &rgb_ug RGB_SPD &rgb_ug RGB_SAD &rgb_ug RGB_SAI &rgb_ug RGB_SPI &none &kp _LOCK &kp _SLEEP &kp _POWER &none &none &none &rgb_ug RGB_SPI &rgb_ug RGB_TOG &kp PSCRN &kp SLCK &kp PAUSE_BREAK &rgb_ug RGB_SPD + &none &none &none &none &none &kp PSCRN &kp SLCK &kp PAUSE_BREAK &tog LAYER_System &none &linux_magic_sysrq &rgb_ug RGB_EFF &rgb_ug RGB_BRI &rgb_ug RGB_BRD &rgb_ug RGB_EFR &none + >; + }; + + layer_World { + bindings = < + &none &none &none &none &none &none &none &none &none &none + &none &none &none &none &none &none &none &none &none &none &none &none + &none &world_degree_sign &world_y_base &world_o_base &world_u_base &none &none &none &kp LALT &kp RALT &none &none + &none &world_consonants_base &world_i_base &world_e_base &world_a_base &none &none &kp LSHFT &kp LCTRL &kp RCTRL &kp RSHFT &none + &world_currency_base &world_quotes_left_base &world_exclaim_left &world_question_left &world_quotes_right_base &none &none &none &none &none &none &none &none &none &none &none &none &none + &world_micro_sign &world_section_sign &world_paragraph_sign &world_o_ordinal &world_a_ordinal &none &none &tog LAYER_World &tog LAYER_World &none &none &none &none &none &none &none + >; + }; + + layer_Gaming { + bindings = < + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &kp MINUS &kp GRAVE &kp B &kp N &kp M &kp SQT &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH + &kp T &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P + &kp G &kp LSHFT &kp A &kp S &kp D &kp F &kp ESC &kp RET &kp PAUSE_BREAK &kp BSPC &kp DEL &trans &kp G &kp H &kp J &kp K &kp L &kp SEMI + &kp V &kp LCTRL &kp Z &kp X &kp C &kp SPACE &kp LALT &kp LGUI &tog LAYER_Gaming &trans &trans &trans &trans &trans &trans &trans + >; + }; + + layer_Factory { + bindings = < + &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 + &kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH + &kp ESC &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT + &kp GRAVE &kp Z &kp X &kp C &kp V &kp B &kp LSHFT &kp LCTRL &lower &kp LGUI &kp RCTRL &kp RSHFT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp PG_UP + &magic LAYER_Magic 0 &kp HOME &kp END &kp LEFT &kp RIGHT &kp BSPC &kp DEL &kp LALT &kp RALT &kp RET &kp SPACE &kp UP &kp DOWN &kp LBKT &kp RBKT &kp PG_DN + >; + }; + + layer_Lower { + bindings = < + &kp C_BRI_DN &kp C_BRI_UP &kp C_PREV &kp C_NEXT &kp C_PP &kp C_MUTE &kp C_VOL_DN &kp C_VOL_UP &none &kp PAUSE_BREAK + &kp EQUAL &none &none &none &none &kp HOME &kp LPAR &kp KP_NUM &kp KP_EQUAL &kp KP_SLASH &kp KP_MULTIPLY &kp PRINTSCREEN + &kp TAB &none &none &kp UP_ARROW &none &kp END &kp RPAR &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp SCROLLLOCK + &kp ESC &none &kp LEFT_ARROW &kp DOWN_ARROW &kp RIGHT_ARROW &kp PG_UP &kp PERCENT &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS &kp KP_NUM + &kp GRAVE &kp K_APP &none &kp F11 &kp F12 &kp PG_DN &tog LAYER_Function &tog LAYER_Typing &tog LAYER_Gaming &tog LAYER_Gaming &tog LAYER_Typing &tog LAYER_System &kp COMMA &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_ENTER &kp LALT + &magic LAYER_Magic 0 &kp CAPS &kp INS &kp F11 &tog LAYER_Emoji &tog LAYER_Cursor &tog LAYER_Number &tog LAYER_Lower &tog LAYER_Lower &tog LAYER_Mouse &tog LAYER_Symbol &tog LAYER_World &kp KP_N0 &kp KP_DOT &kp KP_ENTER &magic LAYER_Magic 0 + >; + }; + + layer_Magic { + bindings = < + &bt BT_CLR &none &none &none &none &none &none &none &none &bt BT_CLR_ALL + &to 0 &to 1 &to 2 &to 3 &to 4 &to 5 &to 6 &to 7 &to 8 &none &none &none + &none &rgb_ug RGB_SPI &rgb_ug RGB_SAI &rgb_ug RGB_HUI &rgb_ug RGB_BRI &rgb_ug RGB_TOG &none &none &none &none &none &none + &bootloader &rgb_ug RGB_SPD &rgb_ug RGB_SAD &rgb_ug RGB_HUD &rgb_ug RGB_BRD &rgb_ug RGB_EFF &none &none &none &none &none &bootloader + &sys_reset &none &none &none &none &none &bt_2 &bt_3 &tog 29 &none &none &none &none &none &none &none &none &sys_reset + &none &none &none &none &none &bt_0 &bt_1 &out OUT_USB &none &none &none &none &none &none &none &none + >; + }; + + }; +};