diff --git a/config/glove80.keymap b/config/glove80.keymap index b42ce4e..642fae8 100644 --- a/config/glove80.keymap +++ b/config/glove80.keymap @@ -14,7 +14,7 @@ */ #include -/* Include all behaviour includes needed */ +/* Include all behavior includes needed */ #include #include #include @@ -22,23 +22,24 @@ /* Automatically generated layer name #define */ #define LAYER_QWERTY 0 -#define LAYER_BottomRowModifiers 1 -#define LAYER_Lower 2 -#define LAYER_Magic 3 -#define LAYER_Cursor 4 -#define LAYER_Typing 5 -#define LAYER_Factory 6 -#define LAYER_RetroKeys 7 -#define LAYER_LeftPinky 8 -#define LAYER_LeftRing1 9 -#define LAYER_LeftRing2 10 -#define LAYER_LeftMiddy 11 -#define LAYER_LeftIndex 12 -#define LAYER_RightPinky 13 -#define LAYER_RightRing1 14 -#define LAYER_RightRing2 15 -#define LAYER_RightMiddy 16 -#define LAYER_RightIndex 17 +#define LAYER_LeftPinky 1 +#define LAYER_LeftRing1 2 +#define LAYER_LeftRing2 3 +#define LAYER_LeftMiddy 4 +#define LAYER_LeftIndex 5 +#define LAYER_RightPinky 6 +#define LAYER_RightRing1 7 +#define LAYER_RightRing2 8 +#define LAYER_RightMiddy 9 +#define LAYER_RightIndex 10 +#define LAYER_Cursor 11 +#define LAYER_Number 12 +#define LAYER_Function 13 +#define LAYER_Symbol 14 +#define LAYER_Mouse 15 +#define LAYER_Lower 16 +#define LAYER_Magic 17 +#define LAYER_32 18 /* To deal with the situation where there is no Lower layer, to keep &lower happy */ #ifndef LAYER_Lower @@ -276,23 +277,18 @@ #define POS_RH_C6R5 63 #define POS_RH_C6R6 79 - /* Custom Defined Behaviors */ +/* Custom Defined Behaviors */ / { - // Tailorkey Version 2.35b -// Default MoErgo Glove80 QWERTY Keymap -// Incorporating best practices from Sunaku v35 and others -// https://sites.google.com/view/keyboards/glove80_tailorkey -// -////////////////////////////////////////////////////////////// // NOTE: Use the `#define` settings below to customize this keymap! // For example, here are the main optional features you can enable: #define DIFFICULTY_LEVEL 0 // 0:custom, 1:easy -> 5:hard (see below) #define ENFORCE_BILATERAL // cancels single-handed home row mod+tap -// TIP: Add more setting overrides here instead of editing them below.x - +//#define WORLD_USE_COMPOSE // use native Compose in place of Unicode +// TIP: Add more setting overrides here instead of editing them below. +#define OPERATING_SYSTEM 'M' // macos ////////////////////////////////////////////////////////////////////////////// // -// Sunaku's Keymap v35 -- "Glorious Engrammer" +// Sunaku's Keymap v36 -- "Glorious Engrammer" // - https://github.com/sunaku/glove80-keymaps // ////////////////////////////////////////////////////////////////////////////// @@ -302,7 +298,7 @@ // 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 bel) +// #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) @@ -310,11 +306,32 @@ // #define DIFFICULTY_LEVEL 5 // expert (100ms) // #if defined(DIFFICULTY_LEVEL) && DIFFICULTY_LEVEL > 0 -#define DIFFICULTY_THRESHOLD ((6-DIFFICULTY_LEVEL)*100) -#define HOMEY_HOLDING_TIME DIFFICULTY_THRESHOLD -#define INDEX_HOLDING_TIME DIFFICULTY_THRESHOLD -#define PLAIN_HOLDING_TIME DIFFICULTY_THRESHOLD -#define SPACE_HOLDING_TIME DIFFICULTY_THRESHOLD +#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 // @@ -510,9 +527,9 @@ #define KEY_LH_C2R5 K #define KEY_LH_C1R5 MINUS #define KEY_LH_T1 ESC -#define KEY_LH_T2 LEFT +#define KEY_LH_T2 UP #define KEY_LH_T3 DOWN -#define KEY_RH_T3 UP +#define KEY_RH_T3 LEFT #define KEY_RH_T2 RIGHT #define KEY_RH_T1 ENTER #define KEY_RH_C1R5 FSLH @@ -592,9 +609,9 @@ #define KEY_LH_C2R5 K #define KEY_LH_C1R5 MINUS #define KEY_LH_T1 ESC -#define KEY_LH_T2 LEFT +#define KEY_LH_T2 UP #define KEY_LH_T3 DOWN -#define KEY_RH_T3 UP +#define KEY_RH_T3 LEFT #define KEY_RH_T2 RIGHT #define KEY_RH_T1 ENTER #define KEY_RH_C1R5 QMARK @@ -674,9 +691,9 @@ #define KEY_LH_C2R5 K #define KEY_LH_C1R5 X #define KEY_LH_T1 ESC -#define KEY_LH_T2 LEFT +#define KEY_LH_T2 UP #define KEY_LH_T3 DOWN -#define KEY_RH_T3 UP +#define KEY_RH_T3 LEFT #define KEY_RH_T2 RIGHT #define KEY_RH_T1 ENTER #define KEY_RH_C1R5 B @@ -730,7 +747,7 @@ #define KEY_LH_C4R3 W #define KEY_LH_C3R3 F #define KEY_LH_C2R3 P -#define KEY_LH_C1R3 G +#define KEY_LH_C1R3 B #define KEY_RH_C1R3 J #define KEY_RH_C2R3 L #define KEY_RH_C3R3 U @@ -756,9 +773,9 @@ #define KEY_LH_C2R5 D #define KEY_LH_C1R5 V #define KEY_LH_T1 ESC -#define KEY_LH_T2 LEFT +#define KEY_LH_T2 UP #define KEY_LH_T3 DOWN -#define KEY_RH_T3 UP +#define KEY_RH_T3 LEFT #define KEY_RH_T2 RIGHT #define KEY_RH_T1 ENTER #define KEY_RH_C1R5 K @@ -838,9 +855,9 @@ #define KEY_LH_C2R5 V #define KEY_LH_C1R5 B #define KEY_LH_T1 ESC -#define KEY_LH_T2 LEFT +#define KEY_LH_T2 UP #define KEY_LH_T3 DOWN -#define KEY_RH_T3 UP +#define KEY_RH_T3 LEFT #define KEY_RH_T2 RIGHT #define KEY_RH_T1 ENTER #define KEY_RH_C1R5 K @@ -920,9 +937,9 @@ #define KEY_LH_C2R5 V #define KEY_LH_C1R5 B #define KEY_LH_T1 ESC -#define KEY_LH_T2 LEFT +#define KEY_LH_T2 UP #define KEY_LH_T3 DOWN -#define KEY_RH_T3 UP +#define KEY_RH_T3 LEFT #define KEY_RH_T2 RIGHT #define KEY_RH_T1 ENTER #define KEY_RH_C1R5 N @@ -1002,9 +1019,9 @@ #define KEY_LH_C2R5 V #define KEY_LH_C1R5 B #define KEY_LH_T1 ESC -#define KEY_LH_T2 LEFT +#define KEY_LH_T2 UP #define KEY_LH_T3 DOWN -#define KEY_RH_T3 UP +#define KEY_RH_T3 LEFT #define KEY_RH_T2 RIGHT #define KEY_RH_T1 ENTER #define KEY_RH_C1R5 P @@ -1084,9 +1101,9 @@ #define KEY_LH_C2R5 C #define KEY_LH_C1R5 V #define KEY_LH_T1 ESC -#define KEY_LH_T2 LEFT +#define KEY_LH_T2 UP #define KEY_LH_T3 DOWN -#define KEY_RH_T3 UP +#define KEY_RH_T3 LEFT #define KEY_RH_T2 RIGHT #define KEY_RH_T1 ENTER #define KEY_RH_C1R5 K @@ -1166,9 +1183,9 @@ #define KEY_LH_C2R5 C #define KEY_LH_C1R5 FSLH #define KEY_LH_T1 ESC -#define KEY_LH_T2 LEFT +#define KEY_LH_T2 UP #define KEY_LH_T3 DOWN -#define KEY_RH_T3 UP +#define KEY_RH_T3 LEFT #define KEY_RH_T2 RIGHT #define KEY_RH_T1 ENTER #define KEY_RH_C1R5 G @@ -1195,24 +1212,36 @@ #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 { - - - // ** BEGIN: Tailorkey adjustment - shiftdance: shiftdance{ - compatible = "zmk,behavior-tap-dance"; - label = "SQuote"; - #binding-cells = <0>; - tapping-term-ms = <200>; - // for normal shift, use the following: - // bindings = <&kp RSHIFT>, <&caps_word>, <&kp CAPSLOCK>; - bindings = <&sticky_key_oneshot LSHIFT>, <&caps_word>, <&kp CAPSLOCK>; - }; - // ** END: Tailorkey adjustment - - - + ////////////////////////////////////////////////////////////////////////// // // Miryoku layers and home row mods (ported from my QMK endgame) @@ -1308,7 +1337,7 @@ behaviors { // (i.e. "register" them) for mod-click mouse usage (e.g. Ctrl-Click). // #ifndef HOMEY_HOLDING_TIME - #define HOMEY_HOLDING_TIME 270 // TAPPING_TERM + ALLOW_CROSSOVER_AFTER + #define HOMEY_HOLDING_TIME 240 // TAPPING_TERM + ALLOW_CROSSOVER_AFTER #endif // @@ -1317,7 +1346,7 @@ behaviors { // unintended activation of home row mods when you're actively typing. // #ifndef HOMEY_STREAK_DECAY - #define HOMEY_STREAK_DECAY 250 + #define HOMEY_STREAK_DECAY 160 #endif // @@ -1385,7 +1414,7 @@ behaviors { // (i.e. "register" them) for mod-click mouse usage (e.g. Shift-Click). // #ifndef INDEX_HOLDING_TIME - #define INDEX_HOLDING_TIME 170 + #define INDEX_HOLDING_TIME 180 #endif // @@ -1394,7 +1423,7 @@ behaviors { // unintended activation of home row mods when you're actively typing. // #ifndef INDEX_STREAK_DECAY - #define INDEX_STREAK_DECAY 150 + #define INDEX_STREAK_DECAY 100 #endif // @@ -1563,259 +1592,258 @@ behaviors { // // 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 - +#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; @@ -1827,7 +1855,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_pinky_bilateral: homey_left_pinky_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_PINKY_HOLDING_TYPE; @@ -1839,8 +1866,6 @@ behaviors { #binding-cells = <2>; bindings = <&left_pinky_hold>, <&kp>; }; - #endif - #ifdef ENFORCE_BILATERAL left_pinky_hold: homey_left_pinky_hold { compatible = "zmk,behavior-macro-one-param"; wait-ms = <0>; @@ -1848,12 +1873,16 @@ behaviors { #binding-cells = <1>; bindings = <¯o_param_1to1> - , <¯o_press &kp MACRO_PLACEHOLDER - &mo LAYER_LeftPinky> + , <¯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 - &mo LAYER_LeftPinky> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftPinky + , <¯o_release &mo LAYER_LeftPinky> + #endif ; }; left_pinky_tap: homey_left_pinky_tap { @@ -1872,7 +1901,6 @@ behaviors { , <¯o_tap &kp MACRO_PLACEHOLDER> ; }; - #endif #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 @@ -1890,19 +1918,18 @@ behaviors { #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 - +#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; @@ -1914,7 +1941,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_pinky_bilateral: homey_right_pinky_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_PINKY_HOLDING_TYPE; @@ -1926,8 +1952,6 @@ behaviors { #binding-cells = <2>; bindings = <&right_pinky_hold>, <&kp>; }; - #endif - #ifdef ENFORCE_BILATERAL right_pinky_hold: homey_right_pinky_hold { compatible = "zmk,behavior-macro-one-param"; wait-ms = <0>; @@ -1935,12 +1959,16 @@ behaviors { #binding-cells = <1>; bindings = <¯o_param_1to1> - , <¯o_press &kp MACRO_PLACEHOLDER - &mo LAYER_RightPinky> + , <¯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 - &mo LAYER_RightPinky> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightPinky + , <¯o_release &mo LAYER_RightPinky> + #endif ; }; right_pinky_tap: homey_right_pinky_tap { @@ -1959,7 +1987,6 @@ behaviors { , <¯o_tap &kp MACRO_PLACEHOLDER> ; }; - #endif #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 @@ -1977,19 +2004,18 @@ behaviors { #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 - +#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; @@ -2001,7 +2027,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_ring1_bilateral: homey_left_ring1_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_RING1_HOLDING_TYPE; @@ -2013,8 +2038,6 @@ behaviors { #binding-cells = <2>; bindings = <&left_ring1_hold>, <&kp>; }; - #endif - #ifdef ENFORCE_BILATERAL left_ring1_hold: homey_left_ring1_hold { compatible = "zmk,behavior-macro-one-param"; wait-ms = <0>; @@ -2022,12 +2045,16 @@ behaviors { #binding-cells = <1>; bindings = <¯o_param_1to1> - , <¯o_press &kp MACRO_PLACEHOLDER - &mo LAYER_LeftRing1> + , <¯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 - &mo LAYER_LeftRing1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftRing1 + , <¯o_release &mo LAYER_LeftRing1> + #endif ; }; left_ring1_tap: homey_left_ring1_tap { @@ -2046,7 +2073,6 @@ behaviors { , <¯o_tap &kp MACRO_PLACEHOLDER> ; }; - #endif #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 @@ -2064,19 +2090,18 @@ behaviors { #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 - +#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; @@ -2088,7 +2113,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_ring1_bilateral: homey_right_ring1_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_RING1_HOLDING_TYPE; @@ -2100,8 +2124,6 @@ behaviors { #binding-cells = <2>; bindings = <&right_ring1_hold>, <&kp>; }; - #endif - #ifdef ENFORCE_BILATERAL right_ring1_hold: homey_right_ring1_hold { compatible = "zmk,behavior-macro-one-param"; wait-ms = <0>; @@ -2109,12 +2131,16 @@ behaviors { #binding-cells = <1>; bindings = <¯o_param_1to1> - , <¯o_press &kp MACRO_PLACEHOLDER - &mo LAYER_RightRing1> + , <¯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 - &mo LAYER_RightRing1> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightRing1 + , <¯o_release &mo LAYER_RightRing1> + #endif ; }; right_ring1_tap: homey_right_ring1_tap { @@ -2133,7 +2159,6 @@ behaviors { , <¯o_tap &kp MACRO_PLACEHOLDER> ; }; - #endif #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 @@ -2151,19 +2176,18 @@ behaviors { #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 - +#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; @@ -2175,7 +2199,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_ring2_bilateral: homey_left_ring2_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_RING2_HOLDING_TYPE; @@ -2187,8 +2210,6 @@ behaviors { #binding-cells = <2>; bindings = <&left_ring2_hold>, <&kp>; }; - #endif - #ifdef ENFORCE_BILATERAL left_ring2_hold: homey_left_ring2_hold { compatible = "zmk,behavior-macro-one-param"; wait-ms = <0>; @@ -2196,12 +2217,16 @@ behaviors { #binding-cells = <1>; bindings = <¯o_param_1to1> - , <¯o_press &kp MACRO_PLACEHOLDER - &mo LAYER_LeftRing2> + , <¯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 - &mo LAYER_LeftRing2> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftRing2 + , <¯o_release &mo LAYER_LeftRing2> + #endif ; }; left_ring2_tap: homey_left_ring2_tap { @@ -2220,7 +2245,6 @@ behaviors { , <¯o_tap &kp MACRO_PLACEHOLDER> ; }; - #endif #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 @@ -2238,19 +2262,18 @@ behaviors { #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 - +#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; @@ -2262,7 +2285,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_ring2_bilateral: homey_right_ring2_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_RING2_HOLDING_TYPE; @@ -2274,8 +2296,6 @@ behaviors { #binding-cells = <2>; bindings = <&right_ring2_hold>, <&kp>; }; - #endif - #ifdef ENFORCE_BILATERAL right_ring2_hold: homey_right_ring2_hold { compatible = "zmk,behavior-macro-one-param"; wait-ms = <0>; @@ -2283,12 +2303,16 @@ behaviors { #binding-cells = <1>; bindings = <¯o_param_1to1> - , <¯o_press &kp MACRO_PLACEHOLDER - &mo LAYER_RightRing2> + , <¯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 - &mo LAYER_RightRing2> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightRing2 + , <¯o_release &mo LAYER_RightRing2> + #endif ; }; right_ring2_tap: homey_right_ring2_tap { @@ -2307,7 +2331,6 @@ behaviors { , <¯o_tap &kp MACRO_PLACEHOLDER> ; }; - #endif #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 @@ -2325,19 +2348,18 @@ behaviors { #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 - +#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; @@ -2349,7 +2371,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_middy_bilateral: homey_left_middy_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_MIDDY_HOLDING_TYPE; @@ -2361,8 +2382,6 @@ behaviors { #binding-cells = <2>; bindings = <&left_middy_hold>, <&kp>; }; - #endif - #ifdef ENFORCE_BILATERAL left_middy_hold: homey_left_middy_hold { compatible = "zmk,behavior-macro-one-param"; wait-ms = <0>; @@ -2370,12 +2389,16 @@ behaviors { #binding-cells = <1>; bindings = <¯o_param_1to1> - , <¯o_press &kp MACRO_PLACEHOLDER - &mo LAYER_LeftMiddy> + , <¯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 - &mo LAYER_LeftMiddy> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftMiddy + , <¯o_release &mo LAYER_LeftMiddy> + #endif ; }; left_middy_tap: homey_left_middy_tap { @@ -2394,7 +2417,6 @@ behaviors { , <¯o_tap &kp MACRO_PLACEHOLDER> ; }; - #endif #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 @@ -2412,19 +2434,18 @@ behaviors { #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 - +#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; @@ -2436,7 +2457,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_middy_bilateral: homey_right_middy_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_MIDDY_HOLDING_TYPE; @@ -2448,8 +2468,6 @@ behaviors { #binding-cells = <2>; bindings = <&right_middy_hold>, <&kp>; }; - #endif - #ifdef ENFORCE_BILATERAL right_middy_hold: homey_right_middy_hold { compatible = "zmk,behavior-macro-one-param"; wait-ms = <0>; @@ -2457,12 +2475,16 @@ behaviors { #binding-cells = <1>; bindings = <¯o_param_1to1> - , <¯o_press &kp MACRO_PLACEHOLDER - &mo LAYER_RightMiddy> + , <¯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 - &mo LAYER_RightMiddy> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightMiddy + , <¯o_release &mo LAYER_RightMiddy> + #endif ; }; right_middy_tap: homey_right_middy_tap { @@ -2481,7 +2503,6 @@ behaviors { , <¯o_tap &kp MACRO_PLACEHOLDER> ; }; - #endif #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 @@ -2499,19 +2520,18 @@ behaviors { #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 - +#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; @@ -2523,7 +2543,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_index_bilateral: homey_left_index_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_INDEX_HOLDING_TYPE; @@ -2535,8 +2554,6 @@ behaviors { #binding-cells = <2>; bindings = <&left_index_hold>, <&kp>; }; - #endif - #ifdef ENFORCE_BILATERAL left_index_hold: homey_left_index_hold { compatible = "zmk,behavior-macro-one-param"; wait-ms = <0>; @@ -2544,12 +2561,16 @@ behaviors { #binding-cells = <1>; bindings = <¯o_param_1to1> - , <¯o_press &kp MACRO_PLACEHOLDER - &mo LAYER_LeftIndex> + , <¯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 - &mo LAYER_LeftIndex> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_LeftIndex + , <¯o_release &mo LAYER_LeftIndex> + #endif ; }; left_index_tap: homey_left_index_tap { @@ -2568,7 +2589,6 @@ behaviors { , <¯o_tap &kp MACRO_PLACEHOLDER> ; }; - #endif #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 @@ -2586,19 +2606,18 @@ behaviors { #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 - +#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; @@ -2610,7 +2629,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_index_bilateral: homey_right_index_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_INDEX_HOLDING_TYPE; @@ -2622,8 +2640,6 @@ behaviors { #binding-cells = <2>; bindings = <&right_index_hold>, <&kp>; }; - #endif - #ifdef ENFORCE_BILATERAL right_index_hold: homey_right_index_hold { compatible = "zmk,behavior-macro-one-param"; wait-ms = <0>; @@ -2631,12 +2647,16 @@ behaviors { #binding-cells = <1>; bindings = <¯o_param_1to1> - , <¯o_press &kp MACRO_PLACEHOLDER - &mo LAYER_RightIndex> + , <¯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 - &mo LAYER_RightIndex> + , <¯o_release &kp MACRO_PLACEHOLDER> + #ifdef LAYER_RightIndex + , <¯o_release &mo LAYER_RightIndex> + #endif ; }; right_index_tap: homey_right_index_tap { @@ -2655,7 +2675,6 @@ behaviors { , <¯o_tap &kp MACRO_PLACEHOLDER> ; }; - #endif #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 @@ -2673,19 +2692,18 @@ behaviors { #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 - +#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; @@ -2697,7 +2715,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_ring1_pinky_bilateral: homey_left_ring1_pinky_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_RING1_HOLDING_TYPE; @@ -2709,21 +2726,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_ring1_tap>; }; - #endif #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 - +#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; @@ -2735,7 +2750,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_ring2_pinky_bilateral: homey_left_ring2_pinky_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_RING2_HOLDING_TYPE; @@ -2747,21 +2761,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_ring2_tap>; }; - #endif #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 - +#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; @@ -2773,7 +2785,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_middy_pinky_bilateral: homey_left_middy_pinky_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_MIDDY_HOLDING_TYPE; @@ -2785,21 +2796,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_middy_tap>; }; - #endif #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 - +#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; @@ -2811,7 +2820,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_index_pinky_bilateral: homey_left_index_pinky_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_INDEX_HOLDING_TYPE; @@ -2823,21 +2831,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_index_tap>; }; - #endif #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 - +#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; @@ -2849,7 +2855,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_ring1_pinky_bilateral: homey_right_ring1_pinky_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_RING1_HOLDING_TYPE; @@ -2861,21 +2866,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_ring1_tap>; }; - #endif #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 - +#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; @@ -2887,7 +2890,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_ring2_pinky_bilateral: homey_right_ring2_pinky_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_RING2_HOLDING_TYPE; @@ -2899,21 +2901,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_ring2_tap>; }; - #endif #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 - +#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; @@ -2925,7 +2925,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_middy_pinky_bilateral: homey_right_middy_pinky_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_MIDDY_HOLDING_TYPE; @@ -2937,21 +2936,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_middy_tap>; }; - #endif #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 - +#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; @@ -2963,7 +2960,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_index_pinky_bilateral: homey_right_index_pinky_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_INDEX_HOLDING_TYPE; @@ -2975,21 +2971,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_index_tap>; }; - #endif #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 - +#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; @@ -3001,7 +2995,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_pinky_ring1_bilateral: homey_left_pinky_ring1_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_PINKY_HOLDING_TYPE; @@ -3013,21 +3006,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_pinky_tap>; }; - #endif #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 - +#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; @@ -3039,7 +3030,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_ring2_ring1_bilateral: homey_left_ring2_ring1_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_RING2_HOLDING_TYPE; @@ -3051,21 +3041,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_ring2_tap>; }; - #endif #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 - +#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; @@ -3077,7 +3065,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_middy_ring1_bilateral: homey_left_middy_ring1_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_MIDDY_HOLDING_TYPE; @@ -3089,21 +3076,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_middy_tap>; }; - #endif #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 - +#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; @@ -3115,7 +3100,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_index_ring1_bilateral: homey_left_index_ring1_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_INDEX_HOLDING_TYPE; @@ -3127,21 +3111,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_index_tap>; }; - #endif #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 - +#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; @@ -3153,7 +3135,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_pinky_ring1_bilateral: homey_right_pinky_ring1_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_PINKY_HOLDING_TYPE; @@ -3165,21 +3146,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_pinky_tap>; }; - #endif #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 - +#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; @@ -3191,7 +3170,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_ring2_ring1_bilateral: homey_right_ring2_ring1_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_RING2_HOLDING_TYPE; @@ -3203,21 +3181,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_ring2_tap>; }; - #endif #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 - +#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; @@ -3229,7 +3205,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_middy_ring1_bilateral: homey_right_middy_ring1_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_MIDDY_HOLDING_TYPE; @@ -3241,21 +3216,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_middy_tap>; }; - #endif #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 - +#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; @@ -3267,7 +3240,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_index_ring1_bilateral: homey_right_index_ring1_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_INDEX_HOLDING_TYPE; @@ -3279,21 +3251,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_index_tap>; }; - #endif #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 - +#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; @@ -3305,7 +3275,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_pinky_ring2_bilateral: homey_left_pinky_ring2_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_PINKY_HOLDING_TYPE; @@ -3317,21 +3286,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_pinky_tap>; }; - #endif #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 - +#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; @@ -3343,7 +3310,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_ring1_ring2_bilateral: homey_left_ring1_ring2_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_RING1_HOLDING_TYPE; @@ -3355,21 +3321,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_ring1_tap>; }; - #endif #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 - +#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; @@ -3381,7 +3345,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_middy_ring2_bilateral: homey_left_middy_ring2_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_MIDDY_HOLDING_TYPE; @@ -3393,21 +3356,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_middy_tap>; }; - #endif #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 - +#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; @@ -3419,7 +3380,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_index_ring2_bilateral: homey_left_index_ring2_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_INDEX_HOLDING_TYPE; @@ -3431,21 +3391,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_index_tap>; }; - #endif #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 - +#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; @@ -3457,7 +3415,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_pinky_ring2_bilateral: homey_right_pinky_ring2_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_PINKY_HOLDING_TYPE; @@ -3469,21 +3426,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_pinky_tap>; }; - #endif #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 - +#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; @@ -3495,7 +3450,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_ring1_ring2_bilateral: homey_right_ring1_ring2_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_RING1_HOLDING_TYPE; @@ -3507,21 +3461,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_ring1_tap>; }; - #endif #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 - +#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; @@ -3533,7 +3485,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_middy_ring2_bilateral: homey_right_middy_ring2_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_MIDDY_HOLDING_TYPE; @@ -3545,21 +3496,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_middy_tap>; }; - #endif #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 - +#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; @@ -3571,7 +3520,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_index_ring2_bilateral: homey_right_index_ring2_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_INDEX_HOLDING_TYPE; @@ -3583,21 +3531,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_index_tap>; }; - #endif #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 - +#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; @@ -3609,7 +3555,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_pinky_middy_bilateral: homey_left_pinky_middy_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_PINKY_HOLDING_TYPE; @@ -3621,21 +3566,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_pinky_tap>; }; - #endif #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 - +#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; @@ -3647,7 +3590,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_ring1_middy_bilateral: homey_left_ring1_middy_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_RING1_HOLDING_TYPE; @@ -3659,21 +3601,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_ring1_tap>; }; - #endif #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 - +#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; @@ -3685,7 +3625,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_ring2_middy_bilateral: homey_left_ring2_middy_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_RING2_HOLDING_TYPE; @@ -3697,21 +3636,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_ring2_tap>; }; - #endif #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 - +#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; @@ -3723,7 +3660,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_index_middy_bilateral: homey_left_index_middy_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_INDEX_HOLDING_TYPE; @@ -3735,21 +3671,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_index_tap>; }; - #endif #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 - +#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; @@ -3761,7 +3695,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_pinky_middy_bilateral: homey_right_pinky_middy_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_PINKY_HOLDING_TYPE; @@ -3773,21 +3706,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_pinky_tap>; }; - #endif #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 - +#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; @@ -3799,7 +3730,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_ring1_middy_bilateral: homey_right_ring1_middy_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_RING1_HOLDING_TYPE; @@ -3811,21 +3741,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_ring1_tap>; }; - #endif #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 - +#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; @@ -3837,7 +3765,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_ring2_middy_bilateral: homey_right_ring2_middy_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_RING2_HOLDING_TYPE; @@ -3849,21 +3776,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_ring2_tap>; }; - #endif #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 - +#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; @@ -3875,7 +3800,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_index_middy_bilateral: homey_right_index_middy_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_INDEX_HOLDING_TYPE; @@ -3887,21 +3811,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_index_tap>; }; - #endif #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 - +#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; @@ -3913,7 +3835,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_pinky_index_bilateral: homey_left_pinky_index_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_PINKY_HOLDING_TYPE; @@ -3925,21 +3846,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_pinky_tap>; }; - #endif #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 - +#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; @@ -3951,7 +3870,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_ring1_index_bilateral: homey_left_ring1_index_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_RING1_HOLDING_TYPE; @@ -3963,21 +3881,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_ring1_tap>; }; - #endif #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 - +#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; @@ -3989,7 +3905,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_ring2_index_bilateral: homey_left_ring2_index_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_RING2_HOLDING_TYPE; @@ -4001,21 +3916,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_ring2_tap>; }; - #endif #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 - +#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; @@ -4027,7 +3940,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL left_middy_index_bilateral: homey_left_middy_index_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = LEFT_MIDDY_HOLDING_TYPE; @@ -4039,21 +3951,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&left_middy_tap>; }; - #endif #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 - +#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; @@ -4065,7 +3975,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_pinky_index_bilateral: homey_right_pinky_index_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_PINKY_HOLDING_TYPE; @@ -4077,21 +3986,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_pinky_tap>; }; - #endif #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 - +#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; @@ -4103,7 +4010,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_ring1_index_bilateral: homey_right_ring1_index_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_RING1_HOLDING_TYPE; @@ -4115,21 +4021,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_ring1_tap>; }; - #endif #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 - +#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; @@ -4141,7 +4045,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_ring2_index_bilateral: homey_right_ring2_index_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_RING2_HOLDING_TYPE; @@ -4153,21 +4056,19 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_ring2_tap>; }; - #endif #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 - +#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; @@ -4179,7 +4080,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&kp>; }; - #ifdef ENFORCE_BILATERAL right_middy_index_bilateral: homey_right_middy_index_bilateral { compatible = "zmk,behavior-hold-tap"; flavor = RIGHT_MIDDY_HOLDING_TYPE; @@ -4191,7 +4091,6 @@ behaviors { #binding-cells = <2>; bindings = <&kp>, <&right_middy_tap>; }; - #endif #define RightMiddyIndex right_middy_index_bilateral RIGHT_INDEX_MOD RIGHT_INDEX_KEY // @@ -4605,291 +4504,6299 @@ macros { tap-ms = ; bindings = <&kp LS(UP) &kp LS(_HOME)>; ) - // ** Sample string. This output is Rea@dn11{enter} - // ** Assigned to key Magic+F1 - mstr1: mstr1{ - label = "mstr1"; - compatible = "zmk,behavior-macro"; - #binding-cells = <0>; - wait-ms = <10>; - tap-ms = <40>; - bindings - = <¯o_press &kp LSHFT> - , <¯o_tap &kp R> - , <¯o_release &kp LSHFT> - , <¯o_tap &kp E &kp A &kp AT_SIGN &kp D &kp N &kp N1 &kp N1 &kp ENTER> - ; - }; - - // ** Sample ChatGPT prompt: grammar check: - // ** Assigned to key Magic+F2 - mstr2: mstr2{ - label = "mstr2"; - compatible = "zmk,behavior-macro"; - #binding-cells = <0>; - wait-ms = <10>; - tap-ms = <40>; - bindings - = <¯o_tap &kp G &kp R &kp A &kp M &kp M &kp A &kp R &kp SPACE &kp C &kp H &kp E &kp C &kp K &kp COLON> - , <¯o_press &kp LSHFT> - , <¯o_tap &kp ENTER &kp ENTER > - , <¯o_release &kp LSHFT> - , <¯o_press &kp LCTRL> - , <¯o_tap &kp V > - , <¯o_release &kp LCTRL> - , <¯o_tap &kp ENTER>; - }; - -// * macro end -}; + ////////////////////////////////////////////////////////////////////////// + // + // World layer - international characters + // + ////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////// -// -// ** COMBOS SECTION BEGIN -// -////////////////////////////////////////////////////////////////////////// -combos { - compatible = "zmk,combos"; + // + // 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 // - // 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. + // 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. // - #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>; - }; + // 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 - // Combo for F12 key - combo_f12 { - timeout-ms = <50>; - key-positions = <9 21>; - bindings = <&kp F12>; - }; - - // Combo for F11 key - combo_f11 { - timeout-ms = <50>; - key-positions = <8 20>; - bindings = <&kp F11>; - }; - - -}; -// ** COMBOS SECTION END - -}; - - /* 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 LG(LS(A)) &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp GLOBE - &kp EQUAL &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 - &mt LCTRL ESC &LeftPinky (A, LAYER_QWERTY) &LeftRing1 (S, LAYER_QWERTY) &LeftMiddy (D, LAYER_QWERTY) &LeftIndex (F, LAYER_QWERTY) &kp G &kp H &RightIndex (J, LAYER_QWERTY) &RightMiddy (K, LAYER_QWERTY) &RightRing1 (L, LAYER_QWERTY) &RightPinky (SEMI, LAYER_QWERTY) &mt RGUI SQT - &kp GRAVE &kp Z &kp X &kp C &kp V &kp B &mt LSHFT ESC &kp LALT &to 5 &mt RGUI PG_UP &to 2 &shiftdance &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp BSLH - &magic LAYER_Magic 0 &thumb LAYER_RetroKeys LEFT_PARENTHESIS &kp RPAR &kp LEFT &kp RIGHT &thumb LAYER_Cursor BACKSPACE &mt LGUI TAB &lower &mt LG(LA(LC(LSHFT))) PG_DN &mt RCTRL RET &kp SPACE &kp DOWN &kp UP &kp LBKT &kp RBKT &magic LAYER_Magic 0 - >; - }; - - layer_BottomRowModifiers { - 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 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - &trans &trans &trans &trans &trans &trans &trans &trans &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 LCTRL &kp LALT &kp LGUI &trans &trans &trans &trans &trans &trans &kp RGUI &kp RALT &kp RCTRL &trans &trans - >; - }; - - 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 - &trans &none &none &none &none &kp HOME &kp LEFT_PARENTHESIS &kp KP_NUM &kp KP_EQUAL &kp KP_SLASH &kp KP_MULTIPLY &kp PRINTSCREEN - &trans &none &none &kp UP_ARROW &none &kp END &kp RIGHT_PARENTHESIS &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp SCROLLLOCK - &trans &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 &none - &trans &kp K_APP &none &kp F11 &kp F12 &kp PG_DN &trans &trans &trans &kp LT &kp GT &trans &kp COMMA &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_ENTER &trans - &magic LAYER_Magic 0 &kp CAPS &trans &trans &trans &tog LAYER_Cursor &trans &to 0 &trans &trans &trans &kp DLLR &kp KP_N0 &kp KP_DOT &kp KP_ENTER &trans - >; - }; - - layer_Magic { - bindings = < - &mstr1 &mstr2 &none &none &none &none &none &none &bt BT_CLR &bt BT_CLR_ALL - &to 0 &to 1 &to 2 &to 3 &to 4 &to 5 &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 &to 2 &to 4 &to 5 &none &bootloader - &sys_reset &none &none &none &none &none &bt_2 &bt_3 &none &none &none &none &none &to 0 &to 1 &to 3 &none &sys_reset - &none &none &none &none &none &bt_0 &bt_1 &out OUT_USB &none &none &none &none &none &none &none &none - >; - }; - - layer_Cursor { - bindings = < - &none &none &none &none &none &none &none &none &none &none - &none &none &none &none &kp DEL &kp INS &kp INS &kp DEL &none &none &none &none - &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 DOWN &kp UP &kp RIGHT &kp _C(L) - &kp _C(J) &kp _C(A) &select_line &select_word &kp _FIND &kp _PASTE &kp LG(TAB) &kp LA(TAB) &none &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 &kp LG(D) &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_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 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - &trans &kp A &kp S &kp D &kp F &trans &trans &kp J &kp K &kp L &kp SEMI &trans - &trans &trans &trans &trans &trans &trans &kp LSHFT &trans &trans &trans &trans &kp RSHFT &trans &trans &trans &trans &trans &trans - &magic LAYER_Magic 0 &trans &trans &trans &trans &kp BSPC &trans &to 0 &trans &trans &trans &trans &trans &trans &trans &trans - >; - }; + // + // 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 - layer_Factory { - bindings = < - &kp NUMBER_0 &kp NUMBER_6 &kp NUMBER_2 &kp NUMBER_8 &kp NUMBER_4 &kp NUMBER_4 &kp NUMBER_8 &kp NUMBER_2 &kp NUMBER_6 &kp NUMBER_0 - &kp NUMBER_1 &kp NUMBER_7 &kp NUMBER_3 &kp NUMBER_9 &kp NUMBER_5 &kp NUMBER_0 &kp NUMBER_0 &kp NUMBER_5 &kp NUMBER_9 &kp NUMBER_3 &kp NUMBER_7 &kp NUMBER_1 - &kp NUMBER_2 &kp NUMBER_8 &kp NUMBER_4 &kp NUMBER_0 &kp NUMBER_6 &kp NUMBER_1 &kp NUMBER_1 &kp NUMBER_6 &kp NUMBER_0 &kp NUMBER_4 &kp NUMBER_8 &kp NUMBER_2 - &kp NUMBER_3 &kp NUMBER_9 &kp NUMBER_5 &kp NUMBER_1 &kp NUMBER_7 &kp NUMBER_2 &kp NUMBER_2 &kp NUMBER_7 &kp NUMBER_1 &kp NUMBER_5 &kp NUMBER_9 &kp NUMBER_3 - &kp NUMBER_4 &kp NUMBER_0 &kp NUMBER_6 &kp NUMBER_2 &kp NUMBER_8 &kp NUMBER_3 &kp NUMBER_4 &kp NUMBER_5 &kp NUMBER_6 &kp NUMBER_6 &kp NUMBER_5 &kp NUMBER_4 &kp NUMBER_3 &kp NUMBER_8 &kp NUMBER_2 &kp NUMBER_6 &kp NUMBER_0 &kp NUMBER_4 - &kp NUMBER_5 &kp NUMBER_1 &kp NUMBER_7 &kp NUMBER_3 &kp NUMBER_9 &kp NUMBER_7 &kp NUMBER_8 &kp NUMBER_9 &kp NUMBER_9 &kp NUMBER_8 &kp NUMBER_7 &kp NUMBER_9 &kp NUMBER_3 &kp NUMBER_7 &kp NUMBER_1 &kp NUMBER_5 - >; - }; + #define UNICODE(name, ...) \ + ZMK_MACRO(name, \ + wait-ms = ; \ + tap-ms = ; \ + bindings = __VA_ARGS__; \ + ) - layer_RetroKeys { - bindings = < - &none &none &trans &trans &trans &trans &none &none &none &none - &none &none &trans &trans &trans &trans &kp COMMA &kp SEMI &kp LPAR &kp RPAR &kp GRAVE &none - &none &none &trans &trans &trans &trans &kp QMARK &kp LBRC &kp DQT &kp SQT &kp RBRC &kp EXCL - &none &none &kp SPACE &kp RET &kp BSPC &trans &kp STAR &kp DLLR &kp UNDER &kp EQUAL &kp CARET &kp HASH - &none &none &kp TAB &kp LS(TAB) &kp DEL &trans &trans &trans &trans &kp STAR &kp DOT &kp FSLH &kp FSLH &kp LT &kp MINUS &kp PIPE &kp GT &kp AT - &magic LAYER_Magic 0 &trans &trans &trans &trans &trans &trans &trans &kp SEMI &kp COLON &kp PRCNT &kp LBKT &kp RBKT &kp PLUS &kp AMPS &kp TILDE - >; - }; + // + // 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 - 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 &kp RIGHT_PLAIN_KEY &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 - >; - }; + // + // 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 - 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 &kp RIGHT_PLAIN_KEY &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 - >; - }; + // + // 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 - 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 &kp RIGHT_PLAIN_KEY &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 - >; - }; + // + // 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 - 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 &kp RIGHT_PLAIN_KEY &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 - >; - }; + // + // 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 - 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 &kp RIGHT_PLAIN_KEY &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 - >; - }; + // + // COMPOSE_SEQ_MACOS() formats keystrokes for macOS character entry. + // + #ifndef COMPOSE_SEQ_MACOS + #define COMPOSE_SEQ_MACOS(keystrokes) \ + <¯o_tap keystrokes> + #endif - 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 &kp LEFT_PLAIN_KEY &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 - >; - }; + // + // 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 - 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 &kp LEFT_PLAIN_KEY &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 &kp LEFT_PLAIN_KEY &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 - >; - }; + // + // NOTE: edit the world.yaml file and run `rake` to generate this: + // - 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 &kp LEFT_PLAIN_KEY &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 - >; - }; + // + // 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 +))>; + }; - layer_RightIndex { + // + // 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 { + dubdub: dubdub { + label = "&DUBDUB"; + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + + + bindings + = <&kp SPACE> + , <&kp SPACE>; + }; + fg: fg { + label = "&FG"; + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + + + bindings + = <&kp F> + , <&kp G> + , <&kp RET>; + }; + viquit: viquit { + label = "&VIQUIT"; + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + + + bindings + = <&kp ESC> + , <&kp COLON> + , <&kp W> + , <&kp Q> + , <&kp A>; + }; + viquitf: viquitf { + label = "&VIQUITF"; + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + + + bindings + = <&kp ESC> + , <&kp COLON> + , <&kp W> + , <&kp Q> + , <&kp A> + , <&kp EXCL>; + }; + }; +}; + +/* 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 BSLH &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp EQUAL + &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 + &caps_word &LeftPinky (A, LAYER_QWERTY) &LeftRing1 (S, LAYER_QWERTY) &LeftMiddy (D, LAYER_QWERTY) &LeftIndex (F, LAYER_QWERTY) &kp G &kp H &RightIndex (J, LAYER_QWERTY) &RightMiddy (K, LAYER_QWERTY) &RightRing1 (L, LAYER_QWERTY) &RightPinky (SEMI, LAYER_QWERTY) &kp SQT + &key_repeat &kp Z &kp X &kp C &kp V &kp B &mt RCTRL ESC &kp DOWN &kp RIGHT &kp LEFT &kp UP &mt RSHFT RET &kp N &kp M &kp COMMA &kp DOT &kp FSLH &sk RSHFT + &magic LAYER_Magic 0 &mo 18 &kp LBRC &kp RBRC &thumb LAYER_Function ESC &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 ¶ng_left &kp LBKT &kp RBKT ¶ng_right &magic LAYER_Magic 0 + >; + }; + + 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 DOWN &kp UP &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_DN &kp PG_UP &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 &kp F21 &kp F22 &kp F23 &kp F24 &kp C_BRI_UP + &kp ESC &kp RET &kp SPACE &kp TAB &kp DEL &kp INS &kp F16 &kp F17 &kp F18 &kp F19 &kp F20 &kp C_BRI_DN + &kp K_APP &sk RSHFT &kp _REDO &kp _UNDO &kp BSPC &kp RC(E) &kp RG(RA(SPACE)) &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 &kp RC(G) &kp RC(UP) &kp F4 &kp F5 &kp F6 &kp F11 &kp F14 + &none &kp _C(A) &select_line &select_word &kp RC(Z) &kp RC(C) &none &none &none &kp C_PREV &kp C_NEXT &kp C_PP &kp RC(DOWN) &kp F1 &kp F2 &kp F3 &kp F12 &kp F15 + &magic LAYER_Magic 0 &none &extend_line &extend_word &fg &none &none &tog LAYER_Function &kp C_MUTE &kp C_VOL_DN &kp C_VOL_UP &kp RC(LEFT) &kp RC(RIGHT) &none &sk RCTRL &sk RSHFT + >; + }; + + 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 AT &kp LBRC &kp SQT &kp DQT &kp RBRC &kp QMARK &kp GRAVE &kp RIGHT_INDEX_MOD &kp RIGHT_MIDDY_MOD &kp RIGHT_RING1_MOD &kp RIGHT_PINKY_MOD &kp K + &kp HASH &kp CARET &kp EQUAL &kp UNDER &kp DLLR &kp STAR &kp DOT &kp BSPC &kp TAB &kp SPACE &kp RET &kp L + &kp EXCL &kp LT &kp PIPE &kp MINUS &kp GT &kp FSLH &kp BSLH &kp DOT &kp STAR &none &none &none &kp FSLH &kp DEL &kp LS(TAB) &kp COMMA &kp RS(RET) &kp K + &kp TILDE &kp AMPS &kp LBKT &kp RBKT &kp PLUS &kp PRCNT &kp COLON &kp SEMI &tog LAYER_Symbol &none &none &kp BSLH &kp LPAR &kp RPAR &kp COLON &kp H + >; + }; + + 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 &sk RSHFT &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_RIGHT &mkp MB4 &mkp LCLK &mmv MOVE_LEFT &mmv MOVE_UP &mmv MOVE_DOWN &mmv MOVE_RIGHT &sk RSHFT + &none &none &none &msc SCRL_DOWN &msc SCRL_UP &mkp MB5 &mkp MCLK &mkp MB4 &mkp MB5 &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 &mkp MB4 &mkp MB5 &none &none &none + >; + }; + + 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 &kp RC(U) &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 F11 &kp RC(D) &tog LAYER_Function &tog LAYER_Typing &none &none &none &none &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 F12 &none &tog LAYER_Cursor &tog LAYER_Number &tog LAYER_Lower &tog LAYER_Lower &tog LAYER_Mouse &tog LAYER_Symbol &none &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 &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 &none + >; + }; + + layer_32 { 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 &kp LEFT_PLAIN_KEY &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 + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &trans &key_repeat &trans &trans &kp RSHFT &kp RA(TAB) &kp RA(SPACE) &kp RG(RA(DOT)) &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &trans &trans &trans &trans &kp RG(TAB) &kp RG(SPACE) &kp RG(COMMA) &trans &caps_word &key_repeat &trans &trans &trans &trans &trans >; }; diff --git a/config/keymap.json b/config/keymap.json index 2a7c903..a121692 100644 --- a/config/keymap.json +++ b/config/keymap.json @@ -1 +1,10601 @@ -{"keyboard":"glove80","keymap":"default","layout":"LAYOUT","layer_names":["base","fn"],"layers":[[{"value":"&kp","params":[{"value":"F1","params":[]}]},{"value":"&kp","params":[{"value":"F2","params":[]}]},{"value":"&kp","params":[{"value":"F3","params":[]}]},{"value":"&kp","params":[{"value":"F4","params":[]}]},{"value":"&kp","params":[{"value":"F5","params":[]}]},{"value":"&kp","params":[{"value":"F6","params":[]}]},{"value":"&kp","params":[{"value":"F7","params":[]}]},{"value":"&kp","params":[{"value":"F8","params":[]}]},{"value":"&kp","params":[{"value":"F9","params":[]}]},{"value":"&kp","params":[{"value":"F10","params":[]}]},{"value":"&kp","params":[{"value":"EQUAL","params":[]}]},{"value":"&kp","params":[{"value":"N1","params":[]}]},{"value":"&kp","params":[{"value":"N2","params":[]}]},{"value":"&kp","params":[{"value":"N3","params":[]}]},{"value":"&kp","params":[{"value":"N4","params":[]}]},{"value":"&kp","params":[{"value":"N5","params":[]}]},{"value":"&kp","params":[{"value":"N6","params":[]}]},{"value":"&kp","params":[{"value":"N7","params":[]}]},{"value":"&kp","params":[{"value":"N8","params":[]}]},{"value":"&kp","params":[{"value":"N9","params":[]}]},{"value":"&kp","params":[{"value":"N0","params":[]}]},{"value":"&kp","params":[{"value":"MINUS","params":[]}]},{"value":"&kp","params":[{"value":"TAB","params":[]}]},{"value":"&kp","params":[{"value":"Q","params":[]}]},{"value":"&kp","params":[{"value":"W","params":[]}]},{"value":"&kp","params":[{"value":"E","params":[]}]},{"value":"&kp","params":[{"value":"R","params":[]}]},{"value":"&kp","params":[{"value":"T","params":[]}]},{"value":"&kp","params":[{"value":"Y","params":[]}]},{"value":"&kp","params":[{"value":"U","params":[]}]},{"value":"&kp","params":[{"value":"I","params":[]}]},{"value":"&kp","params":[{"value":"O","params":[]}]},{"value":"&kp","params":[{"value":"P","params":[]}]},{"value":"&kp","params":[{"value":"BSLH","params":[]}]},{"value":"&kp","params":[{"value":"ESC","params":[]}]},{"value":"&kp","params":[{"value":"A","params":[]}]},{"value":"&kp","params":[{"value":"S","params":[]}]},{"value":"&kp","params":[{"value":"D","params":[]}]},{"value":"&kp","params":[{"value":"F","params":[]}]},{"value":"&kp","params":[{"value":"G","params":[]}]},{"value":"&kp","params":[{"value":"H","params":[]}]},{"value":"&kp","params":[{"value":"J","params":[]}]},{"value":"&kp","params":[{"value":"K","params":[]}]},{"value":"&kp","params":[{"value":"L","params":[]}]},{"value":"&kp","params":[{"value":"SEMI","params":[]}]},{"value":"&kp","params":[{"value":"SQT","params":[]}]},{"value":"&kp","params":[{"value":"GRAVE","params":[]}]},{"value":"&kp","params":[{"value":"Z","params":[]}]},{"value":"&kp","params":[{"value":"X","params":[]}]},{"value":"&kp","params":[{"value":"C","params":[]}]},{"value":"&kp","params":[{"value":"V","params":[]}]},{"value":"&kp","params":[{"value":"B","params":[]}]},{"value":"&kp","params":[{"value":"LSHFT","params":[]}]},{"value":"&kp","params":[{"value":"LCTRL","params":[]}]},{"value":"&mo","params":[{"value":"1","params":[]}]},{"value":"&kp","params":[{"value":"LGUI","params":[]}]},{"value":"&kp","params":[{"value":"RCTRL","params":[]}]},{"value":"&kp","params":[{"value":"RSHFT","params":[]}]},{"value":"&kp","params":[{"value":"N","params":[]}]},{"value":"&kp","params":[{"value":"M","params":[]}]},{"value":"&kp","params":[{"value":"COMMA","params":[]}]},{"value":"&kp","params":[{"value":"DOT","params":[]}]},{"value":"&kp","params":[{"value":"FSLH","params":[]}]},{"value":"&kp","params":[{"value":"PG_UP","params":[]}]},{"value":"&mo","params":[{"value":"1","params":[]}]},{"value":"&kp","params":[{"value":"HOME","params":[]}]},{"value":"&kp","params":[{"value":"END","params":[]}]},{"value":"&kp","params":[{"value":"LEFT","params":[]}]},{"value":"&kp","params":[{"value":"RIGHT","params":[]}]},{"value":"&kp","params":[{"value":"BSPC","params":[]}]},{"value":"&kp","params":[{"value":"DEL","params":[]}]},{"value":"&kp","params":[{"value":"LALT","params":[]}]},{"value":"&kp","params":[{"value":"RALT","params":[]}]},{"value":"&kp","params":[{"value":"RET","params":[]}]},{"value":"&kp","params":[{"value":"SPACE","params":[]}]},{"value":"&kp","params":[{"value":"UP","params":[]}]},{"value":"&kp","params":[{"value":"DOWN","params":[]}]},{"value":"&kp","params":[{"value":"LBKT","params":[]}]},{"value":"&kp","params":[{"value":"RBKT","params":[]}]},{"value":"&kp","params":[{"value":"PG_DN","params":[]}]}],[{"value":"&bt","params":[{"value":"BT_SEL","params":[]},{"value":"0","params":[]}]},{"value":"&bt","params":[{"value":"BT_SEL","params":[]},{"value":"1","params":[]}]},{"value":"&bt","params":[{"value":"BT_SEL","params":[]},{"value":"2","params":[]}]},{"value":"&bt","params":[{"value":"BT_SEL","params":[]},{"value":"3","params":[]}]},{"value":"&bt","params":[{"value":"BT_SEL","params":[]},{"value":"4","params":[]}]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&kp","params":[{"value":"F11","params":[]}]},{"value":"&kp","params":[{"value":"F12","params":[]}]},{"value":"&bt","params":[{"value":"BT_CLR","params":[]}]},{"value":"&none","params":[]},{"value":"&out","params":[{"value":"OUT_USB","params":[]}]},{"value":"&out","params":[{"value":"OUT_BLE","params":[]}]},{"value":"&out","params":[{"value":"OUT_TOG","params":[]}]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&bootloader","params":[]},{"value":"&rgb_ug","params":[{"value":"RGB_TOG","params":[]}]},{"value":"&rgb_ug","params":[{"value":"RGB_EFF","params":[]}]},{"value":"&rgb_ug","params":[{"value":"RGB_BRI","params":[]}]},{"value":"&rgb_ug","params":[{"value":"RGB_BRD","params":[]}]},{"value":"&kp","params":[{"value":"K_VOL_UP","params":[]}]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&reset","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&kp","params":[{"value":"K_VOL_DN","params":[]}]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&ext_power","params":[{"value":"EP_ON","params":[]}]},{"value":"&ext_power","params":[{"value":"EP_OFF","params":[]}]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&kp","params":[{"value":"K_MUTE","params":[]}]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&kp","params":[{"value":"CAPS","params":[]}]},{"value":"&kp","params":[{"value":"INS","params":[]}]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]},{"value":"&none","params":[]}]]} +{ + "keyboard": "glove80", + "uuid": "", + "date": 1715352377, + "creator": "", + "parent_uuid": "ed05d6b5-c3a0-4be9-8626-dadeacb83987", + "firmware_api_version": "1", + "locale": "en-US", + "title": "Glorious Engrammer v36 custom", + "notes": "Sunaku's Keymap v36 for the \"Glorious Engrammer\" 🧑‍🚀🚀âœĻ\n- Intro & setup: https://github.com/sunaku/glove80-keymaps\n- Release notes: https://github.com/sunaku/glove80-keymaps/releases/tag/v36\n- Documentation: https://sunaku.github.io/moergo-glove80-keyboard.html#layers\n- Discord forum: #glorious-engrammer channel in https://www.moergo.com/discord\n\nSummary:\nThis release adds OS-native compose shortcuts as an alternative to Unicode character entry, fixes mod-morph nesting in the World layer, introduces consistent placement of editing keys on left-hand layers and home row mods on right-hand layers, adds one-handed usage to Mouse and System layers, improves Alt+Tab usability, updates my personal fine-tuned timings (custom difficulty level), and much more!\n\nChanges:\n- Base layer: revert thumb cluster arrows back to v34 for harmony with `<>` on Number layer.\n- Set T4+T5 as ZMK combo for quicker Alt+Tab activation; move Number layer back under Cursor layer (like v34); remove chord shim on Number layer.\n- DIFFICULTY_LEVEL no longer masks user-overrides defined at the very top of the \"Custom Defined Behaviors\" text box.\n- DIFFICULTY_LEVEL also affects typing streaks now: Difficulty level 1: 300ms, 2: 250ms, 3: 200ms, 4: 150ms, 5: 100ms. Thanks to @Mathijs-Bakker for helping test this feature.\n- Bilateral layers: allow bilateral layers to be deleted, independent of `ENFORCE_BILATERAL`.\n- Bilateral layers: fix compilation errors when `ENFORCE_BILATERAL` isn't defined. Thanks to ~alizdavoodi on Discord for reporting this issue: https://discord.com/channels/877392805654306816/1193051200938049546/1213135160254533682\n- Cursor layer: add Spacegram operators (Tab, Space, Enter, etc.) mirroring the Symbol layer.\n- Number layer: reuse Cursor layer's left hand layout for selection and Spacegram operators. Thanks to @AsafMah for requesting this feature in issue #6.\n- Function layer: reuse Cursor layer's left hand layout for selection and Spacegram operators.\n- Emoji layer: move smiling face into home block, pushing laughing faces just outside of it.\n- Emoji layer: add shifted pairs for star sparkles and hand gestures in right thumb cluster.\n- Emoji layer: tap RALT then U instead of RA(U) for WinCompose compatibility in en-GB locale. Thanks to ~KG on Discord for reporting this issue and its solution: https://discord.com/channels/877392805654306816/1193051200938049546/1219403753275527219 and https://discord.com/channels/877392805654306816/1193051200938049546/1219414866939609340\n- Emoji layer: fix Emoji input in macOS by converting UTF-32 into UTF-16 (see PR #7). Thanks to @viduranga for contributing this patch!\n- Symbol layer: fill in right hand's central index finger column for non-Engrammer layouts.\n- World layer: add `#define WORLD_USE_COMPOSE` setting to enable the use of OS-native shortcuts (instead of Unicode) for international characters on World layer.\n- World layer: shield macros from mod-morph tree modifiers so that World+Ctrl+Shift+A can type Ä reliably with OS-native compose sequences. Thanks to the legendary @urob for guidance on solving this problem: https://discord.com/channels/719497620560543766/813882537436905552/1211574316794257418\n- World layer: fix ability to type \"ÂĄ\" using WinCompose, which would previously emit \"ă1\\n\". Thanks to @frankbenoit for finding this workaround: https://github.com/samhocevar/wincompose/issues/323\n- World layer: group consonants (ç ß Ãą) into a single compound key (on letter C in Engram).\n- World layer: move currency key to traditional shift key position on the left pinky finger.\n- World layer: add Âĩ micro sign (Greek letter MU) to bottom left corner (Magic key's location).\n- Lower layer: fill in factory base layer &trans keys; restore Grave on left pinky \"shift\".\n- Lower layer: swap Gaming & Typing toggles to reflect T6+T3 combo for Gaming/Base toggle.\n- Mouse layer: reuse Symbol layer's right hand layout for home row mods; add one-handed keys.\n- System layer: reuse Symbol layer's right hand layout for home row mods; add one-handed keys.\n- System layer: add Context Menu key to both sides of the keyboard for cross & one-handed use, with mnemonics in Engram layout -- T: sTop/lock, S: sleep, N: shutdowN, R: RGB, M: monitor(screen)shot, F: scroll(freeze)lock, P: Pause.\n- Adjust my preferred timing thresholds on the `#define DIFFICULTY_LEVEL 0` custom level, maintaining 80ms difference between holding time and typing streak timeouts:\n - Decrease HOMEY_HOLDING_TIME from 270ms to 240ms.\n - Decrease HOMEY_STREAK_DECAY from 250ms to 160ms.\n - Increase INDEX_HOLDING_TIME from 170ms to 180ms.\n - Decrease INDEX_STREAK_DECAY from 150ms to 100ms.\n- README: update references to sections in Glove80 User Guide. Thanks to @Nullthetical for contributing this patch.\n- README: Ubuntu users need to add the Universe repository in order to install graphviz. Thanks to ~ErrorCode on Discord for the \"Unable to locate package graphviz\" solution: https://discord.com/channels/877392805654306816/1193051200938049546/1210816321181196368\n- README: add Factory and Magic layer diagrams; finish Lower layer diagram; add lots of documentation.", + "tags": [ + "sunaku", + "home-row-mods", + "programming", + "vim", + "gaming", + "unicode", + "emoji", + "engrammer", + "engram", + "dvorak", + "colemak", + "colemak-dh", + "qwerty", + "norman", + "workman", + "halmak" + ], + "unlisted": false, + "layer_names": [ + "QWERTY", + "18", + "LeftPinky", + "LeftRing1", + "LeftRing2", + "LeftMiddy", + "LeftIndex", + "RightPinky", + "RightRing1", + "RightRing2", + "RightMiddy", + "RightIndex", + "Cursor", + "Number", + "Function", + "Symbol", + "Mouse", + "Lower", + "Magic" + ], + "layers": [ + [ + { + "value": "&kp", + "params": [ + { + "value": "F1", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F2", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F3", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F4", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F5", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F6", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F7", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F8", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F9", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F10", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "BSLH", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N1", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N2", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N3", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N4", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N5", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N6", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N7", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N8", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N9", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N0", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "EQUAL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "GRAVE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "Q", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftRing2 (W, LAYER_QWERTY)", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "E", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "R", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "T", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "Y", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "U", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "I", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightRing2 (O, LAYER_QWERTY)", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "P", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "MINUS", + "params": [] + } + ] + }, + { + "value": "&caps_word", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftPinky (A, LAYER_QWERTY)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftRing1 (S, LAYER_QWERTY)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftMiddy (D, LAYER_QWERTY)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftIndex (F, LAYER_QWERTY)", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "G", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "H", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightIndex (J, LAYER_QWERTY)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightMiddy (K, LAYER_QWERTY)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightRing1 (L, LAYER_QWERTY)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightPinky (SEMI, LAYER_QWERTY)", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SQT", + "params": [] + } + ] + }, + { + "value": "&key_repeat", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "Z", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "X", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "V", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "B", + "params": [] + } + ] + }, + { + "value": "&mt", + "params": [ + { + "value": "RCTRL", + "params": [] + }, + { + "value": "ESC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DOWN", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RIGHT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LEFT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "UP", + "params": [] + } + ] + }, + { + "value": "&mt", + "params": [ + { + "value": "RSHFT", + "params": [] + }, + { + "value": "RET", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "N", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "M", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "COMMA", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DOT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "FSLH", + "params": [] + } + ] + }, + { + "value": "&sk", + "params": [ + { + "value": "RSHFT", + "params": [] + } + ] + }, + { + "value": "&magic", + "params": [] + }, + { + "value": "&lower", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "LBRC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RBRC", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&thumb LAYER_Function ESC", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&thumb LAYER_Cursor BACKSPACE", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&thumb LAYER_Number DELETE", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&thumb_lower_shift LAYER_Lower LSFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&thumb_lower_shift LAYER_Lower LSFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&thumb LAYER_Mouse TAB", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&space LAYER_Symbol SPACE", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "¶ng_left", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LBKT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RBKT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "¶ng_right", + "params": [] + } + ] + }, + { + "value": "&magic", + "params": [] + } + ], + [ + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "BSLH", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "EQUAL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "GRAVE", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "MINUS", + "params": [] + } + ] + }, + { + "value": "&caps_word", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "SQT", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "COMMA", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DOT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "FSLH", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C6R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C5R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C4R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C3R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C2R1", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C6R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C5R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C4R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C3R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C2R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C1R2", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C6R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C5R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftPinkyRing2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C3R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C2R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C1R3", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING2_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C6R4", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftPinkyRing1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftPinkyMiddy", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftPinkyIndex", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C1R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightPlainKey", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_INDEX_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_MIDDY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING1_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_PINKY_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C6R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C5R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C4R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C3R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C2R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C1R5", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C5R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C4R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C3R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_pinky_tap KEY_LH_C2R6", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C6R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C5R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C4R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C3R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C2R1", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C6R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C5R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C4R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C3R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C2R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C1R2", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C6R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C5R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftRing1Ring2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C3R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C2R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C1R3", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING2_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C6R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftRing1Pinky", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftRing1Middy", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftRing1Index", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C1R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightPlainKey", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_INDEX_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_MIDDY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING1_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_PINKY_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C6R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C5R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C4R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C3R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C2R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C1R5", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C5R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C4R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C3R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring1_tap KEY_LH_C2R6", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C6R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C5R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C4R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C3R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C2R1", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C6R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C5R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C4R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C3R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C2R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C1R2", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C6R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C5R3", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C3R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C2R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C1R3", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING2_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C6R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftRing2Pinky", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftRing2Ring1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftRing2Middy", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftRing2Index", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C1R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightPlainKey", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_INDEX_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_MIDDY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING1_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_PINKY_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C6R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C5R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C4R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C3R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C2R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C1R5", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C5R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C4R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C3R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_ring2_tap KEY_LH_C2R6", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C6R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C5R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C4R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C3R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C2R1", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C6R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C5R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C4R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C3R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C2R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C1R2", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C6R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C5R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftMiddyRing2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C3R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C2R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C1R3", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING2_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C6R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftMiddyPinky", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftMiddyRing1", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftMiddyIndex", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C1R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightPlainKey", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_INDEX_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_MIDDY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING1_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_PINKY_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C6R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C5R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C4R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C3R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C2R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C1R5", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C5R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C4R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C3R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_middy_tap KEY_LH_C2R6", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C6R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C5R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C4R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C3R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C2R1", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C6R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C5R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C4R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C3R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C2R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C1R2", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C6R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C5R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftIndexRing2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C3R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C2R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C1R3", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING2_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C6R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftIndexPinky", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftIndexRing1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftIndexMiddy", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C1R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightPlainKey", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_INDEX_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_MIDDY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING1_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_PINKY_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C6R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C5R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C4R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C3R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C2R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C1R5", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C5R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C4R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C3R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&left_index_tap KEY_LH_C2R6", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C2R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C3R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C4R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C5R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C6R1", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C1R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C2R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C3R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C4R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C5R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C6R2", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING2_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C1R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C2R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C3R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightPinkyRing2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C5R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C6R3", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_PINKY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING1_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_MIDDY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_INDEX_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftPlainKey", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C1R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightPinkyIndex", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightPinkyMiddy", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightPinkyRing1", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C6R4", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C1R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C2R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C3R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C4R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C5R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C6R5", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C2R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C3R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C4R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_pinky_tap KEY_RH_C5R6", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C2R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C3R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C4R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C5R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C6R1", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C1R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C2R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C3R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C4R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C5R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C6R2", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING2_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C1R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C2R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C3R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightRing1Ring2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C5R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C6R3", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_PINKY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING1_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_MIDDY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_INDEX_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftPlainKey", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C1R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightRing1Index", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightRing1Middy", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightRing1Pinky", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C6R4", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C1R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C2R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C3R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C4R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C5R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C6R5", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C2R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C3R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C4R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring1_tap KEY_RH_C5R6", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C2R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C3R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C4R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C5R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C6R1", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C1R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C2R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C3R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C4R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C5R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C6R2", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING2_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C1R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C2R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C3R3", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C5R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C6R3", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_PINKY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING1_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_MIDDY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_INDEX_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftPlainKey", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C1R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightRing2Index", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightRing2Middy", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightRing2Ring1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightRing2Pinky", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C6R4", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C1R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C2R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C3R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C4R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C5R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C6R5", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C2R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C3R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C4R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_ring2_tap KEY_RH_C5R6", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C2R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C3R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C4R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C5R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C6R1", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C1R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C2R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C3R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C4R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C5R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C6R2", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING2_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C1R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C2R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C3R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightMiddyRing2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C5R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C6R3", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_PINKY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING1_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_MIDDY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_INDEX_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftPlainKey", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C1R4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightMiddyIndex", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightMiddyRing1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightMiddyPinky", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C6R4", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C1R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C2R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C3R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C4R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C5R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C6R5", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C2R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C3R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C4R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_middy_tap KEY_RH_C5R6", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C2R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C3R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C4R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C5R1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C6R1", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C1R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C2R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C3R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C4R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C5R2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C6R2", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING2_KEY", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C1R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C2R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C3R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightIndexRing2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C5R3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C6R3", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_PINKY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING1_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_MIDDY_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_INDEX_KEY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&LeftPlainKey", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C1R4", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightIndexMiddy", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightIndexRing1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&RightIndexPinky", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C6R4", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C1R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C2R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C3R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C4R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C5R5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C6R5", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C2R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C3R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C4R6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&right_index_tap KEY_RH_C5R6", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + } + ], + [ + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "ESC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RET", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SPACE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "TAB", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DEL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "INS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "INS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DEL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "TAB", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SPACE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RET", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "ESC", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(K)", + "params": [] + } + ] + }, + { + "value": "&sk", + "params": [ + { + "value": "LSHFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _REDO", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _UNDO", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "BSPC", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _CUT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _CUT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "BSPC", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _UNDO", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _REDO", + "params": [] + } + ] + }, + { + "value": "&sk", + "params": [ + { + "value": "LSHFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(K)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(L)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_PINKY_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING1_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_MIDDY_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_INDEX_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _COPY", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _COPY", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LEFT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DOWN", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "UP", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RIGHT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(L)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(J)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(A)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&select_line", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&select_word", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _FIND", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _PASTE", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mod_tab _A_TAB", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mod_tab _G_TAB", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "TAB", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&select_none", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&extend_line", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&extend_word", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _PASTE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "HOME", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "PG_DN", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "PG_UP", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "END", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(J)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(H)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _FIND_PREV", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&extend_line", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&extend_word", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _FIND_NEXT", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mod_tab LCTL", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Cursor", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(A)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&select_line", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&select_word", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _FIND", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _FIND_PREV", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _FIND_NEXT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(H)", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LG", + "params": [ + { + "value": "DOT", + "params": [] + } + ] + } + ] + } + ], + [ + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "ESC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RET", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SPACE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "TAB", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DEL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "INS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "CARET", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DLLR", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "HASH", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "AT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "EXCL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "PIPE", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&sk", + "params": [ + { + "value": "LSHFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _REDO", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _UNDO", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "BSPC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "A", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "PRCNT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_N7", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_N8", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_N9", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "COLON", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "K", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_NUM", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_PINKY_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING1_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_MIDDY_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_INDEX_MOD", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "B", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_PLUS", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_N4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_N5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_N6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_MINUS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "J", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(A)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&select_line", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&select_word", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "UNDER", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "D", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "E", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "GT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_EQUAL", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_ASTERISK", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_N1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_N2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_N3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_SLASH", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LS", + "params": [ + { + "value": "G", + "params": [] + } + ] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&extend_line", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&extend_word", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "X", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Number", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_COMMA", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_DOT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _KP_N0", + "params": [] + } + ] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&trans", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "TILDE", + "params": [] + } + ] + } + ], + [ + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "F21", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F22", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F23", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F24", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_BRI_UP", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "ESC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RET", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SPACE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "TAB", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DEL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "INS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F16", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F17", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F18", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F19", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F20", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_BRI_DN", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "K_APP", + "params": [] + } + ] + }, + { + "value": "&sk", + "params": [ + { + "value": "RSHFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _REDO", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _UNDO", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "BSPC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RC", + "params": [ + { + "value": "E", + "params": [] + } + ] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RG", + "params": [ + { + "value": "RA", + "params": [ + { + "value": "SPACE", + "params": [] + } + ] + } + ] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F7", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F8", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F9", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F10", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F13", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "CAPS", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_PINKY_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_RING1_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_MIDDY_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp LEFT_INDEX_MOD", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RC", + "params": [ + { + "value": "G", + "params": [] + } + ] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RC", + "params": [ + { + "value": "UP", + "params": [] + } + ] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F4", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F5", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F6", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F11", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F14", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp _C(A)", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&select_line", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&select_word", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RC", + "params": [ + { + "value": "Z", + "params": [] + } + ] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RC", + "params": [ + { + "value": "C", + "params": [] + } + ] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_PREV", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_NEXT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_PP", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RC", + "params": [ + { + "value": "DOWN", + "params": [] + } + ] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F1", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F2", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F3", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F12", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F15", + "params": [] + } + ] + }, + { + "value": "&magic", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&extend_line", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&extend_word", + "params": [] + } + ] + }, + { + "value": "&fg", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Function", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_MUTE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_VOL_DN", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_VOL_UP", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RC", + "params": [ + { + "value": "LEFT", + "params": [] + } + ] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RC", + "params": [ + { + "value": "RIGHT", + "params": [] + } + ] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&sk", + "params": [ + { + "value": "RCTRL", + "params": [] + } + ] + }, + { + "value": "&sk", + "params": [ + { + "value": "RSHFT", + "params": [] + } + ] + } + ], + [ + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "GRAVE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LPAR", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RPAR", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SEMI", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "COMMA", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "AT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LBRC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SQT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DQT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RBRC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "QMARK", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "GRAVE", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_INDEX_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_MIDDY_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING1_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_PINKY_MOD", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "K", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "HASH", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "CARET", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "EQUAL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "UNDER", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DLLR", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "STAR", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DOT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "BSPC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "TAB", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SPACE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RET", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "L", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "EXCL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "PIPE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "MINUS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "GT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "FSLH", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "BSLH", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DOT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "STAR", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "FSLH", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DEL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LS", + "params": [ + { + "value": "TAB", + "params": [] + } + ] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "COMMA", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RS", + "params": [ + { + "value": "RET", + "params": [] + } + ] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "K", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "TILDE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "AMPS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LBKT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RBKT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "PLUS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "PRCNT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "COLON", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SEMI", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Symbol", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "BSLH", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LPAR", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RPAR", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "COLON", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "H", + "params": [] + } + ] + } + ], + [ + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&msc SCRL_LEFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mmv MOVE_UP", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&msc SCRL_RIGHT", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp MCLK", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_INDEX_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_MIDDY_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_RING1_MOD", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&kp RIGHT_PINKY_MOD", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&sk", + "params": [ + { + "value": "RSHFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mmv MOVE_LEFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mmv MOVE_DOWN", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mmv MOVE_RIGHT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp MB4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp LCLK", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mmv MOVE_LEFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mmv MOVE_UP", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mmv MOVE_DOWN", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mmv MOVE_RIGHT", + "params": [] + } + ] + }, + { + "value": "&sk", + "params": [ + { + "value": "RSHFT", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&msc SCRL_DOWN", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&msc SCRL_UP", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp MB5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp MCLK", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp MB4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp MB5", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp RCLK", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&msc SCRL_LEFT", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&msc SCRL_UP", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&msc SCRL_DOWN", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&msc SCRL_RIGHT", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp LCLK", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp RCLK", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Mouse", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp MB4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&mkp MB5", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + } + ], + [ + { + "value": "&kp", + "params": [ + { + "value": "C_BRI_DN", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_BRI_UP", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_PREV", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_NEXT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_PP", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_MUTE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_VOL_DN", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "C_VOL_UP", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "PAUSE_BREAK", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "EQUAL", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "HOME", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LPAR", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_NUM", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_EQUAL", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_SLASH", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_MULTIPLY", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "PRINTSCREEN", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "TAB", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "UP_ARROW", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "END", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RPAR", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_N7", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_N8", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_N9", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_MINUS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SCROLLLOCK", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "ESC", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "LEFT_ARROW", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "DOWN_ARROW", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RIGHT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RC", + "params": [ + { + "value": "U", + "params": [] + } + ] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "PERCENT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_N4", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_N5", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_N6", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_PLUS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_NUM", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "GRAVE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "K_APP", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "F11", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F11", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RC", + "params": [ + { + "value": "D", + "params": [] + } + ] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Function", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "COMMA", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_N1", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_N2", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_N3", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_ENTER", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "LALT", + "params": [] + } + ] + }, + { + "value": "&magic", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "CAPS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "INS", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "F12", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Cursor", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Number", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Lower", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Lower", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Mouse", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&tog LAYER_Symbol", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_N0", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_DOT", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "KP_ENTER", + "params": [] + } + ] + }, + { + "value": "&magic", + "params": [] + } + ], + [ + { + "value": "&bt", + "params": [ + { + "value": "BT_CLR", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&bt", + "params": [ + { + "value": "BT_CLR_ALL", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&to 0", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&to 1", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&to 2", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&to 3", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&to 4", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&to 5", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&to 6", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&to 7", + "params": [] + } + ] + }, + { + "value": "Custom", + "params": [ + { + "value": "&to 8", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&rgb_ug", + "params": [ + { + "value": "RGB_SPI", + "params": [] + } + ] + }, + { + "value": "&rgb_ug", + "params": [ + { + "value": "RGB_SAI", + "params": [] + } + ] + }, + { + "value": "&rgb_ug", + "params": [ + { + "value": "RGB_HUI", + "params": [] + } + ] + }, + { + "value": "&rgb_ug", + "params": [ + { + "value": "RGB_BRI", + "params": [] + } + ] + }, + { + "value": "&rgb_ug", + "params": [ + { + "value": "RGB_TOG", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&bootloader", + "params": [] + }, + { + "value": "&rgb_ug", + "params": [ + { + "value": "RGB_SPD", + "params": [] + } + ] + }, + { + "value": "&rgb_ug", + "params": [ + { + "value": "RGB_SAD", + "params": [] + } + ] + }, + { + "value": "&rgb_ug", + "params": [ + { + "value": "RGB_HUD", + "params": [] + } + ] + }, + { + "value": "&rgb_ug", + "params": [ + { + "value": "RGB_BRD", + "params": [] + } + ] + }, + { + "value": "&rgb_ug", + "params": [ + { + "value": "RGB_EFF", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&bootloader", + "params": [] + }, + { + "value": "&reset", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&bt_2", + "params": [] + }, + { + "value": "&bt_3", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&reset", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&bt_0", + "params": [] + }, + { + "value": "&bt_1", + "params": [] + }, + { + "value": "&out", + "params": [ + { + "value": "OUT_USB", + "params": [] + } + ] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + }, + { + "value": "&none", + "params": [] + } + ] + ], + "custom_defined_behaviors": "// NOTE: Use the `#define` settings below to customize this keymap!\n// For example, here are the main optional features you can enable:\n#define DIFFICULTY_LEVEL 0 // 0:custom, 1:easy -> 5:hard (see below)\n#define ENFORCE_BILATERAL // cancels single-handed home row mod+tap\n//#define WORLD_USE_COMPOSE // use native Compose in place of Unicode\n// TIP: Add more setting overrides here instead of editing them below.\n#define OPERATING_SYSTEM 'M' // macos\n//////////////////////////////////////////////////////////////////////////////\n//\n// Sunaku's Keymap v36 -- \"Glorious Engrammer\"\n// - https://github.com/sunaku/glove80-keymaps\n//\n//////////////////////////////////////////////////////////////////////////////\n\n//\n// DIFFICULTY_LEVEL specifies your level of expertise with this keymap.\n// It's meant to help newcomers gradually work their way up to mastery.\n// You can disable this setting by omitting it or assigning a `0` zero.\n//\n// #define DIFFICULTY_LEVEL 0 // custom (see defaults below)\n// #define DIFFICULTY_LEVEL 1 // novice (500ms)\n// #define DIFFICULTY_LEVEL 2 // slower (400ms)\n// #define DIFFICULTY_LEVEL 3 // normal (300ms)\n// #define DIFFICULTY_LEVEL 4 // faster (200ms)\n// #define DIFFICULTY_LEVEL 5 // expert (100ms)\n//\n#if defined(DIFFICULTY_LEVEL) && DIFFICULTY_LEVEL > 0\n#define DIFFICULTY_LEVEL_HOLDING_TIME ((6 - DIFFICULTY_LEVEL) * 100)\n#define DIFFICULTY_LEVEL_STREAK_DECAY (((6 - DIFFICULTY_LEVEL) * 50) + 100)\n#ifndef HOMEY_HOLDING_TIME\n#define HOMEY_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME\n#endif\n#ifndef HOMEY_STREAK_DECAY\n#define HOMEY_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY\n#endif\n#ifndef INDEX_HOLDING_TIME\n#define INDEX_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME\n#endif\n#ifndef INDEX_STREAK_DECAY\n#define INDEX_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY\n#endif\n#ifndef PLAIN_HOLDING_TIME\n#define PLAIN_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME\n#endif\n#ifndef PLAIN_STREAK_DECAY\n#define PLAIN_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY\n#endif\n#ifndef SPACE_HOLDING_TIME\n#define SPACE_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME\n#endif\n#ifndef SPACE_STREAK_DECAY\n#define SPACE_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY\n#endif\n#endif\n\n//\n// OPERATING_SYSTEM defines which operating system you intend to use\n// with this keymap, because shortcuts vary across operating systems.\n//\n// - https://zmk.dev/docs/codes\n// - https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts\n//\n#ifndef OPERATING_SYSTEM\n//#define OPERATING_SYSTEM 'L' // linux\n#define OPERATING_SYSTEM 'M' // macos\n//#define OPERATING_SYSTEM 'W' // windows\n#endif\n#if OPERATING_SYSTEM == 'M'\n #define _C LG\n #define _A_TAB LGUI\n #define _G_TAB LALT\n #define _REDO _C(LS(Z))\n #define _POWER K_POWER\n #define _W LA\n #define _HOME _C(LEFT)\n #define _END _C(RIGHT)\n#else\n #define _C LC\n #define _A_TAB LALT\n #define _G_TAB LGUI\n #define _REDO _C(Y)\n #define _POWER C_POWER\n #define _W _C\n #define _HOME HOME\n #define _END END\n#endif\n#define _SLEEP C_SLEEP\n#if OPERATING_SYSTEM == 'W'\n #define _LOCK LG(L)\n#elif OPERATING_SYSTEM == 'M'\n #define _LOCK _C(LC(Q))\n#elif OPERATING_SYSTEM == 'L'\n #define _LOCK K_LOCK\n#endif\n#define _UNDO _C(Z)\n#define _CUT _C(X)\n#define _COPY _C(C)\n#define _PASTE _C(V)\n#define _FIND _C(F)\n#define _FIND_NEXT _C(G)\n#define _FIND_PREV _C(LS(G))\n\n//\n// USE_NUMPAD_KEYCODES puts `KP_*` keycodes into the Number layer.\n//\n#ifdef USE_NUMPAD_KEYCODES\n#define _KP_N0 KP_N0\n#define _KP_N1 KP_N1\n#define _KP_N2 KP_N2\n#define _KP_N3 KP_N3\n#define _KP_N4 KP_N4\n#define _KP_N5 KP_N5\n#define _KP_N6 KP_N6\n#define _KP_N7 KP_N7\n#define _KP_N8 KP_N8\n#define _KP_N9 KP_N9\n#define _KP_PLUS KP_PLUS\n#define _KP_MINUS KP_MINUS\n#define _KP_ASTERISK KP_ASTERISK\n#define _KP_SLASH KP_SLASH\n#define _KP_COMMA KP_COMMA\n#define _KP_DOT KP_DOT\n#define _KP_EQUAL KP_EQUAL\n#define _KP_ENTER KP_ENTER\n#else\n#define _KP_N0 N0\n#define _KP_N1 N1\n#define _KP_N2 N2\n#define _KP_N3 N3\n#define _KP_N4 N4\n#define _KP_N5 N5\n#define _KP_N6 N6\n#define _KP_N7 N7\n#define _KP_N8 N8\n#define _KP_N9 N9\n#define _KP_PLUS PLUS\n#define _KP_MINUS MINUS\n#define _KP_ASTERISK ASTERISK\n#define _KP_SLASH SLASH\n#define _KP_COMMA COMMA\n#define _KP_DOT DOT\n#define _KP_EQUAL EQUAL\n#define _KP_ENTER ENTER\n#endif\n\n//\n// Glove80 specific symbol overrides to support non \"en-US\" locales\n//\n#undef AMPS\n#define AMPS LS(N7)\n#undef AT\n#define AT LS(N2)\n#undef CARET\n#define CARET LS(N6)\n#undef COLON\n#define COLON LS(SEMI)\n#undef DLLR\n#define DLLR LS(N4)\n#undef DQT\n#define DQT LS(SQT)\n#undef EXCL\n#define EXCL LS(N1)\n#undef GT\n#define GT LS(DOT)\n#undef HASH\n#define HASH LS(N3)\n#undef LBRC\n#define LBRC LS(LBKT)\n#undef LPAR\n#define LPAR LS(N9)\n#undef LT\n#define LT LS(COMMA)\n#undef PIPE\n#define PIPE LS(BSLH)\n#undef PLUS\n#define PLUS LS(EQUAL)\n#undef PRCNT\n#define PRCNT LS(N5)\n#undef QMARK\n#define QMARK LS(FSLH)\n#undef RBRC\n#define RBRC LS(RBKT)\n#undef RPAR\n#define RPAR LS(N0)\n#undef STAR\n#define STAR LS(N8)\n#undef TILDE\n#define TILDE LS(GRAVE)\n#undef UNDER\n#define UNDER LS(MINUS)\n\n//\n// Keymap specific knowledge of the base layer's alpha + ZMK layout\n//\n#if defined(LAYER_Engrammer) && LAYER_Engrammer == 0\n#define KEY_LH_C6R1 F1\n#define KEY_LH_C5R1 F2\n#define KEY_LH_C4R1 F3\n#define KEY_LH_C3R1 F4\n#define KEY_LH_C2R1 F5\n#define KEY_RH_C2R1 F6\n#define KEY_RH_C3R1 F7\n#define KEY_RH_C4R1 F8\n#define KEY_RH_C5R1 F9\n#define KEY_RH_C6R1 F10\n#define KEY_LH_C6R2 EQUAL\n#define KEY_LH_C5R2 N1\n#define KEY_LH_C4R2 N2\n#define KEY_LH_C3R2 N3\n#define KEY_LH_C2R2 N4\n#define KEY_LH_C1R2 N5\n#define KEY_RH_C1R2 N6\n#define KEY_RH_C2R2 N7\n#define KEY_RH_C3R2 N8\n#define KEY_RH_C4R2 N9\n#define KEY_RH_C5R2 N0\n#define KEY_RH_C6R2 BSLH\n#define KEY_LH_C6R3 GRAVE\n#define KEY_LH_C5R3 B\n#define KEY_LH_C4R3 Y\n#define KEY_LH_C3R3 O\n#define KEY_LH_C2R3 U\n#define KEY_LH_C1R3 SQT\n#define KEY_RH_C1R3 SEMI\n#define KEY_RH_C2R3 L\n#define KEY_RH_C3R3 D\n#define KEY_RH_C4R3 W\n#define KEY_RH_C5R3 V\n#define KEY_RH_C6R3 Z\n#define KEY_LH_C6R4 0\n#define KEY_LH_C5R4 C\n#define KEY_LH_C4R4 I\n#define KEY_LH_C3R4 E\n#define KEY_LH_C2R4 A\n#define KEY_LH_C1R4 COMMA\n#define KEY_RH_C1R4 DOT\n#define KEY_RH_C2R4 H\n#define KEY_RH_C3R4 T\n#define KEY_RH_C4R4 S\n#define KEY_RH_C5R4 N\n#define KEY_RH_C6R4 Q\n#define KEY_LH_C6R5 LSHFT\n#define KEY_LH_C5R5 G\n#define KEY_LH_C4R5 X\n#define KEY_LH_C3R5 J\n#define KEY_LH_C2R5 K\n#define KEY_LH_C1R5 MINUS\n#define KEY_LH_T1 ESC\n#define KEY_LH_T2 UP\n#define KEY_LH_T3 DOWN\n#define KEY_RH_T3 LEFT\n#define KEY_RH_T2 RIGHT\n#define KEY_RH_T1 ENTER\n#define KEY_RH_C1R5 FSLH\n#define KEY_RH_C2R5 R\n#define KEY_RH_C3R5 M\n#define KEY_RH_C4R5 F\n#define KEY_RH_C5R5 P\n#define KEY_RH_C6R5 RSHFT\n#define KEY_LH_C6R6 0\n#define KEY_LH_C5R6 HOME\n#define KEY_LH_C4R6 PG_UP\n#define KEY_LH_C3R6 PG_DN\n#define KEY_LH_C2R6 END\n#define KEY_LH_T4 BACKSPACE\n#define KEY_LH_T5 DELETE\n#define KEY_LH_T6 LSFT\n#define KEY_RH_T6 LSFT\n#define KEY_RH_T5 TAB\n#define KEY_RH_T4 SPACE\n#define KEY_RH_C2R6 LPAR\n#define KEY_RH_C3R6 LBKT\n#define KEY_RH_C4R6 RBKT\n#define KEY_RH_C5R6 RPAR\n#define KEY_RH_C6R6 0\n#endif\n#if defined(LAYER_Engram) && LAYER_Engram == 0\n#define KEY_LH_C6R1 F1\n#define KEY_LH_C5R1 F2\n#define KEY_LH_C4R1 F3\n#define KEY_LH_C3R1 F4\n#define KEY_LH_C2R1 F5\n#define KEY_RH_C2R1 F6\n#define KEY_RH_C3R1 F7\n#define KEY_RH_C4R1 F8\n#define KEY_RH_C5R1 F9\n#define KEY_RH_C6R1 F10\n#define KEY_LH_C6R2 LBKT\n#define KEY_LH_C5R2 N1\n#define KEY_LH_C4R2 N2\n#define KEY_LH_C3R2 N3\n#define KEY_LH_C2R2 N4\n#define KEY_LH_C1R2 N5\n#define KEY_RH_C1R2 N6\n#define KEY_RH_C2R2 N7\n#define KEY_RH_C3R2 N8\n#define KEY_RH_C4R2 N9\n#define KEY_RH_C5R2 N0\n#define KEY_RH_C6R2 RBKT\n#define KEY_LH_C6R3 AT\n#define KEY_LH_C5R3 B\n#define KEY_LH_C4R3 Y\n#define KEY_LH_C3R3 O\n#define KEY_LH_C2R3 U\n#define KEY_LH_C1R3 SQT\n#define KEY_RH_C1R3 DQT\n#define KEY_RH_C2R3 L\n#define KEY_RH_C3R3 D\n#define KEY_RH_C4R3 W\n#define KEY_RH_C5R3 V\n#define KEY_RH_C6R3 Z\n#define KEY_LH_C6R4 0\n#define KEY_LH_C5R4 C\n#define KEY_LH_C4R4 I\n#define KEY_LH_C3R4 E\n#define KEY_LH_C2R4 A\n#define KEY_LH_C1R4 COMMA\n#define KEY_RH_C1R4 DOT\n#define KEY_RH_C2R4 H\n#define KEY_RH_C3R4 T\n#define KEY_RH_C4R4 S\n#define KEY_RH_C5R4 N\n#define KEY_RH_C6R4 Q\n#define KEY_LH_C6R5 LSHFT\n#define KEY_LH_C5R5 G\n#define KEY_LH_C4R5 X\n#define KEY_LH_C3R5 J\n#define KEY_LH_C2R5 K\n#define KEY_LH_C1R5 MINUS\n#define KEY_LH_T1 ESC\n#define KEY_LH_T2 UP\n#define KEY_LH_T3 DOWN\n#define KEY_RH_T3 LEFT\n#define KEY_RH_T2 RIGHT\n#define KEY_RH_T1 ENTER\n#define KEY_RH_C1R5 QMARK\n#define KEY_RH_C2R5 R\n#define KEY_RH_C3R5 M\n#define KEY_RH_C4R5 F\n#define KEY_RH_C5R5 P\n#define KEY_RH_C6R5 RSHFT\n#define KEY_LH_C6R6 0\n#define KEY_LH_C5R6 HOME\n#define KEY_LH_C4R6 PG_UP\n#define KEY_LH_C3R6 PG_DN\n#define KEY_LH_C2R6 END\n#define KEY_LH_T4 BACKSPACE\n#define KEY_LH_T5 DELETE\n#define KEY_LH_T6 LSFT\n#define KEY_RH_T6 LSFT\n#define KEY_RH_T5 TAB\n#define KEY_RH_T4 SPACE\n#define KEY_RH_C2R6 LPAR\n#define KEY_RH_C3R6 HASH\n#define KEY_RH_C4R6 FSLH\n#define KEY_RH_C5R6 RPAR\n#define KEY_RH_C6R6 0\n#endif\n#if defined(LAYER_Dvorak) && LAYER_Dvorak == 0\n#define KEY_LH_C6R1 F1\n#define KEY_LH_C5R1 F2\n#define KEY_LH_C4R1 F3\n#define KEY_LH_C3R1 F4\n#define KEY_LH_C2R1 F5\n#define KEY_RH_C2R1 F6\n#define KEY_RH_C3R1 F7\n#define KEY_RH_C4R1 F8\n#define KEY_RH_C5R1 F9\n#define KEY_RH_C6R1 F10\n#define KEY_LH_C6R2 EQUAL\n#define KEY_LH_C5R2 N1\n#define KEY_LH_C4R2 N2\n#define KEY_LH_C3R2 N3\n#define KEY_LH_C2R2 N4\n#define KEY_LH_C1R2 N5\n#define KEY_RH_C1R2 N6\n#define KEY_RH_C2R2 N7\n#define KEY_RH_C3R2 N8\n#define KEY_RH_C4R2 N9\n#define KEY_RH_C5R2 N0\n#define KEY_RH_C6R2 BSLH\n#define KEY_LH_C6R3 GRAVE\n#define KEY_LH_C5R3 SQT\n#define KEY_LH_C4R3 COMMA\n#define KEY_LH_C3R3 DOT\n#define KEY_LH_C2R3 P\n#define KEY_LH_C1R3 Y\n#define KEY_RH_C1R3 F\n#define KEY_RH_C2R3 G\n#define KEY_RH_C3R3 C\n#define KEY_RH_C4R3 R\n#define KEY_RH_C5R3 L\n#define KEY_RH_C6R3 SLASH\n#define KEY_LH_C6R4 0\n#define KEY_LH_C5R4 A\n#define KEY_LH_C4R4 O\n#define KEY_LH_C3R4 E\n#define KEY_LH_C2R4 U\n#define KEY_LH_C1R4 I\n#define KEY_RH_C1R4 D\n#define KEY_RH_C2R4 H\n#define KEY_RH_C3R4 T\n#define KEY_RH_C4R4 N\n#define KEY_RH_C5R4 S\n#define KEY_RH_C6R4 MINUS\n#define KEY_LH_C6R5 LSHFT\n#define KEY_LH_C5R5 SEMI\n#define KEY_LH_C4R5 Q\n#define KEY_LH_C3R5 J\n#define KEY_LH_C2R5 K\n#define KEY_LH_C1R5 X\n#define KEY_LH_T1 ESC\n#define KEY_LH_T2 UP\n#define KEY_LH_T3 DOWN\n#define KEY_RH_T3 LEFT\n#define KEY_RH_T2 RIGHT\n#define KEY_RH_T1 ENTER\n#define KEY_RH_C1R5 B\n#define KEY_RH_C2R5 M\n#define KEY_RH_C3R5 W\n#define KEY_RH_C4R5 V\n#define KEY_RH_C5R5 Z\n#define KEY_RH_C6R5 RSHFT\n#define KEY_LH_C6R6 0\n#define KEY_LH_C5R6 HOME\n#define KEY_LH_C4R6 PG_UP\n#define KEY_LH_C3R6 PG_DN\n#define KEY_LH_C2R6 END\n#define KEY_LH_T4 BACKSPACE\n#define KEY_LH_T5 DELETE\n#define KEY_LH_T6 LSFT\n#define KEY_RH_T6 LSFT\n#define KEY_RH_T5 TAB\n#define KEY_RH_T4 SPACE\n#define KEY_RH_C2R6 LPAR\n#define KEY_RH_C3R6 LBKT\n#define KEY_RH_C4R6 RBKT\n#define KEY_RH_C5R6 RPAR\n#define KEY_RH_C6R6 0\n#endif\n#if defined(LAYER_ColemakDHm) && LAYER_ColemakDHm == 0\n#define KEY_LH_C6R1 F1\n#define KEY_LH_C5R1 F2\n#define KEY_LH_C4R1 F3\n#define KEY_LH_C3R1 F4\n#define KEY_LH_C2R1 F5\n#define KEY_RH_C2R1 F6\n#define KEY_RH_C3R1 F7\n#define KEY_RH_C4R1 F8\n#define KEY_RH_C5R1 F9\n#define KEY_RH_C6R1 F10\n#define KEY_LH_C6R2 EQUAL\n#define KEY_LH_C5R2 N1\n#define KEY_LH_C4R2 N2\n#define KEY_LH_C3R2 N3\n#define KEY_LH_C2R2 N4\n#define KEY_LH_C1R2 N5\n#define KEY_RH_C1R2 N6\n#define KEY_RH_C2R2 N7\n#define KEY_RH_C3R2 N8\n#define KEY_RH_C4R2 N9\n#define KEY_RH_C5R2 N0\n#define KEY_RH_C6R2 BSLH\n#define KEY_LH_C6R3 GRAVE\n#define KEY_LH_C5R3 Q\n#define KEY_LH_C4R3 W\n#define KEY_LH_C3R3 F\n#define KEY_LH_C2R3 P\n#define KEY_LH_C1R3 B\n#define KEY_RH_C1R3 J\n#define KEY_RH_C2R3 L\n#define KEY_RH_C3R3 U\n#define KEY_RH_C4R3 Y\n#define KEY_RH_C5R3 SEMI\n#define KEY_RH_C6R3 MINUS\n#define KEY_LH_C6R4 0\n#define KEY_LH_C5R4 A\n#define KEY_LH_C4R4 R\n#define KEY_LH_C3R4 S\n#define KEY_LH_C2R4 T\n#define KEY_LH_C1R4 G\n#define KEY_RH_C1R4 M\n#define KEY_RH_C2R4 N\n#define KEY_RH_C3R4 E\n#define KEY_RH_C4R4 I\n#define KEY_RH_C5R4 O\n#define KEY_RH_C6R4 SQT\n#define KEY_LH_C6R5 LSHFT\n#define KEY_LH_C5R5 Z\n#define KEY_LH_C4R5 X\n#define KEY_LH_C3R5 C\n#define KEY_LH_C2R5 D\n#define KEY_LH_C1R5 V\n#define KEY_LH_T1 ESC\n#define KEY_LH_T2 UP\n#define KEY_LH_T3 DOWN\n#define KEY_RH_T3 LEFT\n#define KEY_RH_T2 RIGHT\n#define KEY_RH_T1 ENTER\n#define KEY_RH_C1R5 K\n#define KEY_RH_C2R5 H\n#define KEY_RH_C3R5 COMMA\n#define KEY_RH_C4R5 DOT\n#define KEY_RH_C5R5 FSLH\n#define KEY_RH_C6R5 RSHFT\n#define KEY_LH_C6R6 0\n#define KEY_LH_C5R6 HOME\n#define KEY_LH_C4R6 PG_UP\n#define KEY_LH_C3R6 PG_DN\n#define KEY_LH_C2R6 END\n#define KEY_LH_T4 BACKSPACE\n#define KEY_LH_T5 DELETE\n#define KEY_LH_T6 LSFT\n#define KEY_RH_T6 LSFT\n#define KEY_RH_T5 TAB\n#define KEY_RH_T4 SPACE\n#define KEY_RH_C2R6 LPAR\n#define KEY_RH_C3R6 LBKT\n#define KEY_RH_C4R6 RBKT\n#define KEY_RH_C5R6 RPAR\n#define KEY_RH_C6R6 0\n#endif\n#if defined(LAYER_Colemak) && LAYER_Colemak == 0\n#define KEY_LH_C6R1 F1\n#define KEY_LH_C5R1 F2\n#define KEY_LH_C4R1 F3\n#define KEY_LH_C3R1 F4\n#define KEY_LH_C2R1 F5\n#define KEY_RH_C2R1 F6\n#define KEY_RH_C3R1 F7\n#define KEY_RH_C4R1 F8\n#define KEY_RH_C5R1 F9\n#define KEY_RH_C6R1 F10\n#define KEY_LH_C6R2 EQUAL\n#define KEY_LH_C5R2 N1\n#define KEY_LH_C4R2 N2\n#define KEY_LH_C3R2 N3\n#define KEY_LH_C2R2 N4\n#define KEY_LH_C1R2 N5\n#define KEY_RH_C1R2 N6\n#define KEY_RH_C2R2 N7\n#define KEY_RH_C3R2 N8\n#define KEY_RH_C4R2 N9\n#define KEY_RH_C5R2 N0\n#define KEY_RH_C6R2 BSLH\n#define KEY_LH_C6R3 GRAVE\n#define KEY_LH_C5R3 Q\n#define KEY_LH_C4R3 W\n#define KEY_LH_C3R3 F\n#define KEY_LH_C2R3 P\n#define KEY_LH_C1R3 G\n#define KEY_RH_C1R3 J\n#define KEY_RH_C2R3 L\n#define KEY_RH_C3R3 U\n#define KEY_RH_C4R3 Y\n#define KEY_RH_C5R3 SEMI\n#define KEY_RH_C6R3 MINUS\n#define KEY_LH_C6R4 0\n#define KEY_LH_C5R4 A\n#define KEY_LH_C4R4 R\n#define KEY_LH_C3R4 S\n#define KEY_LH_C2R4 T\n#define KEY_LH_C1R4 D\n#define KEY_RH_C1R4 H\n#define KEY_RH_C2R4 N\n#define KEY_RH_C3R4 E\n#define KEY_RH_C4R4 I\n#define KEY_RH_C5R4 O\n#define KEY_RH_C6R4 SQT\n#define KEY_LH_C6R5 LSHFT\n#define KEY_LH_C5R5 Z\n#define KEY_LH_C4R5 X\n#define KEY_LH_C3R5 C\n#define KEY_LH_C2R5 V\n#define KEY_LH_C1R5 B\n#define KEY_LH_T1 ESC\n#define KEY_LH_T2 UP\n#define KEY_LH_T3 DOWN\n#define KEY_RH_T3 LEFT\n#define KEY_RH_T2 RIGHT\n#define KEY_RH_T1 ENTER\n#define KEY_RH_C1R5 K\n#define KEY_RH_C2R5 M\n#define KEY_RH_C3R5 COMMA\n#define KEY_RH_C4R5 DOT\n#define KEY_RH_C5R5 FSLH\n#define KEY_RH_C6R5 RSHFT\n#define KEY_LH_C6R6 0\n#define KEY_LH_C5R6 HOME\n#define KEY_LH_C4R6 PG_UP\n#define KEY_LH_C3R6 PG_DN\n#define KEY_LH_C2R6 END\n#define KEY_LH_T4 BACKSPACE\n#define KEY_LH_T5 DELETE\n#define KEY_LH_T6 LSFT\n#define KEY_RH_T6 LSFT\n#define KEY_RH_T5 TAB\n#define KEY_RH_T4 SPACE\n#define KEY_RH_C2R6 LPAR\n#define KEY_RH_C3R6 LBKT\n#define KEY_RH_C4R6 RBKT\n#define KEY_RH_C5R6 RPAR\n#define KEY_RH_C6R6 0\n#endif\n#if defined(LAYER_QWERTY) && LAYER_QWERTY == 0\n#define KEY_LH_C6R1 F1\n#define KEY_LH_C5R1 F2\n#define KEY_LH_C4R1 F3\n#define KEY_LH_C3R1 F4\n#define KEY_LH_C2R1 F5\n#define KEY_RH_C2R1 F6\n#define KEY_RH_C3R1 F7\n#define KEY_RH_C4R1 F8\n#define KEY_RH_C5R1 F9\n#define KEY_RH_C6R1 F10\n#define KEY_LH_C6R2 EQUAL\n#define KEY_LH_C5R2 N1\n#define KEY_LH_C4R2 N2\n#define KEY_LH_C3R2 N3\n#define KEY_LH_C2R2 N4\n#define KEY_LH_C1R2 N5\n#define KEY_RH_C1R2 N6\n#define KEY_RH_C2R2 N7\n#define KEY_RH_C3R2 N8\n#define KEY_RH_C4R2 N9\n#define KEY_RH_C5R2 N0\n#define KEY_RH_C6R2 BSLH\n#define KEY_LH_C6R3 GRAVE\n#define KEY_LH_C5R3 Q\n#define KEY_LH_C4R3 W\n#define KEY_LH_C3R3 E\n#define KEY_LH_C2R3 R\n#define KEY_LH_C1R3 T\n#define KEY_RH_C1R3 Y\n#define KEY_RH_C2R3 U\n#define KEY_RH_C3R3 I\n#define KEY_RH_C4R3 O\n#define KEY_RH_C5R3 P\n#define KEY_RH_C6R3 MINUS\n#define KEY_LH_C6R4 0\n#define KEY_LH_C5R4 A\n#define KEY_LH_C4R4 S\n#define KEY_LH_C3R4 D\n#define KEY_LH_C2R4 F\n#define KEY_LH_C1R4 G\n#define KEY_RH_C1R4 H\n#define KEY_RH_C2R4 J\n#define KEY_RH_C3R4 K\n#define KEY_RH_C4R4 L\n#define KEY_RH_C5R4 SEMI\n#define KEY_RH_C6R4 SQT\n#define KEY_LH_C6R5 LSHFT\n#define KEY_LH_C5R5 Z\n#define KEY_LH_C4R5 X\n#define KEY_LH_C3R5 C\n#define KEY_LH_C2R5 V\n#define KEY_LH_C1R5 B\n#define KEY_LH_T1 ESC\n#define KEY_LH_T2 UP\n#define KEY_LH_T3 DOWN\n#define KEY_RH_T3 LEFT\n#define KEY_RH_T2 RIGHT\n#define KEY_RH_T1 ENTER\n#define KEY_RH_C1R5 N\n#define KEY_RH_C2R5 M\n#define KEY_RH_C3R5 COMMA\n#define KEY_RH_C4R5 DOT\n#define KEY_RH_C5R5 FSLH\n#define KEY_RH_C6R5 RSHFT\n#define KEY_LH_C6R6 0\n#define KEY_LH_C5R6 HOME\n#define KEY_LH_C4R6 PG_UP\n#define KEY_LH_C3R6 PG_DN\n#define KEY_LH_C2R6 END\n#define KEY_LH_T4 BACKSPACE\n#define KEY_LH_T5 DELETE\n#define KEY_LH_T6 LSFT\n#define KEY_RH_T6 LSFT\n#define KEY_RH_T5 TAB\n#define KEY_RH_T4 SPACE\n#define KEY_RH_C2R6 LPAR\n#define KEY_RH_C3R6 LBKT\n#define KEY_RH_C4R6 RBKT\n#define KEY_RH_C5R6 RPAR\n#define KEY_RH_C6R6 0\n#endif\n#if defined(LAYER_Norman) && LAYER_Norman == 0\n#define KEY_LH_C6R1 F1\n#define KEY_LH_C5R1 F2\n#define KEY_LH_C4R1 F3\n#define KEY_LH_C3R1 F4\n#define KEY_LH_C2R1 F5\n#define KEY_RH_C2R1 F6\n#define KEY_RH_C3R1 F7\n#define KEY_RH_C4R1 F8\n#define KEY_RH_C5R1 F9\n#define KEY_RH_C6R1 F10\n#define KEY_LH_C6R2 EQUAL\n#define KEY_LH_C5R2 N1\n#define KEY_LH_C4R2 N2\n#define KEY_LH_C3R2 N3\n#define KEY_LH_C2R2 N4\n#define KEY_LH_C1R2 N5\n#define KEY_RH_C1R2 N6\n#define KEY_RH_C2R2 N7\n#define KEY_RH_C3R2 N8\n#define KEY_RH_C4R2 N9\n#define KEY_RH_C5R2 N0\n#define KEY_RH_C6R2 BSLH\n#define KEY_LH_C6R3 GRAVE\n#define KEY_LH_C5R3 Q\n#define KEY_LH_C4R3 W\n#define KEY_LH_C3R3 D\n#define KEY_LH_C2R3 F\n#define KEY_LH_C1R3 K\n#define KEY_RH_C1R3 J\n#define KEY_RH_C2R3 U\n#define KEY_RH_C3R3 R\n#define KEY_RH_C4R3 L\n#define KEY_RH_C5R3 SEMI\n#define KEY_RH_C6R3 MINUS\n#define KEY_LH_C6R4 0\n#define KEY_LH_C5R4 A\n#define KEY_LH_C4R4 S\n#define KEY_LH_C3R4 E\n#define KEY_LH_C2R4 T\n#define KEY_LH_C1R4 G\n#define KEY_RH_C1R4 Y\n#define KEY_RH_C2R4 N\n#define KEY_RH_C3R4 I\n#define KEY_RH_C4R4 O\n#define KEY_RH_C5R4 H\n#define KEY_RH_C6R4 SQT\n#define KEY_LH_C6R5 LSHFT\n#define KEY_LH_C5R5 Z\n#define KEY_LH_C4R5 X\n#define KEY_LH_C3R5 C\n#define KEY_LH_C2R5 V\n#define KEY_LH_C1R5 B\n#define KEY_LH_T1 ESC\n#define KEY_LH_T2 UP\n#define KEY_LH_T3 DOWN\n#define KEY_RH_T3 LEFT\n#define KEY_RH_T2 RIGHT\n#define KEY_RH_T1 ENTER\n#define KEY_RH_C1R5 P\n#define KEY_RH_C2R5 M\n#define KEY_RH_C3R5 COMMA\n#define KEY_RH_C4R5 DOT\n#define KEY_RH_C5R5 FSLH\n#define KEY_RH_C6R5 RSHFT\n#define KEY_LH_C6R6 0\n#define KEY_LH_C5R6 HOME\n#define KEY_LH_C4R6 PG_UP\n#define KEY_LH_C3R6 PG_DN\n#define KEY_LH_C2R6 END\n#define KEY_LH_T4 BACKSPACE\n#define KEY_LH_T5 DELETE\n#define KEY_LH_T6 LSFT\n#define KEY_RH_T6 LSFT\n#define KEY_RH_T5 TAB\n#define KEY_RH_T4 SPACE\n#define KEY_RH_C2R6 LPAR\n#define KEY_RH_C3R6 LBKT\n#define KEY_RH_C4R6 RBKT\n#define KEY_RH_C5R6 RPAR\n#define KEY_RH_C6R6 0\n#endif\n#if defined(LAYER_Workman) && LAYER_Workman == 0\n#define KEY_LH_C6R1 F1\n#define KEY_LH_C5R1 F2\n#define KEY_LH_C4R1 F3\n#define KEY_LH_C3R1 F4\n#define KEY_LH_C2R1 F5\n#define KEY_RH_C2R1 F6\n#define KEY_RH_C3R1 F7\n#define KEY_RH_C4R1 F8\n#define KEY_RH_C5R1 F9\n#define KEY_RH_C6R1 F10\n#define KEY_LH_C6R2 EQUAL\n#define KEY_LH_C5R2 N1\n#define KEY_LH_C4R2 N2\n#define KEY_LH_C3R2 N3\n#define KEY_LH_C2R2 N4\n#define KEY_LH_C1R2 N5\n#define KEY_RH_C1R2 N6\n#define KEY_RH_C2R2 N7\n#define KEY_RH_C3R2 N8\n#define KEY_RH_C4R2 N9\n#define KEY_RH_C5R2 N0\n#define KEY_RH_C6R2 BSLH\n#define KEY_LH_C6R3 GRAVE\n#define KEY_LH_C5R3 Q\n#define KEY_LH_C4R3 D\n#define KEY_LH_C3R3 R\n#define KEY_LH_C2R3 W\n#define KEY_LH_C1R3 B\n#define KEY_RH_C1R3 J\n#define KEY_RH_C2R3 F\n#define KEY_RH_C3R3 U\n#define KEY_RH_C4R3 P\n#define KEY_RH_C5R3 SEMI\n#define KEY_RH_C6R3 MINUS\n#define KEY_LH_C6R4 0\n#define KEY_LH_C5R4 A\n#define KEY_LH_C4R4 S\n#define KEY_LH_C3R4 H\n#define KEY_LH_C2R4 T\n#define KEY_LH_C1R4 G\n#define KEY_RH_C1R4 Y\n#define KEY_RH_C2R4 N\n#define KEY_RH_C3R4 E\n#define KEY_RH_C4R4 O\n#define KEY_RH_C5R4 I\n#define KEY_RH_C6R4 SQT\n#define KEY_LH_C6R5 LSHFT\n#define KEY_LH_C5R5 Z\n#define KEY_LH_C4R5 X\n#define KEY_LH_C3R5 M\n#define KEY_LH_C2R5 C\n#define KEY_LH_C1R5 V\n#define KEY_LH_T1 ESC\n#define KEY_LH_T2 UP\n#define KEY_LH_T3 DOWN\n#define KEY_RH_T3 LEFT\n#define KEY_RH_T2 RIGHT\n#define KEY_RH_T1 ENTER\n#define KEY_RH_C1R5 K\n#define KEY_RH_C2R5 L\n#define KEY_RH_C3R5 COMMA\n#define KEY_RH_C4R5 DOT\n#define KEY_RH_C5R5 FSLH\n#define KEY_RH_C6R5 RSHFT\n#define KEY_LH_C6R6 0\n#define KEY_LH_C5R6 HOME\n#define KEY_LH_C4R6 PG_UP\n#define KEY_LH_C3R6 PG_DN\n#define KEY_LH_C2R6 END\n#define KEY_LH_T4 BACKSPACE\n#define KEY_LH_T5 DELETE\n#define KEY_LH_T6 LSFT\n#define KEY_RH_T6 LSFT\n#define KEY_RH_T5 TAB\n#define KEY_RH_T4 SPACE\n#define KEY_RH_C2R6 LPAR\n#define KEY_RH_C3R6 LBKT\n#define KEY_RH_C4R6 RBKT\n#define KEY_RH_C5R6 RPAR\n#define KEY_RH_C6R6 0\n#endif\n#if defined(LAYER_Halmak) && LAYER_Halmak == 0\n#define KEY_LH_C6R1 F1\n#define KEY_LH_C5R1 F2\n#define KEY_LH_C4R1 F3\n#define KEY_LH_C3R1 F4\n#define KEY_LH_C2R1 F5\n#define KEY_RH_C2R1 F6\n#define KEY_RH_C3R1 F7\n#define KEY_RH_C4R1 F8\n#define KEY_RH_C5R1 F9\n#define KEY_RH_C6R1 F10\n#define KEY_LH_C6R2 EQUAL\n#define KEY_LH_C5R2 N1\n#define KEY_LH_C4R2 N2\n#define KEY_LH_C3R2 N3\n#define KEY_LH_C2R2 N4\n#define KEY_LH_C1R2 N5\n#define KEY_RH_C1R2 N6\n#define KEY_RH_C2R2 N7\n#define KEY_RH_C3R2 N8\n#define KEY_RH_C4R2 N9\n#define KEY_RH_C5R2 N0\n#define KEY_RH_C6R2 BSLH\n#define KEY_LH_C6R3 GRAVE\n#define KEY_LH_C5R3 W\n#define KEY_LH_C4R3 L\n#define KEY_LH_C3R3 R\n#define KEY_LH_C2R3 B\n#define KEY_LH_C1R3 Z\n#define KEY_RH_C1R3 SEMI\n#define KEY_RH_C2R3 Q\n#define KEY_RH_C3R3 U\n#define KEY_RH_C4R3 D\n#define KEY_RH_C5R3 J\n#define KEY_RH_C6R3 MINUS\n#define KEY_LH_C6R4 0\n#define KEY_LH_C5R4 S\n#define KEY_LH_C4R4 H\n#define KEY_LH_C3R4 N\n#define KEY_LH_C2R4 T\n#define KEY_LH_C1R4 COMMA\n#define KEY_RH_C1R4 DOT\n#define KEY_RH_C2R4 A\n#define KEY_RH_C3R4 E\n#define KEY_RH_C4R4 O\n#define KEY_RH_C5R4 I\n#define KEY_RH_C6R4 SQT\n#define KEY_LH_C6R5 LSHFT\n#define KEY_LH_C5R5 F\n#define KEY_LH_C4R5 M\n#define KEY_LH_C3R5 V\n#define KEY_LH_C2R5 C\n#define KEY_LH_C1R5 FSLH\n#define KEY_LH_T1 ESC\n#define KEY_LH_T2 UP\n#define KEY_LH_T3 DOWN\n#define KEY_RH_T3 LEFT\n#define KEY_RH_T2 RIGHT\n#define KEY_RH_T1 ENTER\n#define KEY_RH_C1R5 G\n#define KEY_RH_C2R5 P\n#define KEY_RH_C3R5 X\n#define KEY_RH_C4R5 K\n#define KEY_RH_C5R5 Y\n#define KEY_RH_C6R5 RSHFT\n#define KEY_LH_C6R6 0\n#define KEY_LH_C5R6 HOME\n#define KEY_LH_C4R6 PG_UP\n#define KEY_LH_C3R6 PG_DN\n#define KEY_LH_C2R6 END\n#define KEY_LH_T4 BACKSPACE\n#define KEY_LH_T5 DELETE\n#define KEY_LH_T6 LSFT\n#define KEY_RH_T6 LSFT\n#define KEY_RH_T5 TAB\n#define KEY_RH_T4 SPACE\n#define KEY_RH_C2R6 LPAR\n#define KEY_RH_C3R6 LBKT\n#define KEY_RH_C4R6 RBKT\n#define KEY_RH_C5R6 RPAR\n#define KEY_RH_C6R6 0\n#endif\n\ncombos {\n compatible = \"zmk,combos\";\n\n //\n // COMBO_FIRING_DECAY defines how much time you have left (milliseconds)\n // after pressing the first key in a ZMK combo to finish the whole chord.\n //\n #ifndef COMBO_FIRING_DECAY\n #define COMBO_FIRING_DECAY 50\n #endif\n #ifdef LAYER_Gaming\n combo_gaming_layer_toggle {\n timeout-ms = ;\n key-positions = ;\n bindings = <&tog LAYER_Gaming>;\n layers = <0 LAYER_Gaming>;\n };\n #endif\n #ifdef _A_TAB\n combo_alt_tab_switcher {\n timeout-ms = ;\n key-positions = ;\n bindings = <&mod_tab_chord _A_TAB LAYER_Cursor>;\n layers = <0 1 2 3 4 5 6 7 8>;\n };\n #endif\n};\n\nbehaviors {\n\n //////////////////////////////////////////////////////////////////////////\n //\n // Miryoku layers and home row mods (ported from my QMK endgame)\n // - https://sunaku.github.io/home-row-mods.html#porting-to-zmk\n // - https://github.com/urob/zmk-config#timeless-homerow-mods\n //\n //////////////////////////////////////////////////////////////////////////\n\n //\n // ENFORCE_BILATERAL cancels out single-handed home row mods activation by\n // releasing any currently pressed mods and replacing them with plain taps.\n //\n // NOTE: You may still encounter \"flashing mods\" where an operating system\n // action is triggered by the release of mods, such as LGUI which launches\n // the Windows Start Menu and LALT which opens the Microsoft Office Ribbon.\n //\n //#define ENFORCE_BILATERAL\n\n //\n // The *_FINGER_MOD specify which modifiers are used by home row mod keys.\n // Here, we use Miryoku's \"GACS\" (Win, Alt, Ctrl, Shift) order by default,\n // unless OPERATING_SYSTEM is macOS, in which case Win & Ctrl are swapped.\n //\n #ifndef PINKY_FINGER_MOD\n #if OPERATING_SYSTEM == 'M'\n #define PINKY_FINGER_MOD LCTL\n #else\n #define PINKY_FINGER_MOD LGUI\n #endif\n #endif\n #ifndef RING1_FINGER_MOD\n #define RING1_FINGER_MOD LALT\n #endif\n #ifndef RING2_FINGER_MOD\n #define RING2_FINGER_MOD RALT\n #endif\n #ifndef MIDDY_FINGER_MOD\n #if OPERATING_SYSTEM == 'M'\n #define MIDDY_FINGER_MOD LGUI\n #else\n #define MIDDY_FINGER_MOD LCTL\n #endif\n #endif\n #ifndef INDEX_FINGER_MOD\n #define INDEX_FINGER_MOD LSFT\n #endif\n //\n // The following settings let you configure mods individually, per finger:\n //\n #ifndef LEFT_PINKY_MOD\n #define LEFT_PINKY_MOD PINKY_FINGER_MOD\n #endif\n #ifndef RIGHT_PINKY_MOD\n #define RIGHT_PINKY_MOD PINKY_FINGER_MOD\n #endif\n #ifndef LEFT_RING1_MOD\n #define LEFT_RING1_MOD RING1_FINGER_MOD\n #endif\n #ifndef RIGHT_RING1_MOD\n #define RIGHT_RING1_MOD RING1_FINGER_MOD\n #endif\n #ifndef LEFT_RING2_MOD\n #define LEFT_RING2_MOD RING2_FINGER_MOD\n #endif\n #ifndef RIGHT_RING2_MOD\n #define RIGHT_RING2_MOD RING2_FINGER_MOD\n #endif\n #ifndef LEFT_MIDDY_MOD\n #define LEFT_MIDDY_MOD MIDDY_FINGER_MOD\n #endif\n #ifndef RIGHT_MIDDY_MOD\n #define RIGHT_MIDDY_MOD MIDDY_FINGER_MOD\n #endif\n #ifndef LEFT_INDEX_MOD\n #define LEFT_INDEX_MOD INDEX_FINGER_MOD\n #endif\n #ifndef RIGHT_INDEX_MOD\n #define RIGHT_INDEX_MOD INDEX_FINGER_MOD\n #endif\n\n //\n // HOMEY_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use\n // for the pinky, ring, and middle fingers (which are assigned to Super,\n // Alt, and Ctrl respectively in the Miryoku system) on home row keys.\n //\n #ifndef HOMEY_HOLDING_TYPE\n #define HOMEY_HOLDING_TYPE \"tap-preferred\"\n #endif\n\n //\n // HOMEY_HOLDING_TIME defines how long you need to hold (milliseconds)\n // home row mod keys in order to send their modifiers to the computer\n // (i.e. \"register\" them) for mod-click mouse usage (e.g. Ctrl-Click).\n //\n #ifndef HOMEY_HOLDING_TIME\n #define HOMEY_HOLDING_TIME 240 // TAPPING_TERM + ALLOW_CROSSOVER_AFTER\n #endif\n\n //\n // HOMEY_STREAK_DECAY defines how long you need to wait (milliseconds)\n // after typing before you can use home row mods again. It prevents\n // unintended activation of home row mods when you're actively typing.\n //\n #ifndef HOMEY_STREAK_DECAY\n #define HOMEY_STREAK_DECAY 160\n #endif\n\n //\n // HOMEY_REPEAT_DECAY defines how much time you have left (milliseconds)\n // after tapping a key to hold it again in order to make it auto-repeat.\n //\n #ifndef HOMEY_REPEAT_DECAY\n #define HOMEY_REPEAT_DECAY 300 // \"tap then hold\" for key auto-repeat\n #endif\n\n //\n // CHORD_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use\n // for chorded home row mods (secondary keypresses in multi-mod chords).\n //\n #ifndef CHORD_HOLDING_TYPE\n #define CHORD_HOLDING_TYPE HOMEY_HOLDING_TYPE\n #endif\n\n //\n // CHORD_HOLDING_TIME defines how long you need to hold (milliseconds)\n // home row mod keys in order to send their modifiers to the computer\n // (i.e. \"register\" them) for mod-click mouse usage (e.g. Ctrl-Click).\n // This is specifically for secondary keypresses in multi-mod chords.\n //\n #ifndef CHORD_HOLDING_TIME\n #define CHORD_HOLDING_TIME 150\n #endif\n\n //\n // CHORD_STREAK_DECAY defines how long you need to wait (milliseconds)\n // after typing before you can use home row mods again. It prevents\n // unintended activation of home row mods when you're actively typing\n // This is specifically for secondary keypresses in multi-mod chords.\n //\n #ifndef CHORD_STREAK_DECAY\n #define CHORD_STREAK_DECAY HOMEY_STREAK_DECAY\n #endif\n\n //\n // CHORD_REPEAT_DECAY defines how much time you have left (milliseconds)\n // after tapping a key to hold it again in order to make it auto-repeat.\n // This is specifically for secondary keypresses in multi-mod chords.\n //\n #ifndef CHORD_REPEAT_DECAY\n #define CHORD_REPEAT_DECAY HOMEY_REPEAT_DECAY\n #endif\n\n //\n // INDEX_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use\n // for index fingers (which Miryoku assigns to Shift) on home row keys.\n //\n // NOTE: The \"tap-preferred\" flavor of ZMK hold-tap for index finger keys\n // allows faster activation of the Shift modifier (without having to wait\n // for the modified key to be released as the \"balanced\" flavor requires).\n // Typing streaks and the `hold-trigger-on-release` setting are disabled\n // for the index fingers so as not to hinder their speed and dexterity.\n //\n #ifndef INDEX_HOLDING_TYPE\n #define INDEX_HOLDING_TYPE \"tap-preferred\"\n #endif\n\n //\n // INDEX_HOLDING_TIME defines how long you need to hold (milliseconds)\n // index finger keys in order to send their modifiers to the computer\n // (i.e. \"register\" them) for mod-click mouse usage (e.g. Shift-Click).\n //\n #ifndef INDEX_HOLDING_TIME\n #define INDEX_HOLDING_TIME 180\n #endif\n\n //\n // INDEX_STREAK_DECAY defines how long you need to wait (milliseconds)\n // after typing before you can use home row mods again. It prevents\n // unintended activation of home row mods when you're actively typing.\n //\n #ifndef INDEX_STREAK_DECAY\n #define INDEX_STREAK_DECAY 100\n #endif\n\n //\n // INDEX_REPEAT_DECAY defines how much time you have left (milliseconds)\n // after tapping a key to hold it again in order to make it auto-repeat.\n //\n #ifndef INDEX_REPEAT_DECAY\n #define INDEX_REPEAT_DECAY 300 // \"tap then hold\" for key auto-repeat\n #endif\n\n //\n // PLAIN_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use\n // for index fingers (which Miryoku assigns to Shift) on home row keys.\n //\n // NOTE: The \"tap-preferred\" flavor of ZMK hold-tap for index finger keys\n // allows faster activation of the Shift modifier (without having to wait\n // for the modified key to be released as the \"balanced\" flavor requires).\n // Typing streaks and the `hold-trigger-on-release` setting are disabled\n // for the index fingers so as not to hinder their speed and dexterity.\n //\n #ifndef PLAIN_HOLDING_TYPE\n #define PLAIN_HOLDING_TYPE HOMEY_HOLDING_TYPE\n #endif\n\n //\n // PLAIN_HOLDING_TIME defines how long you need to hold (milliseconds)\n // index finger keys in order to send their modifiers to the computer\n // (i.e. \"register\" them) for mod-click mouse usage (e.g. Shift-Click).\n //\n #ifndef PLAIN_HOLDING_TIME\n #define PLAIN_HOLDING_TIME HOMEY_HOLDING_TIME\n #endif\n\n //\n // PLAIN_STREAK_DECAY defines how long you need to wait (milliseconds)\n // after typing before you can use home row mods again. It prevents\n // unintended activation of home row mods when you're actively typing.\n //\n #ifndef PLAIN_STREAK_DECAY\n #define PLAIN_STREAK_DECAY HOMEY_STREAK_DECAY\n #endif\n\n //\n // PLAIN_REPEAT_DECAY defines how much time you have left (milliseconds)\n // after tapping a key to hold it again in order to make it auto-repeat.\n //\n #ifndef PLAIN_REPEAT_DECAY\n #define PLAIN_REPEAT_DECAY 300 // \"tap then hold\" for key auto-repeat\n #endif\n\n //\n // THUMB_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use\n // for the thumbs (which are assigned to 6 layers in the Miryoku system).\n //\n // NOTE: The \"balanced\" flavor of ZMK hold-tap provides instant modifier\n // activation for the symbol layer (if the tapped symbol key is released\n // while the thumb layer key is still held down) for quicker programming.\n //\n #ifndef THUMB_HOLDING_TYPE\n #define THUMB_HOLDING_TYPE \"balanced\"\n #endif\n\n //\n // THUMB_HOLDING_TIME defines how long you need to hold (milliseconds)\n // a thumb key to activate a layer. Shorter holds are treated as taps.\n //\n #ifndef THUMB_HOLDING_TIME\n #define THUMB_HOLDING_TIME 200\n #endif\n\n //\n // THUMB_REPEAT_DECAY defines how much time you have left (milliseconds)\n // after tapping a key to hold it again in order to make it auto-repeat.\n //\n #ifndef THUMB_REPEAT_DECAY\n #define THUMB_REPEAT_DECAY 300 // \"tap then hold\" for key auto-repeat\n #endif\n\n //\n // SPACE_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use\n // for spacebar (assigned to the right thumb's home position by default).\n //\n // NOTE: The \"balanced\" flavor of ZMK hold-tap provides instant modifier\n // activation for the symbol layer (if the tapped symbol key is released\n // while the thumb layer key is still held down) for quicker programming.\n //\n #ifndef SPACE_HOLDING_TYPE\n #define SPACE_HOLDING_TYPE THUMB_HOLDING_TYPE\n #endif\n\n //\n // SPACE_HOLDING_TIME defines how long you need to hold (milliseconds)\n // the space thumb key to activate. Shorter holds are treated as taps.\n //\n #ifndef SPACE_HOLDING_TIME\n #define SPACE_HOLDING_TIME THUMB_HOLDING_TIME\n #endif\n\n //\n // SPACE_REPEAT_DECAY defines how much time you have left (milliseconds)\n // after tapping a key to hold it again in order to make it auto-repeat.\n //\n #ifndef SPACE_REPEAT_DECAY\n #define SPACE_REPEAT_DECAY 150\n #endif\n\n //\n // Glove80 key positions index for positional hold-tap\n // - https://discord.com/channels/877392805654306816/937645688244826154/1066713913351221248\n // - https://media.discordapp.net/attachments/937645688244826154/1066713913133121556/image.png\n //\n // |------------------------|------------------------|\n // | LEFT_HAND_KEYS | RIGHT_HAND_KEYS |\n // | | |\n // | 0 1 2 3 4 | 5 6 7 8 9 |\n // | 10 11 12 13 14 15 | 16 17 18 19 20 21 |\n // | 22 23 24 25 26 27 | 28 29 30 31 32 33 |\n // | 34 35 36 37 38 39 | 40 41 42 43 44 45 |\n // | 46 47 48 49 50 51 | 58 59 60 61 62 63 |\n // | 64 65 66 67 68 | 75 76 77 78 79 |\n // | 69 52 | 57 74 |\n // | 70 53 | 56 73 |\n // | 71 54 | 55 72 |\n // |------------------------|------------------------|\n //\n #define LEFT_HAND_KEYS \\\n 0 1 2 3 4 \\\n 10 11 12 13 14 15 \\\n 22 23 24 25 26 27 \\\n 34 35 36 37 38 39 \\\n 46 47 48 49 50 51 \\\n 64 65 66 67 68\n #define RIGHT_HAND_KEYS \\\n 5 6 7 8 9 \\\n 16 17 18 19 20 21 \\\n 28 29 30 31 32 33 \\\n 40 41 42 43 44 45 \\\n 58 59 60 61 62 63 \\\n 75 76 77 78 79\n #define THUMB_KEYS \\\n 69 52 57 74 \\\n 70 53 56 73 \\\n 71 54 55 72\n\n #define LEFT_PINKY_KEY KEY_LH_C5R4\n #define LEFT_RING1_KEY KEY_LH_C4R4\n #define LEFT_RING2_KEY KEY_LH_C4R3\n #define LEFT_MIDDY_KEY KEY_LH_C3R4\n #define LEFT_INDEX_KEY KEY_LH_C2R4\n #define LEFT_PLAIN_KEY KEY_LH_C1R4\n\n #define RIGHT_PINKY_KEY KEY_RH_C5R4\n #define RIGHT_RING1_KEY KEY_RH_C4R4\n #define RIGHT_RING2_KEY KEY_RH_C4R3\n #define RIGHT_MIDDY_KEY KEY_RH_C3R4\n #define RIGHT_INDEX_KEY KEY_RH_C2R4\n #define RIGHT_PLAIN_KEY KEY_RH_C1R4\n #if defined(LAYER_Engram) && LAYER_Engram == 0\n #define LeftPlainKey engram_COMMA\n #define RightPlainKey engram_DOT\n #else\n #define LeftPlainKey kp LEFT_PLAIN_KEY\n #define RightPlainKey kp RIGHT_PLAIN_KEY\n #endif\n\n //\n // Home row mods with bilateral combinations support\n //\n#ifndef PINKY_HOLDING_TYPE\n#define PINKY_HOLDING_TYPE HOMEY_HOLDING_TYPE\n#endif\n#ifndef PINKY_CHORD_HOLDING_TYPE\n#define PINKY_CHORD_HOLDING_TYPE CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_PINKY_CHORD_HOLDING_TYPE\n#define LEFT_PINKY_CHORD_HOLDING_TYPE PINKY_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_PINKY_CHORD_HOLDING_TYPE\n#define RIGHT_PINKY_CHORD_HOLDING_TYPE PINKY_CHORD_HOLDING_TYPE\n#endif\n#ifndef PINKY_HOLDING_TIME\n#define PINKY_HOLDING_TIME HOMEY_HOLDING_TIME\n#endif\n#ifndef PINKY_CHORD_HOLDING_TIME\n#define PINKY_CHORD_HOLDING_TIME CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_PINKY_CHORD_HOLDING_TIME\n#define LEFT_PINKY_CHORD_HOLDING_TIME PINKY_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_PINKY_CHORD_HOLDING_TIME\n#define RIGHT_PINKY_CHORD_HOLDING_TIME PINKY_CHORD_HOLDING_TIME\n#endif\n#ifndef PINKY_STREAK_DECAY\n#define PINKY_STREAK_DECAY HOMEY_STREAK_DECAY\n#endif\n#ifndef PINKY_CHORD_STREAK_DECAY\n#define PINKY_CHORD_STREAK_DECAY CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_PINKY_CHORD_STREAK_DECAY\n#define LEFT_PINKY_CHORD_STREAK_DECAY PINKY_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_PINKY_CHORD_STREAK_DECAY\n#define RIGHT_PINKY_CHORD_STREAK_DECAY PINKY_CHORD_STREAK_DECAY\n#endif\n#ifndef PINKY_REPEAT_DECAY\n#define PINKY_REPEAT_DECAY HOMEY_REPEAT_DECAY\n#endif\n#ifndef PINKY_CHORD_REPEAT_DECAY\n#define PINKY_CHORD_REPEAT_DECAY CHORD_REPEAT_DECAY\n#endif\n#ifndef LEFT_PINKY_CHORD_REPEAT_DECAY\n#define LEFT_PINKY_CHORD_REPEAT_DECAY PINKY_CHORD_REPEAT_DECAY\n#endif\n#ifndef RIGHT_PINKY_CHORD_REPEAT_DECAY\n#define RIGHT_PINKY_CHORD_REPEAT_DECAY PINKY_CHORD_REPEAT_DECAY\n#endif\n#ifndef RING1_HOLDING_TYPE\n#define RING1_HOLDING_TYPE HOMEY_HOLDING_TYPE\n#endif\n#ifndef RING1_CHORD_HOLDING_TYPE\n#define RING1_CHORD_HOLDING_TYPE CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING1_CHORD_HOLDING_TYPE\n#define LEFT_RING1_CHORD_HOLDING_TYPE RING1_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING1_CHORD_HOLDING_TYPE\n#define RIGHT_RING1_CHORD_HOLDING_TYPE RING1_CHORD_HOLDING_TYPE\n#endif\n#ifndef RING1_HOLDING_TIME\n#define RING1_HOLDING_TIME HOMEY_HOLDING_TIME\n#endif\n#ifndef RING1_CHORD_HOLDING_TIME\n#define RING1_CHORD_HOLDING_TIME CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_RING1_CHORD_HOLDING_TIME\n#define LEFT_RING1_CHORD_HOLDING_TIME RING1_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING1_CHORD_HOLDING_TIME\n#define RIGHT_RING1_CHORD_HOLDING_TIME RING1_CHORD_HOLDING_TIME\n#endif\n#ifndef RING1_STREAK_DECAY\n#define RING1_STREAK_DECAY HOMEY_STREAK_DECAY\n#endif\n#ifndef RING1_CHORD_STREAK_DECAY\n#define RING1_CHORD_STREAK_DECAY CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_RING1_CHORD_STREAK_DECAY\n#define LEFT_RING1_CHORD_STREAK_DECAY RING1_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING1_CHORD_STREAK_DECAY\n#define RIGHT_RING1_CHORD_STREAK_DECAY RING1_CHORD_STREAK_DECAY\n#endif\n#ifndef RING1_REPEAT_DECAY\n#define RING1_REPEAT_DECAY HOMEY_REPEAT_DECAY\n#endif\n#ifndef RING1_CHORD_REPEAT_DECAY\n#define RING1_CHORD_REPEAT_DECAY CHORD_REPEAT_DECAY\n#endif\n#ifndef LEFT_RING1_CHORD_REPEAT_DECAY\n#define LEFT_RING1_CHORD_REPEAT_DECAY RING1_CHORD_REPEAT_DECAY\n#endif\n#ifndef RIGHT_RING1_CHORD_REPEAT_DECAY\n#define RIGHT_RING1_CHORD_REPEAT_DECAY RING1_CHORD_REPEAT_DECAY\n#endif\n#ifndef RING2_HOLDING_TYPE\n#define RING2_HOLDING_TYPE HOMEY_HOLDING_TYPE\n#endif\n#ifndef RING2_CHORD_HOLDING_TYPE\n#define RING2_CHORD_HOLDING_TYPE CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING2_CHORD_HOLDING_TYPE\n#define LEFT_RING2_CHORD_HOLDING_TYPE RING2_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING2_CHORD_HOLDING_TYPE\n#define RIGHT_RING2_CHORD_HOLDING_TYPE RING2_CHORD_HOLDING_TYPE\n#endif\n#ifndef RING2_HOLDING_TIME\n#define RING2_HOLDING_TIME HOMEY_HOLDING_TIME\n#endif\n#ifndef RING2_CHORD_HOLDING_TIME\n#define RING2_CHORD_HOLDING_TIME CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_RING2_CHORD_HOLDING_TIME\n#define LEFT_RING2_CHORD_HOLDING_TIME RING2_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING2_CHORD_HOLDING_TIME\n#define RIGHT_RING2_CHORD_HOLDING_TIME RING2_CHORD_HOLDING_TIME\n#endif\n#ifndef RING2_STREAK_DECAY\n#define RING2_STREAK_DECAY HOMEY_STREAK_DECAY\n#endif\n#ifndef RING2_CHORD_STREAK_DECAY\n#define RING2_CHORD_STREAK_DECAY CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_RING2_CHORD_STREAK_DECAY\n#define LEFT_RING2_CHORD_STREAK_DECAY RING2_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING2_CHORD_STREAK_DECAY\n#define RIGHT_RING2_CHORD_STREAK_DECAY RING2_CHORD_STREAK_DECAY\n#endif\n#ifndef RING2_REPEAT_DECAY\n#define RING2_REPEAT_DECAY HOMEY_REPEAT_DECAY\n#endif\n#ifndef RING2_CHORD_REPEAT_DECAY\n#define RING2_CHORD_REPEAT_DECAY CHORD_REPEAT_DECAY\n#endif\n#ifndef LEFT_RING2_CHORD_REPEAT_DECAY\n#define LEFT_RING2_CHORD_REPEAT_DECAY RING2_CHORD_REPEAT_DECAY\n#endif\n#ifndef RIGHT_RING2_CHORD_REPEAT_DECAY\n#define RIGHT_RING2_CHORD_REPEAT_DECAY RING2_CHORD_REPEAT_DECAY\n#endif\n#ifndef MIDDY_HOLDING_TYPE\n#define MIDDY_HOLDING_TYPE HOMEY_HOLDING_TYPE\n#endif\n#ifndef MIDDY_CHORD_HOLDING_TYPE\n#define MIDDY_CHORD_HOLDING_TYPE CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_MIDDY_CHORD_HOLDING_TYPE\n#define LEFT_MIDDY_CHORD_HOLDING_TYPE MIDDY_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_MIDDY_CHORD_HOLDING_TYPE\n#define RIGHT_MIDDY_CHORD_HOLDING_TYPE MIDDY_CHORD_HOLDING_TYPE\n#endif\n#ifndef MIDDY_HOLDING_TIME\n#define MIDDY_HOLDING_TIME HOMEY_HOLDING_TIME\n#endif\n#ifndef MIDDY_CHORD_HOLDING_TIME\n#define MIDDY_CHORD_HOLDING_TIME CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_MIDDY_CHORD_HOLDING_TIME\n#define LEFT_MIDDY_CHORD_HOLDING_TIME MIDDY_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_MIDDY_CHORD_HOLDING_TIME\n#define RIGHT_MIDDY_CHORD_HOLDING_TIME MIDDY_CHORD_HOLDING_TIME\n#endif\n#ifndef MIDDY_STREAK_DECAY\n#define MIDDY_STREAK_DECAY HOMEY_STREAK_DECAY\n#endif\n#ifndef MIDDY_CHORD_STREAK_DECAY\n#define MIDDY_CHORD_STREAK_DECAY CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_MIDDY_CHORD_STREAK_DECAY\n#define LEFT_MIDDY_CHORD_STREAK_DECAY MIDDY_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_MIDDY_CHORD_STREAK_DECAY\n#define RIGHT_MIDDY_CHORD_STREAK_DECAY MIDDY_CHORD_STREAK_DECAY\n#endif\n#ifndef MIDDY_REPEAT_DECAY\n#define MIDDY_REPEAT_DECAY HOMEY_REPEAT_DECAY\n#endif\n#ifndef MIDDY_CHORD_REPEAT_DECAY\n#define MIDDY_CHORD_REPEAT_DECAY CHORD_REPEAT_DECAY\n#endif\n#ifndef LEFT_MIDDY_CHORD_REPEAT_DECAY\n#define LEFT_MIDDY_CHORD_REPEAT_DECAY MIDDY_CHORD_REPEAT_DECAY\n#endif\n#ifndef RIGHT_MIDDY_CHORD_REPEAT_DECAY\n#define RIGHT_MIDDY_CHORD_REPEAT_DECAY MIDDY_CHORD_REPEAT_DECAY\n#endif\n#ifndef INDEX_HOLDING_TYPE\n#define INDEX_HOLDING_TYPE HOMEY_HOLDING_TYPE\n#endif\n#ifndef INDEX_CHORD_HOLDING_TYPE\n#define INDEX_CHORD_HOLDING_TYPE CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_INDEX_CHORD_HOLDING_TYPE\n#define LEFT_INDEX_CHORD_HOLDING_TYPE INDEX_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_INDEX_CHORD_HOLDING_TYPE\n#define RIGHT_INDEX_CHORD_HOLDING_TYPE INDEX_CHORD_HOLDING_TYPE\n#endif\n#ifndef INDEX_HOLDING_TIME\n#define INDEX_HOLDING_TIME HOMEY_HOLDING_TIME\n#endif\n#ifndef INDEX_CHORD_HOLDING_TIME\n#define INDEX_CHORD_HOLDING_TIME CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_INDEX_CHORD_HOLDING_TIME\n#define LEFT_INDEX_CHORD_HOLDING_TIME INDEX_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_INDEX_CHORD_HOLDING_TIME\n#define RIGHT_INDEX_CHORD_HOLDING_TIME INDEX_CHORD_HOLDING_TIME\n#endif\n#ifndef INDEX_STREAK_DECAY\n#define INDEX_STREAK_DECAY HOMEY_STREAK_DECAY\n#endif\n#ifndef INDEX_CHORD_STREAK_DECAY\n#define INDEX_CHORD_STREAK_DECAY CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_INDEX_CHORD_STREAK_DECAY\n#define LEFT_INDEX_CHORD_STREAK_DECAY INDEX_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_INDEX_CHORD_STREAK_DECAY\n#define RIGHT_INDEX_CHORD_STREAK_DECAY INDEX_CHORD_STREAK_DECAY\n#endif\n#ifndef INDEX_REPEAT_DECAY\n#define INDEX_REPEAT_DECAY HOMEY_REPEAT_DECAY\n#endif\n#ifndef INDEX_CHORD_REPEAT_DECAY\n#define INDEX_CHORD_REPEAT_DECAY CHORD_REPEAT_DECAY\n#endif\n#ifndef LEFT_INDEX_CHORD_REPEAT_DECAY\n#define LEFT_INDEX_CHORD_REPEAT_DECAY INDEX_CHORD_REPEAT_DECAY\n#endif\n#ifndef RIGHT_INDEX_CHORD_REPEAT_DECAY\n#define RIGHT_INDEX_CHORD_REPEAT_DECAY INDEX_CHORD_REPEAT_DECAY\n#endif\n#ifndef LEFT_PINKY_HOLDING_TYPE\n#define LEFT_PINKY_HOLDING_TYPE PINKY_HOLDING_TYPE\n#endif\n#ifndef LEFT_PINKY_HOLDING_TIME\n#define LEFT_PINKY_HOLDING_TIME PINKY_HOLDING_TIME\n#endif\n#ifndef LEFT_PINKY_STREAK_DECAY\n#define LEFT_PINKY_STREAK_DECAY PINKY_STREAK_DECAY\n#endif\n#ifndef LEFT_PINKY_REPEAT_DECAY\n#define LEFT_PINKY_REPEAT_DECAY PINKY_REPEAT_DECAY\n#endif\n left_pinky: homey_left_pinky {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_pinky_bilateral: homey_left_pinky_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&left_pinky_hold>, <&kp>;\n };\n left_pinky_hold: homey_left_pinky_hold {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_LeftPinky\n , <¯o_press &mo LAYER_LeftPinky>\n #endif\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_LeftPinky\n , <¯o_release &mo LAYER_LeftPinky>\n #endif\n ;\n };\n left_pinky_tap: homey_left_pinky_tap {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_release\n &kp LSFT &kp RSFT\n &kp LALT &kp RALT\n &kp LCTL &kp RCTL\n &kp LGUI &kp RGUI>\n , <¯o_tap &kp LEFT_PINKY_KEY>\n , <¯o_param_1to1>\n , <¯o_tap &kp MACRO_PLACEHOLDER>\n ;\n };\n #define LeftPinky(key, layer_index) LeftPinky_unroll(layer_index) (key)\n #define LeftPinky_unroll(layer_index) LeftPinky_concat(LeftPinky_layer, layer_index)\n #define LeftPinky_concat(prefix, layer_index) prefix ## layer_index\n #ifdef ENFORCE_BILATERAL\n #define left_pinky_layer0_variant left_pinky_bilateral\n #else\n #define left_pinky_layer0_variant left_pinky\n #endif\n #define LeftPinky_layer0(key) left_pinky_layer0_variant LEFT_PINKY_MOD key\n #define LeftPinky_layer1(key) left_pinky LEFT_PINKY_MOD key\n #define LeftPinky_layer2(key) left_pinky LEFT_PINKY_MOD key\n #define LeftPinky_layer3(key) left_pinky LEFT_PINKY_MOD key\n #define LeftPinky_layer4(key) left_pinky LEFT_PINKY_MOD key\n #define LeftPinky_layer5(key) left_pinky LEFT_PINKY_MOD key\n #define LeftPinky_layer6(key) left_pinky LEFT_PINKY_MOD key\n #define LeftPinky_layer7(key) left_pinky LEFT_PINKY_MOD key\n #define LeftPinky_layer8(key) left_pinky LEFT_PINKY_MOD key\n#ifndef RIGHT_PINKY_HOLDING_TYPE\n#define RIGHT_PINKY_HOLDING_TYPE PINKY_HOLDING_TYPE\n#endif\n#ifndef RIGHT_PINKY_HOLDING_TIME\n#define RIGHT_PINKY_HOLDING_TIME PINKY_HOLDING_TIME\n#endif\n#ifndef RIGHT_PINKY_STREAK_DECAY\n#define RIGHT_PINKY_STREAK_DECAY PINKY_STREAK_DECAY\n#endif\n#ifndef RIGHT_PINKY_REPEAT_DECAY\n#define RIGHT_PINKY_REPEAT_DECAY PINKY_REPEAT_DECAY\n#endif\n right_pinky: homey_right_pinky {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_pinky_bilateral: homey_right_pinky_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&right_pinky_hold>, <&kp>;\n };\n right_pinky_hold: homey_right_pinky_hold {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_RightPinky\n , <¯o_press &mo LAYER_RightPinky>\n #endif\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_RightPinky\n , <¯o_release &mo LAYER_RightPinky>\n #endif\n ;\n };\n right_pinky_tap: homey_right_pinky_tap {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_release\n &kp LSFT &kp RSFT\n &kp LALT &kp RALT\n &kp LCTL &kp RCTL\n &kp LGUI &kp RGUI>\n , <¯o_tap &kp RIGHT_PINKY_KEY>\n , <¯o_param_1to1>\n , <¯o_tap &kp MACRO_PLACEHOLDER>\n ;\n };\n #define RightPinky(key, layer_index) RightPinky_unroll(layer_index) (key)\n #define RightPinky_unroll(layer_index) RightPinky_concat(RightPinky_layer, layer_index)\n #define RightPinky_concat(prefix, layer_index) prefix ## layer_index\n #ifdef ENFORCE_BILATERAL\n #define right_pinky_layer0_variant right_pinky_bilateral\n #else\n #define right_pinky_layer0_variant right_pinky\n #endif\n #define RightPinky_layer0(key) right_pinky_layer0_variant RIGHT_PINKY_MOD key\n #define RightPinky_layer1(key) right_pinky RIGHT_PINKY_MOD key\n #define RightPinky_layer2(key) right_pinky RIGHT_PINKY_MOD key\n #define RightPinky_layer3(key) right_pinky RIGHT_PINKY_MOD key\n #define RightPinky_layer4(key) right_pinky RIGHT_PINKY_MOD key\n #define RightPinky_layer5(key) right_pinky RIGHT_PINKY_MOD key\n #define RightPinky_layer6(key) right_pinky RIGHT_PINKY_MOD key\n #define RightPinky_layer7(key) right_pinky RIGHT_PINKY_MOD key\n #define RightPinky_layer8(key) right_pinky RIGHT_PINKY_MOD key\n#ifndef LEFT_RING1_HOLDING_TYPE\n#define LEFT_RING1_HOLDING_TYPE RING1_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING1_HOLDING_TIME\n#define LEFT_RING1_HOLDING_TIME RING1_HOLDING_TIME\n#endif\n#ifndef LEFT_RING1_STREAK_DECAY\n#define LEFT_RING1_STREAK_DECAY RING1_STREAK_DECAY\n#endif\n#ifndef LEFT_RING1_REPEAT_DECAY\n#define LEFT_RING1_REPEAT_DECAY RING1_REPEAT_DECAY\n#endif\n left_ring1: homey_left_ring1 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_ring1_bilateral: homey_left_ring1_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&left_ring1_hold>, <&kp>;\n };\n left_ring1_hold: homey_left_ring1_hold {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_LeftRing1\n , <¯o_press &mo LAYER_LeftRing1>\n #endif\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_LeftRing1\n , <¯o_release &mo LAYER_LeftRing1>\n #endif\n ;\n };\n left_ring1_tap: homey_left_ring1_tap {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_release\n &kp LSFT &kp RSFT\n &kp LALT &kp RALT\n &kp LCTL &kp RCTL\n &kp LGUI &kp RGUI>\n , <¯o_tap &kp LEFT_RING1_KEY>\n , <¯o_param_1to1>\n , <¯o_tap &kp MACRO_PLACEHOLDER>\n ;\n };\n #define LeftRing1(key, layer_index) LeftRing1_unroll(layer_index) (key)\n #define LeftRing1_unroll(layer_index) LeftRing1_concat(LeftRing1_layer, layer_index)\n #define LeftRing1_concat(prefix, layer_index) prefix ## layer_index\n #ifdef ENFORCE_BILATERAL\n #define left_ring1_layer0_variant left_ring1_bilateral\n #else\n #define left_ring1_layer0_variant left_ring1\n #endif\n #define LeftRing1_layer0(key) left_ring1_layer0_variant LEFT_RING1_MOD key\n #define LeftRing1_layer1(key) left_ring1 LEFT_RING1_MOD key\n #define LeftRing1_layer2(key) left_ring1 LEFT_RING1_MOD key\n #define LeftRing1_layer3(key) left_ring1 LEFT_RING1_MOD key\n #define LeftRing1_layer4(key) left_ring1 LEFT_RING1_MOD key\n #define LeftRing1_layer5(key) left_ring1 LEFT_RING1_MOD key\n #define LeftRing1_layer6(key) left_ring1 LEFT_RING1_MOD key\n #define LeftRing1_layer7(key) left_ring1 LEFT_RING1_MOD key\n #define LeftRing1_layer8(key) left_ring1 LEFT_RING1_MOD key\n#ifndef RIGHT_RING1_HOLDING_TYPE\n#define RIGHT_RING1_HOLDING_TYPE RING1_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING1_HOLDING_TIME\n#define RIGHT_RING1_HOLDING_TIME RING1_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING1_STREAK_DECAY\n#define RIGHT_RING1_STREAK_DECAY RING1_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING1_REPEAT_DECAY\n#define RIGHT_RING1_REPEAT_DECAY RING1_REPEAT_DECAY\n#endif\n right_ring1: homey_right_ring1 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_ring1_bilateral: homey_right_ring1_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&right_ring1_hold>, <&kp>;\n };\n right_ring1_hold: homey_right_ring1_hold {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_RightRing1\n , <¯o_press &mo LAYER_RightRing1>\n #endif\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_RightRing1\n , <¯o_release &mo LAYER_RightRing1>\n #endif\n ;\n };\n right_ring1_tap: homey_right_ring1_tap {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_release\n &kp LSFT &kp RSFT\n &kp LALT &kp RALT\n &kp LCTL &kp RCTL\n &kp LGUI &kp RGUI>\n , <¯o_tap &kp RIGHT_RING1_KEY>\n , <¯o_param_1to1>\n , <¯o_tap &kp MACRO_PLACEHOLDER>\n ;\n };\n #define RightRing1(key, layer_index) RightRing1_unroll(layer_index) (key)\n #define RightRing1_unroll(layer_index) RightRing1_concat(RightRing1_layer, layer_index)\n #define RightRing1_concat(prefix, layer_index) prefix ## layer_index\n #ifdef ENFORCE_BILATERAL\n #define right_ring1_layer0_variant right_ring1_bilateral\n #else\n #define right_ring1_layer0_variant right_ring1\n #endif\n #define RightRing1_layer0(key) right_ring1_layer0_variant RIGHT_RING1_MOD key\n #define RightRing1_layer1(key) right_ring1 RIGHT_RING1_MOD key\n #define RightRing1_layer2(key) right_ring1 RIGHT_RING1_MOD key\n #define RightRing1_layer3(key) right_ring1 RIGHT_RING1_MOD key\n #define RightRing1_layer4(key) right_ring1 RIGHT_RING1_MOD key\n #define RightRing1_layer5(key) right_ring1 RIGHT_RING1_MOD key\n #define RightRing1_layer6(key) right_ring1 RIGHT_RING1_MOD key\n #define RightRing1_layer7(key) right_ring1 RIGHT_RING1_MOD key\n #define RightRing1_layer8(key) right_ring1 RIGHT_RING1_MOD key\n#ifndef LEFT_RING2_HOLDING_TYPE\n#define LEFT_RING2_HOLDING_TYPE RING2_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING2_HOLDING_TIME\n#define LEFT_RING2_HOLDING_TIME RING2_HOLDING_TIME\n#endif\n#ifndef LEFT_RING2_STREAK_DECAY\n#define LEFT_RING2_STREAK_DECAY RING2_STREAK_DECAY\n#endif\n#ifndef LEFT_RING2_REPEAT_DECAY\n#define LEFT_RING2_REPEAT_DECAY RING2_REPEAT_DECAY\n#endif\n left_ring2: homey_left_ring2 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_ring2_bilateral: homey_left_ring2_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&left_ring2_hold>, <&kp>;\n };\n left_ring2_hold: homey_left_ring2_hold {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_LeftRing2\n , <¯o_press &mo LAYER_LeftRing2>\n #endif\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_LeftRing2\n , <¯o_release &mo LAYER_LeftRing2>\n #endif\n ;\n };\n left_ring2_tap: homey_left_ring2_tap {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_release\n &kp LSFT &kp RSFT\n &kp LALT &kp RALT\n &kp LCTL &kp RCTL\n &kp LGUI &kp RGUI>\n , <¯o_tap &kp LEFT_RING2_KEY>\n , <¯o_param_1to1>\n , <¯o_tap &kp MACRO_PLACEHOLDER>\n ;\n };\n #define LeftRing2(key, layer_index) LeftRing2_unroll(layer_index) (key)\n #define LeftRing2_unroll(layer_index) LeftRing2_concat(LeftRing2_layer, layer_index)\n #define LeftRing2_concat(prefix, layer_index) prefix ## layer_index\n #ifdef ENFORCE_BILATERAL\n #define left_ring2_layer0_variant left_ring2_bilateral\n #else\n #define left_ring2_layer0_variant left_ring2\n #endif\n #define LeftRing2_layer0(key) left_ring2_layer0_variant LEFT_RING2_MOD key\n #define LeftRing2_layer1(key) left_ring2 LEFT_RING2_MOD key\n #define LeftRing2_layer2(key) left_ring2 LEFT_RING2_MOD key\n #define LeftRing2_layer3(key) left_ring2 LEFT_RING2_MOD key\n #define LeftRing2_layer4(key) left_ring2 LEFT_RING2_MOD key\n #define LeftRing2_layer5(key) left_ring2 LEFT_RING2_MOD key\n #define LeftRing2_layer6(key) left_ring2 LEFT_RING2_MOD key\n #define LeftRing2_layer7(key) left_ring2 LEFT_RING2_MOD key\n #define LeftRing2_layer8(key) left_ring2 LEFT_RING2_MOD key\n#ifndef RIGHT_RING2_HOLDING_TYPE\n#define RIGHT_RING2_HOLDING_TYPE RING2_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING2_HOLDING_TIME\n#define RIGHT_RING2_HOLDING_TIME RING2_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING2_STREAK_DECAY\n#define RIGHT_RING2_STREAK_DECAY RING2_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING2_REPEAT_DECAY\n#define RIGHT_RING2_REPEAT_DECAY RING2_REPEAT_DECAY\n#endif\n right_ring2: homey_right_ring2 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_ring2_bilateral: homey_right_ring2_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&right_ring2_hold>, <&kp>;\n };\n right_ring2_hold: homey_right_ring2_hold {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_RightRing2\n , <¯o_press &mo LAYER_RightRing2>\n #endif\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_RightRing2\n , <¯o_release &mo LAYER_RightRing2>\n #endif\n ;\n };\n right_ring2_tap: homey_right_ring2_tap {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_release\n &kp LSFT &kp RSFT\n &kp LALT &kp RALT\n &kp LCTL &kp RCTL\n &kp LGUI &kp RGUI>\n , <¯o_tap &kp RIGHT_RING2_KEY>\n , <¯o_param_1to1>\n , <¯o_tap &kp MACRO_PLACEHOLDER>\n ;\n };\n #define RightRing2(key, layer_index) RightRing2_unroll(layer_index) (key)\n #define RightRing2_unroll(layer_index) RightRing2_concat(RightRing2_layer, layer_index)\n #define RightRing2_concat(prefix, layer_index) prefix ## layer_index\n #ifdef ENFORCE_BILATERAL\n #define right_ring2_layer0_variant right_ring2_bilateral\n #else\n #define right_ring2_layer0_variant right_ring2\n #endif\n #define RightRing2_layer0(key) right_ring2_layer0_variant RIGHT_RING2_MOD key\n #define RightRing2_layer1(key) right_ring2 RIGHT_RING2_MOD key\n #define RightRing2_layer2(key) right_ring2 RIGHT_RING2_MOD key\n #define RightRing2_layer3(key) right_ring2 RIGHT_RING2_MOD key\n #define RightRing2_layer4(key) right_ring2 RIGHT_RING2_MOD key\n #define RightRing2_layer5(key) right_ring2 RIGHT_RING2_MOD key\n #define RightRing2_layer6(key) right_ring2 RIGHT_RING2_MOD key\n #define RightRing2_layer7(key) right_ring2 RIGHT_RING2_MOD key\n #define RightRing2_layer8(key) right_ring2 RIGHT_RING2_MOD key\n#ifndef LEFT_MIDDY_HOLDING_TYPE\n#define LEFT_MIDDY_HOLDING_TYPE MIDDY_HOLDING_TYPE\n#endif\n#ifndef LEFT_MIDDY_HOLDING_TIME\n#define LEFT_MIDDY_HOLDING_TIME MIDDY_HOLDING_TIME\n#endif\n#ifndef LEFT_MIDDY_STREAK_DECAY\n#define LEFT_MIDDY_STREAK_DECAY MIDDY_STREAK_DECAY\n#endif\n#ifndef LEFT_MIDDY_REPEAT_DECAY\n#define LEFT_MIDDY_REPEAT_DECAY MIDDY_REPEAT_DECAY\n#endif\n left_middy: homey_left_middy {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_middy_bilateral: homey_left_middy_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&left_middy_hold>, <&kp>;\n };\n left_middy_hold: homey_left_middy_hold {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_LeftMiddy\n , <¯o_press &mo LAYER_LeftMiddy>\n #endif\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_LeftMiddy\n , <¯o_release &mo LAYER_LeftMiddy>\n #endif\n ;\n };\n left_middy_tap: homey_left_middy_tap {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_release\n &kp LSFT &kp RSFT\n &kp LALT &kp RALT\n &kp LCTL &kp RCTL\n &kp LGUI &kp RGUI>\n , <¯o_tap &kp LEFT_MIDDY_KEY>\n , <¯o_param_1to1>\n , <¯o_tap &kp MACRO_PLACEHOLDER>\n ;\n };\n #define LeftMiddy(key, layer_index) LeftMiddy_unroll(layer_index) (key)\n #define LeftMiddy_unroll(layer_index) LeftMiddy_concat(LeftMiddy_layer, layer_index)\n #define LeftMiddy_concat(prefix, layer_index) prefix ## layer_index\n #ifdef ENFORCE_BILATERAL\n #define left_middy_layer0_variant left_middy_bilateral\n #else\n #define left_middy_layer0_variant left_middy\n #endif\n #define LeftMiddy_layer0(key) left_middy_layer0_variant LEFT_MIDDY_MOD key\n #define LeftMiddy_layer1(key) left_middy LEFT_MIDDY_MOD key\n #define LeftMiddy_layer2(key) left_middy LEFT_MIDDY_MOD key\n #define LeftMiddy_layer3(key) left_middy LEFT_MIDDY_MOD key\n #define LeftMiddy_layer4(key) left_middy LEFT_MIDDY_MOD key\n #define LeftMiddy_layer5(key) left_middy LEFT_MIDDY_MOD key\n #define LeftMiddy_layer6(key) left_middy LEFT_MIDDY_MOD key\n #define LeftMiddy_layer7(key) left_middy LEFT_MIDDY_MOD key\n #define LeftMiddy_layer8(key) left_middy LEFT_MIDDY_MOD key\n#ifndef RIGHT_MIDDY_HOLDING_TYPE\n#define RIGHT_MIDDY_HOLDING_TYPE MIDDY_HOLDING_TYPE\n#endif\n#ifndef RIGHT_MIDDY_HOLDING_TIME\n#define RIGHT_MIDDY_HOLDING_TIME MIDDY_HOLDING_TIME\n#endif\n#ifndef RIGHT_MIDDY_STREAK_DECAY\n#define RIGHT_MIDDY_STREAK_DECAY MIDDY_STREAK_DECAY\n#endif\n#ifndef RIGHT_MIDDY_REPEAT_DECAY\n#define RIGHT_MIDDY_REPEAT_DECAY MIDDY_REPEAT_DECAY\n#endif\n right_middy: homey_right_middy {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_middy_bilateral: homey_right_middy_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&right_middy_hold>, <&kp>;\n };\n right_middy_hold: homey_right_middy_hold {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_RightMiddy\n , <¯o_press &mo LAYER_RightMiddy>\n #endif\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_RightMiddy\n , <¯o_release &mo LAYER_RightMiddy>\n #endif\n ;\n };\n right_middy_tap: homey_right_middy_tap {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_release\n &kp LSFT &kp RSFT\n &kp LALT &kp RALT\n &kp LCTL &kp RCTL\n &kp LGUI &kp RGUI>\n , <¯o_tap &kp RIGHT_MIDDY_KEY>\n , <¯o_param_1to1>\n , <¯o_tap &kp MACRO_PLACEHOLDER>\n ;\n };\n #define RightMiddy(key, layer_index) RightMiddy_unroll(layer_index) (key)\n #define RightMiddy_unroll(layer_index) RightMiddy_concat(RightMiddy_layer, layer_index)\n #define RightMiddy_concat(prefix, layer_index) prefix ## layer_index\n #ifdef ENFORCE_BILATERAL\n #define right_middy_layer0_variant right_middy_bilateral\n #else\n #define right_middy_layer0_variant right_middy\n #endif\n #define RightMiddy_layer0(key) right_middy_layer0_variant RIGHT_MIDDY_MOD key\n #define RightMiddy_layer1(key) right_middy RIGHT_MIDDY_MOD key\n #define RightMiddy_layer2(key) right_middy RIGHT_MIDDY_MOD key\n #define RightMiddy_layer3(key) right_middy RIGHT_MIDDY_MOD key\n #define RightMiddy_layer4(key) right_middy RIGHT_MIDDY_MOD key\n #define RightMiddy_layer5(key) right_middy RIGHT_MIDDY_MOD key\n #define RightMiddy_layer6(key) right_middy RIGHT_MIDDY_MOD key\n #define RightMiddy_layer7(key) right_middy RIGHT_MIDDY_MOD key\n #define RightMiddy_layer8(key) right_middy RIGHT_MIDDY_MOD key\n#ifndef LEFT_INDEX_HOLDING_TYPE\n#define LEFT_INDEX_HOLDING_TYPE INDEX_HOLDING_TYPE\n#endif\n#ifndef LEFT_INDEX_HOLDING_TIME\n#define LEFT_INDEX_HOLDING_TIME INDEX_HOLDING_TIME\n#endif\n#ifndef LEFT_INDEX_STREAK_DECAY\n#define LEFT_INDEX_STREAK_DECAY INDEX_STREAK_DECAY\n#endif\n#ifndef LEFT_INDEX_REPEAT_DECAY\n#define LEFT_INDEX_REPEAT_DECAY INDEX_REPEAT_DECAY\n#endif\n left_index: homey_left_index {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_index_bilateral: homey_left_index_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&left_index_hold>, <&kp>;\n };\n left_index_hold: homey_left_index_hold {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_LeftIndex\n , <¯o_press &mo LAYER_LeftIndex>\n #endif\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_LeftIndex\n , <¯o_release &mo LAYER_LeftIndex>\n #endif\n ;\n };\n left_index_tap: homey_left_index_tap {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_release\n &kp LSFT &kp RSFT\n &kp LALT &kp RALT\n &kp LCTL &kp RCTL\n &kp LGUI &kp RGUI>\n , <¯o_tap &kp LEFT_INDEX_KEY>\n , <¯o_param_1to1>\n , <¯o_tap &kp MACRO_PLACEHOLDER>\n ;\n };\n #define LeftIndex(key, layer_index) LeftIndex_unroll(layer_index) (key)\n #define LeftIndex_unroll(layer_index) LeftIndex_concat(LeftIndex_layer, layer_index)\n #define LeftIndex_concat(prefix, layer_index) prefix ## layer_index\n #ifdef ENFORCE_BILATERAL\n #define left_index_layer0_variant left_index_bilateral\n #else\n #define left_index_layer0_variant left_index\n #endif\n #define LeftIndex_layer0(key) left_index_layer0_variant LEFT_INDEX_MOD key\n #define LeftIndex_layer1(key) left_index LEFT_INDEX_MOD key\n #define LeftIndex_layer2(key) left_index LEFT_INDEX_MOD key\n #define LeftIndex_layer3(key) left_index LEFT_INDEX_MOD key\n #define LeftIndex_layer4(key) left_index LEFT_INDEX_MOD key\n #define LeftIndex_layer5(key) left_index LEFT_INDEX_MOD key\n #define LeftIndex_layer6(key) left_index LEFT_INDEX_MOD key\n #define LeftIndex_layer7(key) left_index LEFT_INDEX_MOD key\n #define LeftIndex_layer8(key) left_index LEFT_INDEX_MOD key\n#ifndef RIGHT_INDEX_HOLDING_TYPE\n#define RIGHT_INDEX_HOLDING_TYPE INDEX_HOLDING_TYPE\n#endif\n#ifndef RIGHT_INDEX_HOLDING_TIME\n#define RIGHT_INDEX_HOLDING_TIME INDEX_HOLDING_TIME\n#endif\n#ifndef RIGHT_INDEX_STREAK_DECAY\n#define RIGHT_INDEX_STREAK_DECAY INDEX_STREAK_DECAY\n#endif\n#ifndef RIGHT_INDEX_REPEAT_DECAY\n#define RIGHT_INDEX_REPEAT_DECAY INDEX_REPEAT_DECAY\n#endif\n right_index: homey_right_index {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_index_bilateral: homey_right_index_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&right_index_hold>, <&kp>;\n };\n right_index_hold: homey_right_index_hold {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_RightIndex\n , <¯o_press &mo LAYER_RightIndex>\n #endif\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n #ifdef LAYER_RightIndex\n , <¯o_release &mo LAYER_RightIndex>\n #endif\n ;\n };\n right_index_tap: homey_right_index_tap {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_release\n &kp LSFT &kp RSFT\n &kp LALT &kp RALT\n &kp LCTL &kp RCTL\n &kp LGUI &kp RGUI>\n , <¯o_tap &kp RIGHT_INDEX_KEY>\n , <¯o_param_1to1>\n , <¯o_tap &kp MACRO_PLACEHOLDER>\n ;\n };\n #define RightIndex(key, layer_index) RightIndex_unroll(layer_index) (key)\n #define RightIndex_unroll(layer_index) RightIndex_concat(RightIndex_layer, layer_index)\n #define RightIndex_concat(prefix, layer_index) prefix ## layer_index\n #ifdef ENFORCE_BILATERAL\n #define right_index_layer0_variant right_index_bilateral\n #else\n #define right_index_layer0_variant right_index\n #endif\n #define RightIndex_layer0(key) right_index_layer0_variant RIGHT_INDEX_MOD key\n #define RightIndex_layer1(key) right_index RIGHT_INDEX_MOD key\n #define RightIndex_layer2(key) right_index RIGHT_INDEX_MOD key\n #define RightIndex_layer3(key) right_index RIGHT_INDEX_MOD key\n #define RightIndex_layer4(key) right_index RIGHT_INDEX_MOD key\n #define RightIndex_layer5(key) right_index RIGHT_INDEX_MOD key\n #define RightIndex_layer6(key) right_index RIGHT_INDEX_MOD key\n #define RightIndex_layer7(key) right_index RIGHT_INDEX_MOD key\n #define RightIndex_layer8(key) right_index RIGHT_INDEX_MOD key\n#ifndef LEFT_RING1_PINKY_HOLDING_TYPE\n#define LEFT_RING1_PINKY_HOLDING_TYPE LEFT_RING1_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING1_PINKY_HOLDING_TIME\n#define LEFT_RING1_PINKY_HOLDING_TIME LEFT_RING1_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_RING1_PINKY_STREAK_DECAY\n#define LEFT_RING1_PINKY_STREAK_DECAY LEFT_RING1_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_RING1_PINKY_REPEAT_DECAY\n#define LEFT_RING1_PINKY_REPEAT_DECAY LEFT_RING1_CHORD_REPEAT_DECAY\n#endif\n left_ring1_pinky: homey_left_ring1_pinky {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_ring1_pinky_bilateral: homey_left_ring1_pinky_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_ring1_tap>;\n };\n #define LeftRing1Pinky left_ring1_pinky_bilateral LEFT_PINKY_MOD LEFT_PINKY_KEY\n#ifndef LEFT_RING2_PINKY_HOLDING_TYPE\n#define LEFT_RING2_PINKY_HOLDING_TYPE LEFT_RING2_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING2_PINKY_HOLDING_TIME\n#define LEFT_RING2_PINKY_HOLDING_TIME LEFT_RING2_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_RING2_PINKY_STREAK_DECAY\n#define LEFT_RING2_PINKY_STREAK_DECAY LEFT_RING2_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_RING2_PINKY_REPEAT_DECAY\n#define LEFT_RING2_PINKY_REPEAT_DECAY LEFT_RING2_CHORD_REPEAT_DECAY\n#endif\n left_ring2_pinky: homey_left_ring2_pinky {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_ring2_pinky_bilateral: homey_left_ring2_pinky_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_ring2_tap>;\n };\n #define LeftRing2Pinky left_ring2_pinky_bilateral LEFT_PINKY_MOD LEFT_PINKY_KEY\n#ifndef LEFT_MIDDY_PINKY_HOLDING_TYPE\n#define LEFT_MIDDY_PINKY_HOLDING_TYPE LEFT_MIDDY_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_MIDDY_PINKY_HOLDING_TIME\n#define LEFT_MIDDY_PINKY_HOLDING_TIME LEFT_MIDDY_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_MIDDY_PINKY_STREAK_DECAY\n#define LEFT_MIDDY_PINKY_STREAK_DECAY LEFT_MIDDY_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_MIDDY_PINKY_REPEAT_DECAY\n#define LEFT_MIDDY_PINKY_REPEAT_DECAY LEFT_MIDDY_CHORD_REPEAT_DECAY\n#endif\n left_middy_pinky: homey_left_middy_pinky {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_middy_pinky_bilateral: homey_left_middy_pinky_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_middy_tap>;\n };\n #define LeftMiddyPinky left_middy_pinky_bilateral LEFT_PINKY_MOD LEFT_PINKY_KEY\n#ifndef LEFT_INDEX_PINKY_HOLDING_TYPE\n#define LEFT_INDEX_PINKY_HOLDING_TYPE LEFT_INDEX_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_INDEX_PINKY_HOLDING_TIME\n#define LEFT_INDEX_PINKY_HOLDING_TIME LEFT_INDEX_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_INDEX_PINKY_STREAK_DECAY\n#define LEFT_INDEX_PINKY_STREAK_DECAY LEFT_INDEX_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_INDEX_PINKY_REPEAT_DECAY\n#define LEFT_INDEX_PINKY_REPEAT_DECAY LEFT_INDEX_CHORD_REPEAT_DECAY\n#endif\n left_index_pinky: homey_left_index_pinky {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_index_pinky_bilateral: homey_left_index_pinky_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_index_tap>;\n };\n #define LeftIndexPinky left_index_pinky_bilateral LEFT_PINKY_MOD LEFT_PINKY_KEY\n#ifndef RIGHT_RING1_PINKY_HOLDING_TYPE\n#define RIGHT_RING1_PINKY_HOLDING_TYPE RIGHT_RING1_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING1_PINKY_HOLDING_TIME\n#define RIGHT_RING1_PINKY_HOLDING_TIME RIGHT_RING1_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING1_PINKY_STREAK_DECAY\n#define RIGHT_RING1_PINKY_STREAK_DECAY RIGHT_RING1_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING1_PINKY_REPEAT_DECAY\n#define RIGHT_RING1_PINKY_REPEAT_DECAY RIGHT_RING1_CHORD_REPEAT_DECAY\n#endif\n right_ring1_pinky: homey_right_ring1_pinky {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_ring1_pinky_bilateral: homey_right_ring1_pinky_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_ring1_tap>;\n };\n #define RightRing1Pinky right_ring1_pinky_bilateral RIGHT_PINKY_MOD RIGHT_PINKY_KEY\n#ifndef RIGHT_RING2_PINKY_HOLDING_TYPE\n#define RIGHT_RING2_PINKY_HOLDING_TYPE RIGHT_RING2_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING2_PINKY_HOLDING_TIME\n#define RIGHT_RING2_PINKY_HOLDING_TIME RIGHT_RING2_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING2_PINKY_STREAK_DECAY\n#define RIGHT_RING2_PINKY_STREAK_DECAY RIGHT_RING2_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING2_PINKY_REPEAT_DECAY\n#define RIGHT_RING2_PINKY_REPEAT_DECAY RIGHT_RING2_CHORD_REPEAT_DECAY\n#endif\n right_ring2_pinky: homey_right_ring2_pinky {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_ring2_pinky_bilateral: homey_right_ring2_pinky_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_ring2_tap>;\n };\n #define RightRing2Pinky right_ring2_pinky_bilateral RIGHT_PINKY_MOD RIGHT_PINKY_KEY\n#ifndef RIGHT_MIDDY_PINKY_HOLDING_TYPE\n#define RIGHT_MIDDY_PINKY_HOLDING_TYPE RIGHT_MIDDY_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_MIDDY_PINKY_HOLDING_TIME\n#define RIGHT_MIDDY_PINKY_HOLDING_TIME RIGHT_MIDDY_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_MIDDY_PINKY_STREAK_DECAY\n#define RIGHT_MIDDY_PINKY_STREAK_DECAY RIGHT_MIDDY_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_MIDDY_PINKY_REPEAT_DECAY\n#define RIGHT_MIDDY_PINKY_REPEAT_DECAY RIGHT_MIDDY_CHORD_REPEAT_DECAY\n#endif\n right_middy_pinky: homey_right_middy_pinky {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_middy_pinky_bilateral: homey_right_middy_pinky_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_middy_tap>;\n };\n #define RightMiddyPinky right_middy_pinky_bilateral RIGHT_PINKY_MOD RIGHT_PINKY_KEY\n#ifndef RIGHT_INDEX_PINKY_HOLDING_TYPE\n#define RIGHT_INDEX_PINKY_HOLDING_TYPE RIGHT_INDEX_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_INDEX_PINKY_HOLDING_TIME\n#define RIGHT_INDEX_PINKY_HOLDING_TIME RIGHT_INDEX_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_INDEX_PINKY_STREAK_DECAY\n#define RIGHT_INDEX_PINKY_STREAK_DECAY RIGHT_INDEX_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_INDEX_PINKY_REPEAT_DECAY\n#define RIGHT_INDEX_PINKY_REPEAT_DECAY RIGHT_INDEX_CHORD_REPEAT_DECAY\n#endif\n right_index_pinky: homey_right_index_pinky {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_index_pinky_bilateral: homey_right_index_pinky_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_index_tap>;\n };\n #define RightIndexPinky right_index_pinky_bilateral RIGHT_PINKY_MOD RIGHT_PINKY_KEY\n#ifndef LEFT_PINKY_RING1_HOLDING_TYPE\n#define LEFT_PINKY_RING1_HOLDING_TYPE LEFT_PINKY_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_PINKY_RING1_HOLDING_TIME\n#define LEFT_PINKY_RING1_HOLDING_TIME LEFT_PINKY_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_PINKY_RING1_STREAK_DECAY\n#define LEFT_PINKY_RING1_STREAK_DECAY LEFT_PINKY_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_PINKY_RING1_REPEAT_DECAY\n#define LEFT_PINKY_RING1_REPEAT_DECAY LEFT_PINKY_CHORD_REPEAT_DECAY\n#endif\n left_pinky_ring1: homey_left_pinky_ring1 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_pinky_ring1_bilateral: homey_left_pinky_ring1_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_pinky_tap>;\n };\n #define LeftPinkyRing1 left_pinky_ring1_bilateral LEFT_RING1_MOD LEFT_RING1_KEY\n#ifndef LEFT_RING2_RING1_HOLDING_TYPE\n#define LEFT_RING2_RING1_HOLDING_TYPE LEFT_RING2_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING2_RING1_HOLDING_TIME\n#define LEFT_RING2_RING1_HOLDING_TIME LEFT_RING2_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_RING2_RING1_STREAK_DECAY\n#define LEFT_RING2_RING1_STREAK_DECAY LEFT_RING2_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_RING2_RING1_REPEAT_DECAY\n#define LEFT_RING2_RING1_REPEAT_DECAY LEFT_RING2_CHORD_REPEAT_DECAY\n#endif\n left_ring2_ring1: homey_left_ring2_ring1 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_ring2_ring1_bilateral: homey_left_ring2_ring1_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_ring2_tap>;\n };\n #define LeftRing2Ring1 left_ring2_ring1_bilateral LEFT_RING1_MOD LEFT_RING1_KEY\n#ifndef LEFT_MIDDY_RING1_HOLDING_TYPE\n#define LEFT_MIDDY_RING1_HOLDING_TYPE LEFT_MIDDY_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_MIDDY_RING1_HOLDING_TIME\n#define LEFT_MIDDY_RING1_HOLDING_TIME LEFT_MIDDY_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_MIDDY_RING1_STREAK_DECAY\n#define LEFT_MIDDY_RING1_STREAK_DECAY LEFT_MIDDY_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_MIDDY_RING1_REPEAT_DECAY\n#define LEFT_MIDDY_RING1_REPEAT_DECAY LEFT_MIDDY_CHORD_REPEAT_DECAY\n#endif\n left_middy_ring1: homey_left_middy_ring1 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_middy_ring1_bilateral: homey_left_middy_ring1_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_middy_tap>;\n };\n #define LeftMiddyRing1 left_middy_ring1_bilateral LEFT_RING1_MOD LEFT_RING1_KEY\n#ifndef LEFT_INDEX_RING1_HOLDING_TYPE\n#define LEFT_INDEX_RING1_HOLDING_TYPE LEFT_INDEX_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_INDEX_RING1_HOLDING_TIME\n#define LEFT_INDEX_RING1_HOLDING_TIME LEFT_INDEX_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_INDEX_RING1_STREAK_DECAY\n#define LEFT_INDEX_RING1_STREAK_DECAY LEFT_INDEX_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_INDEX_RING1_REPEAT_DECAY\n#define LEFT_INDEX_RING1_REPEAT_DECAY LEFT_INDEX_CHORD_REPEAT_DECAY\n#endif\n left_index_ring1: homey_left_index_ring1 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_index_ring1_bilateral: homey_left_index_ring1_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_index_tap>;\n };\n #define LeftIndexRing1 left_index_ring1_bilateral LEFT_RING1_MOD LEFT_RING1_KEY\n#ifndef RIGHT_PINKY_RING1_HOLDING_TYPE\n#define RIGHT_PINKY_RING1_HOLDING_TYPE RIGHT_PINKY_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_PINKY_RING1_HOLDING_TIME\n#define RIGHT_PINKY_RING1_HOLDING_TIME RIGHT_PINKY_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_PINKY_RING1_STREAK_DECAY\n#define RIGHT_PINKY_RING1_STREAK_DECAY RIGHT_PINKY_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_PINKY_RING1_REPEAT_DECAY\n#define RIGHT_PINKY_RING1_REPEAT_DECAY RIGHT_PINKY_CHORD_REPEAT_DECAY\n#endif\n right_pinky_ring1: homey_right_pinky_ring1 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_pinky_ring1_bilateral: homey_right_pinky_ring1_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_pinky_tap>;\n };\n #define RightPinkyRing1 right_pinky_ring1_bilateral RIGHT_RING1_MOD RIGHT_RING1_KEY\n#ifndef RIGHT_RING2_RING1_HOLDING_TYPE\n#define RIGHT_RING2_RING1_HOLDING_TYPE RIGHT_RING2_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING2_RING1_HOLDING_TIME\n#define RIGHT_RING2_RING1_HOLDING_TIME RIGHT_RING2_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING2_RING1_STREAK_DECAY\n#define RIGHT_RING2_RING1_STREAK_DECAY RIGHT_RING2_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING2_RING1_REPEAT_DECAY\n#define RIGHT_RING2_RING1_REPEAT_DECAY RIGHT_RING2_CHORD_REPEAT_DECAY\n#endif\n right_ring2_ring1: homey_right_ring2_ring1 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_ring2_ring1_bilateral: homey_right_ring2_ring1_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_ring2_tap>;\n };\n #define RightRing2Ring1 right_ring2_ring1_bilateral RIGHT_RING1_MOD RIGHT_RING1_KEY\n#ifndef RIGHT_MIDDY_RING1_HOLDING_TYPE\n#define RIGHT_MIDDY_RING1_HOLDING_TYPE RIGHT_MIDDY_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_MIDDY_RING1_HOLDING_TIME\n#define RIGHT_MIDDY_RING1_HOLDING_TIME RIGHT_MIDDY_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_MIDDY_RING1_STREAK_DECAY\n#define RIGHT_MIDDY_RING1_STREAK_DECAY RIGHT_MIDDY_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_MIDDY_RING1_REPEAT_DECAY\n#define RIGHT_MIDDY_RING1_REPEAT_DECAY RIGHT_MIDDY_CHORD_REPEAT_DECAY\n#endif\n right_middy_ring1: homey_right_middy_ring1 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_middy_ring1_bilateral: homey_right_middy_ring1_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_middy_tap>;\n };\n #define RightMiddyRing1 right_middy_ring1_bilateral RIGHT_RING1_MOD RIGHT_RING1_KEY\n#ifndef RIGHT_INDEX_RING1_HOLDING_TYPE\n#define RIGHT_INDEX_RING1_HOLDING_TYPE RIGHT_INDEX_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_INDEX_RING1_HOLDING_TIME\n#define RIGHT_INDEX_RING1_HOLDING_TIME RIGHT_INDEX_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_INDEX_RING1_STREAK_DECAY\n#define RIGHT_INDEX_RING1_STREAK_DECAY RIGHT_INDEX_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_INDEX_RING1_REPEAT_DECAY\n#define RIGHT_INDEX_RING1_REPEAT_DECAY RIGHT_INDEX_CHORD_REPEAT_DECAY\n#endif\n right_index_ring1: homey_right_index_ring1 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_index_ring1_bilateral: homey_right_index_ring1_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_index_tap>;\n };\n #define RightIndexRing1 right_index_ring1_bilateral RIGHT_RING1_MOD RIGHT_RING1_KEY\n#ifndef LEFT_PINKY_RING2_HOLDING_TYPE\n#define LEFT_PINKY_RING2_HOLDING_TYPE LEFT_PINKY_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_PINKY_RING2_HOLDING_TIME\n#define LEFT_PINKY_RING2_HOLDING_TIME LEFT_PINKY_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_PINKY_RING2_STREAK_DECAY\n#define LEFT_PINKY_RING2_STREAK_DECAY LEFT_PINKY_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_PINKY_RING2_REPEAT_DECAY\n#define LEFT_PINKY_RING2_REPEAT_DECAY LEFT_PINKY_CHORD_REPEAT_DECAY\n#endif\n left_pinky_ring2: homey_left_pinky_ring2 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_pinky_ring2_bilateral: homey_left_pinky_ring2_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_pinky_tap>;\n };\n #define LeftPinkyRing2 left_pinky_ring2_bilateral LEFT_RING2_MOD LEFT_RING2_KEY\n#ifndef LEFT_RING1_RING2_HOLDING_TYPE\n#define LEFT_RING1_RING2_HOLDING_TYPE LEFT_RING1_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING1_RING2_HOLDING_TIME\n#define LEFT_RING1_RING2_HOLDING_TIME LEFT_RING1_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_RING1_RING2_STREAK_DECAY\n#define LEFT_RING1_RING2_STREAK_DECAY LEFT_RING1_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_RING1_RING2_REPEAT_DECAY\n#define LEFT_RING1_RING2_REPEAT_DECAY LEFT_RING1_CHORD_REPEAT_DECAY\n#endif\n left_ring1_ring2: homey_left_ring1_ring2 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_ring1_ring2_bilateral: homey_left_ring1_ring2_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_ring1_tap>;\n };\n #define LeftRing1Ring2 left_ring1_ring2_bilateral LEFT_RING2_MOD LEFT_RING2_KEY\n#ifndef LEFT_MIDDY_RING2_HOLDING_TYPE\n#define LEFT_MIDDY_RING2_HOLDING_TYPE LEFT_MIDDY_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_MIDDY_RING2_HOLDING_TIME\n#define LEFT_MIDDY_RING2_HOLDING_TIME LEFT_MIDDY_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_MIDDY_RING2_STREAK_DECAY\n#define LEFT_MIDDY_RING2_STREAK_DECAY LEFT_MIDDY_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_MIDDY_RING2_REPEAT_DECAY\n#define LEFT_MIDDY_RING2_REPEAT_DECAY LEFT_MIDDY_CHORD_REPEAT_DECAY\n#endif\n left_middy_ring2: homey_left_middy_ring2 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_middy_ring2_bilateral: homey_left_middy_ring2_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_middy_tap>;\n };\n #define LeftMiddyRing2 left_middy_ring2_bilateral LEFT_RING2_MOD LEFT_RING2_KEY\n#ifndef LEFT_INDEX_RING2_HOLDING_TYPE\n#define LEFT_INDEX_RING2_HOLDING_TYPE LEFT_INDEX_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_INDEX_RING2_HOLDING_TIME\n#define LEFT_INDEX_RING2_HOLDING_TIME LEFT_INDEX_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_INDEX_RING2_STREAK_DECAY\n#define LEFT_INDEX_RING2_STREAK_DECAY LEFT_INDEX_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_INDEX_RING2_REPEAT_DECAY\n#define LEFT_INDEX_RING2_REPEAT_DECAY LEFT_INDEX_CHORD_REPEAT_DECAY\n#endif\n left_index_ring2: homey_left_index_ring2 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_index_ring2_bilateral: homey_left_index_ring2_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_index_tap>;\n };\n #define LeftIndexRing2 left_index_ring2_bilateral LEFT_RING2_MOD LEFT_RING2_KEY\n#ifndef RIGHT_PINKY_RING2_HOLDING_TYPE\n#define RIGHT_PINKY_RING2_HOLDING_TYPE RIGHT_PINKY_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_PINKY_RING2_HOLDING_TIME\n#define RIGHT_PINKY_RING2_HOLDING_TIME RIGHT_PINKY_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_PINKY_RING2_STREAK_DECAY\n#define RIGHT_PINKY_RING2_STREAK_DECAY RIGHT_PINKY_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_PINKY_RING2_REPEAT_DECAY\n#define RIGHT_PINKY_RING2_REPEAT_DECAY RIGHT_PINKY_CHORD_REPEAT_DECAY\n#endif\n right_pinky_ring2: homey_right_pinky_ring2 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_pinky_ring2_bilateral: homey_right_pinky_ring2_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_pinky_tap>;\n };\n #define RightPinkyRing2 right_pinky_ring2_bilateral RIGHT_RING2_MOD RIGHT_RING2_KEY\n#ifndef RIGHT_RING1_RING2_HOLDING_TYPE\n#define RIGHT_RING1_RING2_HOLDING_TYPE RIGHT_RING1_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING1_RING2_HOLDING_TIME\n#define RIGHT_RING1_RING2_HOLDING_TIME RIGHT_RING1_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING1_RING2_STREAK_DECAY\n#define RIGHT_RING1_RING2_STREAK_DECAY RIGHT_RING1_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING1_RING2_REPEAT_DECAY\n#define RIGHT_RING1_RING2_REPEAT_DECAY RIGHT_RING1_CHORD_REPEAT_DECAY\n#endif\n right_ring1_ring2: homey_right_ring1_ring2 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_ring1_ring2_bilateral: homey_right_ring1_ring2_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_ring1_tap>;\n };\n #define RightRing1Ring2 right_ring1_ring2_bilateral RIGHT_RING2_MOD RIGHT_RING2_KEY\n#ifndef RIGHT_MIDDY_RING2_HOLDING_TYPE\n#define RIGHT_MIDDY_RING2_HOLDING_TYPE RIGHT_MIDDY_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_MIDDY_RING2_HOLDING_TIME\n#define RIGHT_MIDDY_RING2_HOLDING_TIME RIGHT_MIDDY_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_MIDDY_RING2_STREAK_DECAY\n#define RIGHT_MIDDY_RING2_STREAK_DECAY RIGHT_MIDDY_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_MIDDY_RING2_REPEAT_DECAY\n#define RIGHT_MIDDY_RING2_REPEAT_DECAY RIGHT_MIDDY_CHORD_REPEAT_DECAY\n#endif\n right_middy_ring2: homey_right_middy_ring2 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_middy_ring2_bilateral: homey_right_middy_ring2_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_middy_tap>;\n };\n #define RightMiddyRing2 right_middy_ring2_bilateral RIGHT_RING2_MOD RIGHT_RING2_KEY\n#ifndef RIGHT_INDEX_RING2_HOLDING_TYPE\n#define RIGHT_INDEX_RING2_HOLDING_TYPE RIGHT_INDEX_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_INDEX_RING2_HOLDING_TIME\n#define RIGHT_INDEX_RING2_HOLDING_TIME RIGHT_INDEX_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_INDEX_RING2_STREAK_DECAY\n#define RIGHT_INDEX_RING2_STREAK_DECAY RIGHT_INDEX_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_INDEX_RING2_REPEAT_DECAY\n#define RIGHT_INDEX_RING2_REPEAT_DECAY RIGHT_INDEX_CHORD_REPEAT_DECAY\n#endif\n right_index_ring2: homey_right_index_ring2 {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_index_ring2_bilateral: homey_right_index_ring2_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_index_tap>;\n };\n #define RightIndexRing2 right_index_ring2_bilateral RIGHT_RING2_MOD RIGHT_RING2_KEY\n#ifndef LEFT_PINKY_MIDDY_HOLDING_TYPE\n#define LEFT_PINKY_MIDDY_HOLDING_TYPE LEFT_PINKY_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_PINKY_MIDDY_HOLDING_TIME\n#define LEFT_PINKY_MIDDY_HOLDING_TIME LEFT_PINKY_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_PINKY_MIDDY_STREAK_DECAY\n#define LEFT_PINKY_MIDDY_STREAK_DECAY LEFT_PINKY_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_PINKY_MIDDY_REPEAT_DECAY\n#define LEFT_PINKY_MIDDY_REPEAT_DECAY LEFT_PINKY_CHORD_REPEAT_DECAY\n#endif\n left_pinky_middy: homey_left_pinky_middy {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_pinky_middy_bilateral: homey_left_pinky_middy_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_pinky_tap>;\n };\n #define LeftPinkyMiddy left_pinky_middy_bilateral LEFT_MIDDY_MOD LEFT_MIDDY_KEY\n#ifndef LEFT_RING1_MIDDY_HOLDING_TYPE\n#define LEFT_RING1_MIDDY_HOLDING_TYPE LEFT_RING1_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING1_MIDDY_HOLDING_TIME\n#define LEFT_RING1_MIDDY_HOLDING_TIME LEFT_RING1_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_RING1_MIDDY_STREAK_DECAY\n#define LEFT_RING1_MIDDY_STREAK_DECAY LEFT_RING1_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_RING1_MIDDY_REPEAT_DECAY\n#define LEFT_RING1_MIDDY_REPEAT_DECAY LEFT_RING1_CHORD_REPEAT_DECAY\n#endif\n left_ring1_middy: homey_left_ring1_middy {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_ring1_middy_bilateral: homey_left_ring1_middy_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_ring1_tap>;\n };\n #define LeftRing1Middy left_ring1_middy_bilateral LEFT_MIDDY_MOD LEFT_MIDDY_KEY\n#ifndef LEFT_RING2_MIDDY_HOLDING_TYPE\n#define LEFT_RING2_MIDDY_HOLDING_TYPE LEFT_RING2_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING2_MIDDY_HOLDING_TIME\n#define LEFT_RING2_MIDDY_HOLDING_TIME LEFT_RING2_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_RING2_MIDDY_STREAK_DECAY\n#define LEFT_RING2_MIDDY_STREAK_DECAY LEFT_RING2_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_RING2_MIDDY_REPEAT_DECAY\n#define LEFT_RING2_MIDDY_REPEAT_DECAY LEFT_RING2_CHORD_REPEAT_DECAY\n#endif\n left_ring2_middy: homey_left_ring2_middy {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_ring2_middy_bilateral: homey_left_ring2_middy_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_ring2_tap>;\n };\n #define LeftRing2Middy left_ring2_middy_bilateral LEFT_MIDDY_MOD LEFT_MIDDY_KEY\n#ifndef LEFT_INDEX_MIDDY_HOLDING_TYPE\n#define LEFT_INDEX_MIDDY_HOLDING_TYPE LEFT_INDEX_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_INDEX_MIDDY_HOLDING_TIME\n#define LEFT_INDEX_MIDDY_HOLDING_TIME LEFT_INDEX_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_INDEX_MIDDY_STREAK_DECAY\n#define LEFT_INDEX_MIDDY_STREAK_DECAY LEFT_INDEX_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_INDEX_MIDDY_REPEAT_DECAY\n#define LEFT_INDEX_MIDDY_REPEAT_DECAY LEFT_INDEX_CHORD_REPEAT_DECAY\n#endif\n left_index_middy: homey_left_index_middy {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_index_middy_bilateral: homey_left_index_middy_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_index_tap>;\n };\n #define LeftIndexMiddy left_index_middy_bilateral LEFT_MIDDY_MOD LEFT_MIDDY_KEY\n#ifndef RIGHT_PINKY_MIDDY_HOLDING_TYPE\n#define RIGHT_PINKY_MIDDY_HOLDING_TYPE RIGHT_PINKY_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_PINKY_MIDDY_HOLDING_TIME\n#define RIGHT_PINKY_MIDDY_HOLDING_TIME RIGHT_PINKY_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_PINKY_MIDDY_STREAK_DECAY\n#define RIGHT_PINKY_MIDDY_STREAK_DECAY RIGHT_PINKY_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_PINKY_MIDDY_REPEAT_DECAY\n#define RIGHT_PINKY_MIDDY_REPEAT_DECAY RIGHT_PINKY_CHORD_REPEAT_DECAY\n#endif\n right_pinky_middy: homey_right_pinky_middy {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_pinky_middy_bilateral: homey_right_pinky_middy_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_pinky_tap>;\n };\n #define RightPinkyMiddy right_pinky_middy_bilateral RIGHT_MIDDY_MOD RIGHT_MIDDY_KEY\n#ifndef RIGHT_RING1_MIDDY_HOLDING_TYPE\n#define RIGHT_RING1_MIDDY_HOLDING_TYPE RIGHT_RING1_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING1_MIDDY_HOLDING_TIME\n#define RIGHT_RING1_MIDDY_HOLDING_TIME RIGHT_RING1_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING1_MIDDY_STREAK_DECAY\n#define RIGHT_RING1_MIDDY_STREAK_DECAY RIGHT_RING1_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING1_MIDDY_REPEAT_DECAY\n#define RIGHT_RING1_MIDDY_REPEAT_DECAY RIGHT_RING1_CHORD_REPEAT_DECAY\n#endif\n right_ring1_middy: homey_right_ring1_middy {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_ring1_middy_bilateral: homey_right_ring1_middy_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_ring1_tap>;\n };\n #define RightRing1Middy right_ring1_middy_bilateral RIGHT_MIDDY_MOD RIGHT_MIDDY_KEY\n#ifndef RIGHT_RING2_MIDDY_HOLDING_TYPE\n#define RIGHT_RING2_MIDDY_HOLDING_TYPE RIGHT_RING2_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING2_MIDDY_HOLDING_TIME\n#define RIGHT_RING2_MIDDY_HOLDING_TIME RIGHT_RING2_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING2_MIDDY_STREAK_DECAY\n#define RIGHT_RING2_MIDDY_STREAK_DECAY RIGHT_RING2_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING2_MIDDY_REPEAT_DECAY\n#define RIGHT_RING2_MIDDY_REPEAT_DECAY RIGHT_RING2_CHORD_REPEAT_DECAY\n#endif\n right_ring2_middy: homey_right_ring2_middy {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_ring2_middy_bilateral: homey_right_ring2_middy_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_ring2_tap>;\n };\n #define RightRing2Middy right_ring2_middy_bilateral RIGHT_MIDDY_MOD RIGHT_MIDDY_KEY\n#ifndef RIGHT_INDEX_MIDDY_HOLDING_TYPE\n#define RIGHT_INDEX_MIDDY_HOLDING_TYPE RIGHT_INDEX_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_INDEX_MIDDY_HOLDING_TIME\n#define RIGHT_INDEX_MIDDY_HOLDING_TIME RIGHT_INDEX_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_INDEX_MIDDY_STREAK_DECAY\n#define RIGHT_INDEX_MIDDY_STREAK_DECAY RIGHT_INDEX_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_INDEX_MIDDY_REPEAT_DECAY\n#define RIGHT_INDEX_MIDDY_REPEAT_DECAY RIGHT_INDEX_CHORD_REPEAT_DECAY\n#endif\n right_index_middy: homey_right_index_middy {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_index_middy_bilateral: homey_right_index_middy_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_INDEX_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_index_tap>;\n };\n #define RightIndexMiddy right_index_middy_bilateral RIGHT_MIDDY_MOD RIGHT_MIDDY_KEY\n#ifndef LEFT_PINKY_INDEX_HOLDING_TYPE\n#define LEFT_PINKY_INDEX_HOLDING_TYPE LEFT_PINKY_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_PINKY_INDEX_HOLDING_TIME\n#define LEFT_PINKY_INDEX_HOLDING_TIME LEFT_PINKY_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_PINKY_INDEX_STREAK_DECAY\n#define LEFT_PINKY_INDEX_STREAK_DECAY LEFT_PINKY_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_PINKY_INDEX_REPEAT_DECAY\n#define LEFT_PINKY_INDEX_REPEAT_DECAY LEFT_PINKY_CHORD_REPEAT_DECAY\n#endif\n left_pinky_index: homey_left_pinky_index {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_pinky_index_bilateral: homey_left_pinky_index_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_pinky_tap>;\n };\n #define LeftPinkyIndex left_pinky_index_bilateral LEFT_INDEX_MOD LEFT_INDEX_KEY\n#ifndef LEFT_RING1_INDEX_HOLDING_TYPE\n#define LEFT_RING1_INDEX_HOLDING_TYPE LEFT_RING1_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING1_INDEX_HOLDING_TIME\n#define LEFT_RING1_INDEX_HOLDING_TIME LEFT_RING1_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_RING1_INDEX_STREAK_DECAY\n#define LEFT_RING1_INDEX_STREAK_DECAY LEFT_RING1_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_RING1_INDEX_REPEAT_DECAY\n#define LEFT_RING1_INDEX_REPEAT_DECAY LEFT_RING1_CHORD_REPEAT_DECAY\n#endif\n left_ring1_index: homey_left_ring1_index {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_ring1_index_bilateral: homey_left_ring1_index_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_ring1_tap>;\n };\n #define LeftRing1Index left_ring1_index_bilateral LEFT_INDEX_MOD LEFT_INDEX_KEY\n#ifndef LEFT_RING2_INDEX_HOLDING_TYPE\n#define LEFT_RING2_INDEX_HOLDING_TYPE LEFT_RING2_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_RING2_INDEX_HOLDING_TIME\n#define LEFT_RING2_INDEX_HOLDING_TIME LEFT_RING2_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_RING2_INDEX_STREAK_DECAY\n#define LEFT_RING2_INDEX_STREAK_DECAY LEFT_RING2_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_RING2_INDEX_REPEAT_DECAY\n#define LEFT_RING2_INDEX_REPEAT_DECAY LEFT_RING2_CHORD_REPEAT_DECAY\n#endif\n left_ring2_index: homey_left_ring2_index {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_ring2_index_bilateral: homey_left_ring2_index_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_ring2_tap>;\n };\n #define LeftRing2Index left_ring2_index_bilateral LEFT_INDEX_MOD LEFT_INDEX_KEY\n#ifndef LEFT_MIDDY_INDEX_HOLDING_TYPE\n#define LEFT_MIDDY_INDEX_HOLDING_TYPE LEFT_MIDDY_CHORD_HOLDING_TYPE\n#endif\n#ifndef LEFT_MIDDY_INDEX_HOLDING_TIME\n#define LEFT_MIDDY_INDEX_HOLDING_TIME LEFT_MIDDY_CHORD_HOLDING_TIME\n#endif\n#ifndef LEFT_MIDDY_INDEX_STREAK_DECAY\n#define LEFT_MIDDY_INDEX_STREAK_DECAY LEFT_MIDDY_CHORD_STREAK_DECAY\n#endif\n#ifndef LEFT_MIDDY_INDEX_REPEAT_DECAY\n#define LEFT_MIDDY_INDEX_REPEAT_DECAY LEFT_MIDDY_CHORD_REPEAT_DECAY\n#endif\n left_middy_index: homey_left_middy_index {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n left_middy_index_bilateral: homey_left_middy_index_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = LEFT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&left_middy_tap>;\n };\n #define LeftMiddyIndex left_middy_index_bilateral LEFT_INDEX_MOD LEFT_INDEX_KEY\n#ifndef RIGHT_PINKY_INDEX_HOLDING_TYPE\n#define RIGHT_PINKY_INDEX_HOLDING_TYPE RIGHT_PINKY_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_PINKY_INDEX_HOLDING_TIME\n#define RIGHT_PINKY_INDEX_HOLDING_TIME RIGHT_PINKY_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_PINKY_INDEX_STREAK_DECAY\n#define RIGHT_PINKY_INDEX_STREAK_DECAY RIGHT_PINKY_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_PINKY_INDEX_REPEAT_DECAY\n#define RIGHT_PINKY_INDEX_REPEAT_DECAY RIGHT_PINKY_CHORD_REPEAT_DECAY\n#endif\n right_pinky_index: homey_right_pinky_index {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_pinky_index_bilateral: homey_right_pinky_index_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_PINKY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_pinky_tap>;\n };\n #define RightPinkyIndex right_pinky_index_bilateral RIGHT_INDEX_MOD RIGHT_INDEX_KEY\n#ifndef RIGHT_RING1_INDEX_HOLDING_TYPE\n#define RIGHT_RING1_INDEX_HOLDING_TYPE RIGHT_RING1_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING1_INDEX_HOLDING_TIME\n#define RIGHT_RING1_INDEX_HOLDING_TIME RIGHT_RING1_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING1_INDEX_STREAK_DECAY\n#define RIGHT_RING1_INDEX_STREAK_DECAY RIGHT_RING1_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING1_INDEX_REPEAT_DECAY\n#define RIGHT_RING1_INDEX_REPEAT_DECAY RIGHT_RING1_CHORD_REPEAT_DECAY\n#endif\n right_ring1_index: homey_right_ring1_index {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_ring1_index_bilateral: homey_right_ring1_index_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING1_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_ring1_tap>;\n };\n #define RightRing1Index right_ring1_index_bilateral RIGHT_INDEX_MOD RIGHT_INDEX_KEY\n#ifndef RIGHT_RING2_INDEX_HOLDING_TYPE\n#define RIGHT_RING2_INDEX_HOLDING_TYPE RIGHT_RING2_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_RING2_INDEX_HOLDING_TIME\n#define RIGHT_RING2_INDEX_HOLDING_TIME RIGHT_RING2_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_RING2_INDEX_STREAK_DECAY\n#define RIGHT_RING2_INDEX_STREAK_DECAY RIGHT_RING2_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_RING2_INDEX_REPEAT_DECAY\n#define RIGHT_RING2_INDEX_REPEAT_DECAY RIGHT_RING2_CHORD_REPEAT_DECAY\n#endif\n right_ring2_index: homey_right_ring2_index {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_ring2_index_bilateral: homey_right_ring2_index_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_RING2_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_ring2_tap>;\n };\n #define RightRing2Index right_ring2_index_bilateral RIGHT_INDEX_MOD RIGHT_INDEX_KEY\n#ifndef RIGHT_MIDDY_INDEX_HOLDING_TYPE\n#define RIGHT_MIDDY_INDEX_HOLDING_TYPE RIGHT_MIDDY_CHORD_HOLDING_TYPE\n#endif\n#ifndef RIGHT_MIDDY_INDEX_HOLDING_TIME\n#define RIGHT_MIDDY_INDEX_HOLDING_TIME RIGHT_MIDDY_CHORD_HOLDING_TIME\n#endif\n#ifndef RIGHT_MIDDY_INDEX_STREAK_DECAY\n#define RIGHT_MIDDY_INDEX_STREAK_DECAY RIGHT_MIDDY_CHORD_STREAK_DECAY\n#endif\n#ifndef RIGHT_MIDDY_INDEX_REPEAT_DECAY\n#define RIGHT_MIDDY_INDEX_REPEAT_DECAY RIGHT_MIDDY_CHORD_REPEAT_DECAY\n#endif\n right_middy_index: homey_right_middy_index {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n right_middy_index_bilateral: homey_right_middy_index_bilateral {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = RIGHT_MIDDY_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n hold-trigger-on-release; // wait for other home row mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&right_middy_tap>;\n };\n #define RightMiddyIndex right_middy_index_bilateral RIGHT_INDEX_MOD RIGHT_INDEX_KEY\n\n //\n // Key repetition access keys on the index fingers\n //\n plain: plain_typing_layer {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = PLAIN_HOLDING_TYPE;\n tapping-term-ms = ;\n quick-tap-ms = ; // enable repeat\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&mo>, <&kp>;\n retro-tap; // tap on standalone hold\n };\n plain_engram_COMMA: plain_typing_layer_engram_COMMA {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = PLAIN_HOLDING_TYPE;\n tapping-term-ms = ;\n quick-tap-ms = ; // enable repeat\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&mo>, <&engram_COMMA>;\n retro-tap; // tap on standalone hold\n };\n plain_engram_DOT: plain_typing_layer_engram_DOT {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = PLAIN_HOLDING_TYPE;\n tapping-term-ms = ;\n quick-tap-ms = ; // enable repeat\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&mo>, <&engram_DOT>;\n retro-tap; // tap on standalone hold\n };\n\n //\n // Thumb cluster hold-tap keys for Miryoku layers\n //\n thumb: thumb_layer_access {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = THUMB_HOLDING_TYPE;\n tapping-term-ms = ;\n quick-tap-ms = ; // enable repeat\n #binding-cells = <2>;\n bindings = <&mo>, <&kp>;\n };\n thumb_parang_left: thumb_layer_access_parang_left {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = THUMB_HOLDING_TYPE;\n tapping-term-ms = ;\n quick-tap-ms = ; // enable repeat\n #binding-cells = <2>;\n bindings = <&mo>, <¶ng_left>;\n };\n thumb_lower_shift: lower_layer_or_sticky_shift {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = \"tap-preferred\";\n tapping-term-ms = ;\n #binding-cells = <2>;\n bindings = <&mo>, <&sticky_key_oneshot>;\n };\n space: thumb_layer_access_spacebar {\n compatible = \"zmk,behavior-hold-tap\";\n flavor = SPACE_HOLDING_TYPE;\n tapping-term-ms = ;\n quick-tap-ms = ; // enable repeat\n #binding-cells = <2>;\n bindings = <&mo>, <&kp>;\n };\n\n //\n // Shift + LEFT_PARENTHESIS = LESS_THAN\n //\n parang_left: left_parenthesis_and_less_than {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp LPAR>, <&kp LT>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n\n //\n // Shift + RIGHT_PARENTHESIS = GREATER_THAN\n //\n parang_right: right_parenthesis_and_greater_than {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp RPAR>, <&kp GT>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n\n //\n // Custom shifted pairs for the Engram layout\n // - https://engram.dev/\n // - https://sunaku.github.io/engram-keyboard-layout.html\n //\n engram_N1: engram_shift_N1_PIPE {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp N1>, <&kp PIPE>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_N2: engram_shift_N2_EQUAL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp N2>, <&kp EQUAL>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_N3: engram_shift_N3_TILDE {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp N3>, <&kp TILDE>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_N4: engram_shift_N4_PLUS {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp N4>, <&kp PLUS>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_N5: engram_shift_N5_LT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp N5>, <&kp LT>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_N6: engram_shift_N6_GT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp N6>, <&kp GT>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_N7: engram_shift_N7_CARET {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp N7>, <&kp CARET>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_N8: engram_shift_N8_AMPS {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp N8>, <&kp AMPS>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_N9: engram_shift_N9_PRCNT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp N9>, <&kp PRCNT>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_N0: engram_shift_N0_STAR {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp N0>, <&kp STAR>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_SQT: engram_shift_SQT_LPAR {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp SQT>, <&kp LPAR>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_DQT: engram_shift_DQT_RPAR {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp DQT>, <&kp RPAR>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_COMMA: engram_shift_COMMA_SEMI {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp COMMA>, <&kp SEMI>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_DOT: engram_shift_DOT_COLON {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp DOT>, <&kp COLON>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_QMARK: engram_shift_QMARK_EXCL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp QMARK>, <&kp EXCL>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_HASH: engram_shift_HASH_DLLR {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp HASH>, <&kp DLLR>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_AT: engram_shift_AT_GRAVE {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp AT>, <&kp GRAVE>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_FSLH: engram_shift_FSLH_BSLH {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&kp FSLH>, <&kp BSLH>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n\n //////////////////////////////////////////////////////////////////////////\n //\n // &sk (sticky key) variant that is truly one-shot\n //\n //////////////////////////////////////////////////////////////////////////\n\n //\n // STICKY_1SHOT_DECAY defines how much time you have left (milliseconds)\n // after tapping a sticky key before it expires (won't apply to next tap).\n //\n #ifndef STICKY_1SHOT_DECAY\n #define STICKY_1SHOT_DECAY 500\n #endif\n\n sticky_key_oneshot: sticky_key_oneshot_macro {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_tap &sticky_key_quickrel MACRO_PLACEHOLDER>\n ;\n };\n sticky_key_quickrel: sticky_key_quick_release {\n compatible = \"zmk,behavior-sticky-key\";\n #binding-cells = <1>;\n bindings = <&kp>;\n release-after-ms = ;\n quick-release;\n ignore-modifiers;\n };\n\n //////////////////////////////////////////////////////////////////////////\n //\n // ZMK global overrides\n //\n //////////////////////////////////////////////////////////////////////////\n\n //\n // CapsWord - ported from Pascal Getreuer's extension for QMK\n // - https://zmk.dev/docs/behaviors/caps-word\n // - https://getreuer.info/posts/keyboards/caps-word/index.html\n //\n behavior_caps_word {\n continue-list = <\n UNDERSCORE MINUS\n BACKSPACE DELETE\n N1 N2 N3 N4 N5 N6 N7 N8 N9 N0\n >;\n };\n\n};\n\nmacros {\n\n //\n // Linux Magic System Request Key - hold this down and type REISUB\n // - https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html\n // - https://github.com/manna-harbour/miryoku/discussions/259\n //\n ZMK_MACRO(linux_magic_sysrq,\n wait-ms = <0>;\n tap-ms = <0>;\n bindings\n = <¯o_press &mo 0 &kp RALT>\n , <¯o_tap &kp PRINTSCREEN>\n , <¯o_pause_for_release>\n , <¯o_release &mo 0 &kp RALT>\n ;\n )\n\n //\n // Mod+Tab application switcher - hold this down to keep menu open\n //\n mod_tab: mod_tab_switcher {\n compatible = \"zmk,behavior-macro-one-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <1>;\n bindings\n = <¯o_param_1to1>\n , <¯o_press &kp MACRO_PLACEHOLDER>\n , <¯o_tap &kp TAB>\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &kp MACRO_PLACEHOLDER>\n ;\n };\n mod_tab_chord: mod_tab_switcher_chord {\n compatible = \"zmk,behavior-macro-two-param\";\n wait-ms = <0>;\n tap-ms = <0>;\n #binding-cells = <2>;\n bindings\n = <¯o_param_2to1>\n , <¯o_press &mo MACRO_PLACEHOLDER>\n , <¯o_param_1to1>\n , <¯o_press &mod_tab MACRO_PLACEHOLDER>\n , <¯o_pause_for_release>\n , <¯o_param_1to1>\n , <¯o_release &mod_tab MACRO_PLACEHOLDER>\n , <¯o_param_2to1>\n , <¯o_release &mo MACRO_PLACEHOLDER>\n ;\n };\n\n //////////////////////////////////////////////////////////////////////////\n //\n // Approximation of Pascal Getreuer's Select Word macro from QMK\n // - https://getreuer.info/posts/keyboards/select-word/index.html\n //\n //////////////////////////////////////////////////////////////////////////\n\n //\n // SELECT_WORD_DELAY defines how long the macro waits (milliseconds)\n // after moving the cursor before it selects a word. A larger delay\n // may allow the macro to move to the next word upon each invocation.\n //\n #ifndef SELECT_WORD_DELAY\n #define SELECT_WORD_DELAY 1\n #endif\n\n ZMK_MACRO(select_none,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp DOWN &kp UP &kp RIGHT &kp LEFT>;\n )\n\n //\n // select a word (jumps to next word upon each successive invocation)\n //\n select_word: select_word {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&select_word_right>, <&select_word_left>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n ZMK_MACRO(select_word_right,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp _W(RIGHT) &kp _W(LEFT) &kp _W(LS(RIGHT))>;\n )\n ZMK_MACRO(select_word_left,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp _W(LEFT) &kp _W(RIGHT) &kp _W(LS(LEFT))>;\n )\n\n //\n // extend current selection by one word\n //\n extend_word: extend_word {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&extend_word_right>, <&extend_word_left>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n ZMK_MACRO(extend_word_right,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp _W(LS(RIGHT))>;\n )\n ZMK_MACRO(extend_word_left,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp _W(LS(LEFT))>;\n )\n\n //\n // select current line\n //\n select_line: select_line {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&select_line_right>, <&select_line_left>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n ZMK_MACRO(select_line_right,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp _HOME &kp LS(_END)>;\n )\n ZMK_MACRO(select_line_left,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp _END &kp LS(_HOME)>;\n )\n\n //\n // extend current selection by one line\n //\n extend_line: extend_line {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&extend_line_right>, <&extend_line_left>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n ZMK_MACRO(extend_line_right,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp LS(DOWN) &kp LS(_END)>;\n )\n ZMK_MACRO(extend_line_left,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp LS(UP) &kp LS(_HOME)>;\n )\n\n //////////////////////////////////////////////////////////////////////////\n //\n // World layer - international characters\n //\n //////////////////////////////////////////////////////////////////////////\n\n //\n // WORLD_USE_COMPOSE uses OS-native Compose keycodes instead of Unicode\n // for characters in the \"localizing\" section of the `world.yaml` file.\n //\n //#define WORLD_USE_COMPOSE\n\n //\n // UNICODE_TARGET_OS defines which operating system you're targeting\n // for the UNICODE() preprocessor macro to be used on, since each OS\n // has different shortcuts for typing Unicode characters as hexcodes.\n //\n // NOTE: You may need to enable Unicode hexadecimal input in your OS:\n // - (macOS) https://sevenseacat.net/posts/2018/unicode-in-qmk-on-osx/\n // - (Linux) https://help.ubuntu.com/stable/ubuntu-help/tips-specialchars.html.en#ctrlshiftu\n // - (Windows) https://github.com/samhocevar/wincompose\n //\n // Specifically, Windows users should be running the WinCompose tool,\n // which lets you type Unicode characters via hexadecimal codepoints.\n //\n #ifndef UNICODE_TARGET_OS\n #define UNICODE_TARGET_OS OPERATING_SYSTEM\n #endif\n\n //\n // UNICODE_TAP_DELAY defines how long the macro waits (milliseconds)\n // between keystrokes while inputting the Unicode codepoint shortcut.\n //\n #ifndef UNICODE_TAP_DELAY\n #define UNICODE_TAP_DELAY 1\n #endif\n\n //\n // UNICODE_SEQ_DELAY defines how long the macro waits (milliseconds)\n // between emitting Unicode codepoints in multi-codepoint characters.\n //\n #ifndef UNICODE_SEQ_DELAY\n #define UNICODE_SEQ_DELAY 10\n #endif\n\n #define UNICODE(name, ...) \\\n ZMK_MACRO(name, \\\n wait-ms = ; \\\n tap-ms = ; \\\n bindings = __VA_ARGS__; \\\n )\n\n //\n // UNICODE_SEQ_LINUX() specifies how Unicode hexadecimal codepoint\n // keystrokes are transformed into Unicode characters under Linux.\n //\n #ifndef UNICODE_SEQ_LINUX\n #define UNICODE_SEQ_LINUX(keystrokes) \\\n <¯o_tap &kp LC(LS(U)) keystrokes &kp ENTER>\n #endif\n\n //\n // UNICODE_SEQ_MACOS() specifies how Unicode hexadecimal codepoint\n // keystrokes are transformed into Unicode characters under macOS.\n //\n #ifndef UNICODE_SEQ_MACOS\n #define UNICODE_SEQ_MACOS(keystrokes) \\\n <¯o_press &kp LALT> ,\\\n <¯o_tap keystrokes> ,\\\n <¯o_release &kp LALT>\n #endif\n\n //\n // UNICODE_SEQ_WINDOWS() specifies how Unicode hexadecimal codepoint\n // keystrokes are transformed into Unicode characters under Windows.\n //\n // If you've configured WinCompose to use a different trigger hotkey,\n // such as F13 instead of the default RA(U) shortcut, simply override\n // this definition to adapt all UNICODE() function calls accordingly.\n //\n #ifndef UNICODE_SEQ_WINDOWS\n #define UNICODE_SEQ_WINDOWS(keystrokes) \\\n <¯o_tap &kp RALT &kp U keystrokes &kp ENTER>\n #endif\n\n //\n // COMPOSE_KEY_LINUX specifies the keycode for Compose key in Linux,\n // which may be RALT by default but can be reconfigured as follows:\n //\n // $ setxkbmap -option compose:sclk # use ScrollLock as Compose key\n //\n // See xkeyboard-config(7) for possible choices for the Compose key:\n // https://manpages.debian.org/stable/xkb-data/xkeyboard-config.7.en.html#Position_of_Compose_key\n //\n // #define COMPOSE_KEY_LINUX RALT // compose:ralt\n // #define COMPOSE_KEY_LINUX LGUI // compose:lwin\n // #define COMPOSE_KEY_LINUX RA(LGUI) // compose:lwin-altgr\n // #define COMPOSE_KEY_LINUX RGUI // compose:rwin\n // #define COMPOSE_KEY_LINUX RA(RGUI) // compose:rwin-altgr\n // #define COMPOSE_KEY_LINUX K_MENU // compose:menu\n // #define COMPOSE_KEY_LINUX RA(K_MENU) // compose:menu-altgr\n // #define COMPOSE_KEY_LINUX LCTL // compose:lctrl\n // #define COMPOSE_KEY_LINUX RA(LCTL) // compose:lctrl-altgr\n // #define COMPOSE_KEY_LINUX RCTL // compose:rctrl\n // #define COMPOSE_KEY_LINUX RA(RCTL) // compose:rctrl-altgr\n // #define COMPOSE_KEY_LINUX CAPS // compose:caps\n // #define COMPOSE_KEY_LINUX RA(CAPS) // compose:caps-altgr\n // #define COMPOSE_KEY_LINUX NON_US_BSLH // compose:102\n // #define COMPOSE_KEY_LINUX RA(NON_US_BSLH) // compose:102-altgr\n // #define COMPOSE_KEY_LINUX PAUSE_BREAK // compose:paus\n // #define COMPOSE_KEY_LINUX PSCRN // compose:prsc\n // #define COMPOSE_KEY_LINUX SLCK // compose:sclk\n //\n #ifndef COMPOSE_KEY_LINUX\n #define COMPOSE_KEY_LINUX RALT\n #endif\n\n //\n // COMPOSE_SEQ_LINUX() prefixes keystrokes with the Linux Compose key.\n //\n #ifndef COMPOSE_SEQ_LINUX\n #define COMPOSE_SEQ_LINUX(keystrokes) \\\n <¯o_tap &kp COMPOSE_KEY_LINUX keystrokes>\n #endif\n\n //\n // COMPOSE_SEQ_MACOS() formats keystrokes for macOS character entry.\n //\n #ifndef COMPOSE_SEQ_MACOS\n #define COMPOSE_SEQ_MACOS(keystrokes) \\\n <¯o_tap keystrokes>\n #endif\n\n //\n // COMPOSE_SEQ_WINDOWS() wraps keystrokes in Windows AltCode sequence.\n //\n #ifndef COMPOSE_SEQ_WINDOWS\n #define COMPOSE_SEQ_WINDOWS(keystrokes) \\\n <¯o_press &kp LALT>, \\\n <¯o_tap keystrokes>, \\\n <¯o_release &kp LALT>\n #endif\n #if UNICODE_TARGET_OS == 'L'\n #define UNICODE_MORPH_MODS (MOD_LCTL|MOD_LSFT)\n #elif UNICODE_TARGET_OS == 'M'\n #define UNICODE_MORPH_MODS MOD_LALT\n #elif UNICODE_TARGET_OS == 'W'\n #define UNICODE_MORPH_MODS MOD_RALT\n #endif\n #if UNICODE_TARGET_OS == 'L'\n // $ grep \"compose:\" /usr/share/X11/xkb/rules/base.lst\n // compose:ralt Right Alt\n #if COMPOSE_KEY_LINUX == RALT\n #define COMPOSE_MORPH_MODS MOD_RALT\n // compose:lwin Left Win\n #elif COMPOSE_KEY_LINUX == LGUI\n #define COMPOSE_MORPH_MODS MOD_LGUI\n // compose:lwin-altgr 3rd level of Left Win\n #elif COMPOSE_KEY_LINUX == RA(LGUI)\n #define COMPOSE_MORPH_MODS (MOD_LGUI|MOD_RALT)\n // compose:rwin Right Win\n #elif COMPOSE_KEY_LINUX == RGUI\n #define COMPOSE_MORPH_MODS MOD_RGUI\n // compose:rwin-altgr 3rd level of Right Win\n #elif COMPOSE_KEY_LINUX == RA(RGUI)\n #define COMPOSE_MORPH_MODS (MOD_RGUI|MOD_RALT)\n // compose:menu Menu\n // compose:menu-altgr 3rd level of Menu\n #elif COMPOSE_KEY_LINUX == RA(K_MENU)\n #define COMPOSE_MORPH_MODS MOD_RALT\n // compose:lctrl Left Ctrl\n #elif COMPOSE_KEY_LINUX == LCTL\n #define COMPOSE_MORPH_MODS MOD_LCTL\n // compose:lctrl-altgr 3rd level of Left Ctrl\n #elif COMPOSE_KEY_LINUX == RA(LCTL)\n #define COMPOSE_MORPH_MODS (MOD_LCTL|MOD_RALT)\n // compose:rctrl Right Ctrl\n #elif COMPOSE_KEY_LINUX == RCTL\n #define COMPOSE_MORPH_MODS MOD_RCTL\n // compose:rctrl-altgr 3rd level of Right Ctrl\n #elif COMPOSE_KEY_LINUX == RA(RCTL)\n #define COMPOSE_MORPH_MODS (MOD_RCTL|MOD_RALT)\n // compose:caps Caps Lock\n // compose:caps-altgr 3rd level of Caps Lock\n #elif COMPOSE_KEY_LINUX == RA(CAPS)\n #define COMPOSE_MORPH_MODS MOD_RALT\n // compose:102 The \"< >\" key\n // compose:102-altgr 3rd level of the \"< >\" key\n #elif COMPOSE_KEY_LINUX == RA(NON_US_BSLH)\n #define COMPOSE_MORPH_MODS MOD_RALT\n // compose:paus Pause\n // compose:prsc PrtSc\n // compose:sclk Scroll Lock\n #else\n #define COMPOSE_MORPH_MODS 0\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #define COMPOSE_MORPH_MODS 0\n #elif UNICODE_TARGET_OS == 'W'\n #define COMPOSE_MORPH_MODS MOD_LALT\n #endif\n\n\n //\n // NOTE: edit the world.yaml file and run `rake` to generate this:\n //\n\n //\n // codepoints\n //\n UNICODE(world_degree_sign_macro, /* ° */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_degree_sign\n COMPOSE_SEQ_LINUX(&kp O &kp O)\n #else\n UNICODE_SEQ_LINUX(&kp B &kp N0)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_degree_sign\n COMPOSE_SEQ_MACOS(&kp LA(LS(N8)))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp N0)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_degree_sign\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N7 &kp KP_N6)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp N0)\n #endif\n #endif\n )\n world_degree_sign: world_degree_sign {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_degree_sign_macro>, <&world_degree_sign_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_degree_sign\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_section_sign_macro, /* § */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_section_sign\n COMPOSE_SEQ_LINUX(&kp S &kp O)\n #else\n UNICODE_SEQ_LINUX(&kp A &kp N7)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_section_sign\n COMPOSE_SEQ_MACOS(&kp LA(N6))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N7)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_section_sign\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N6 &kp KP_N7)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N7)\n #endif\n #endif\n )\n world_section_sign: world_section_sign {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_section_sign_macro>, <&world_section_sign_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_section_sign\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_paragraph_sign_macro, /* Âķ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_paragraph_sign\n COMPOSE_SEQ_LINUX(&kp P &kp EXCL)\n #else\n UNICODE_SEQ_LINUX(&kp B &kp N6)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_paragraph_sign\n COMPOSE_SEQ_MACOS(&kp LA(N7))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp N6)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_paragraph_sign\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N8 &kp KP_N2)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp N6)\n #endif\n #endif\n )\n world_paragraph_sign: world_paragraph_sign {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_paragraph_sign_macro>, <&world_paragraph_sign_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_paragraph_sign\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_o_ordinal_macro, /* š */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_ordinal\n COMPOSE_SEQ_LINUX(&kp CARET &kp UNDER &kp O)\n #else\n UNICODE_SEQ_LINUX(&kp B &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_ordinal\n COMPOSE_SEQ_MACOS(&kp LA(N0))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_ordinal\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N8 &kp KP_N6)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp A)\n #endif\n #endif\n )\n world_o_ordinal: world_o_ordinal {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_ordinal_macro>, <&world_o_ordinal_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_ordinal\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_a_ordinal_macro, /* Š */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_ordinal\n COMPOSE_SEQ_LINUX(&kp CARET &kp UNDER &kp A)\n #else\n UNICODE_SEQ_LINUX(&kp A &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_ordinal\n COMPOSE_SEQ_MACOS(&kp LA(N9))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_ordinal\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N7 &kp KP_N0)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp A)\n #endif\n #endif\n )\n world_a_ordinal: world_a_ordinal {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_ordinal_macro>, <&world_a_ordinal_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_ordinal\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_exclaim_left_macro, /* ÂĄ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp A &kp N1)\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_exclaim_left\n COMPOSE_SEQ_MACOS(&kp LA(N1))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N1)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_exclaim_left\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N6 &kp KP_N1)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N1)\n #endif\n #endif\n )\n world_exclaim_left: world_exclaim_left {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_exclaim_left_macro>, <&world_exclaim_left_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_exclaim_left\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_question_left_macro, /* Âŋ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_question_left\n COMPOSE_SEQ_LINUX(&kp EXCL &kp EXCL)\n #else\n UNICODE_SEQ_LINUX(&kp B &kp F)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_question_left\n COMPOSE_SEQ_MACOS(&kp LA(LS(FSLH)))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp F)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_question_left\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N1)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp F)\n #endif\n #endif\n )\n world_question_left: world_question_left {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_question_left_macro>, <&world_question_left_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_question_left\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_currency_crypto_macro, /* â‚ŋ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp B &kp F)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp B &kp F)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp B &kp F)\n #endif\n )\n world_currency_crypto: world_currency_crypto {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_crypto_macro>, <&world_currency_crypto_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_currency_crypto\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_currency_cent_macro, /* ÂĒ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp A &kp N2)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N2)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N2)\n #endif\n )\n world_currency_cent: world_currency_cent {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_cent_macro>, <&world_currency_cent_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_currency_cent\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_currency_sign_macro, /* ÂĪ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp A &kp N4)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N4)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N4)\n #endif\n )\n world_currency_sign: world_currency_sign {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_sign_macro>, <&world_currency_sign_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_currency_sign\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_micro_sign_macro, /* Âĩ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_micro_sign\n COMPOSE_SEQ_LINUX(&kp M &kp U)\n #else\n UNICODE_SEQ_LINUX(&kp B &kp N5)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_micro_sign\n COMPOSE_SEQ_MACOS(&kp LA(M))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp N5)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_micro_sign\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N8 &kp KP_N1)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp N5)\n #endif\n #endif\n )\n world_micro_sign: world_micro_sign {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_micro_sign_macro>, <&world_micro_sign_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_micro_sign\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n\n //\n // characters\n //\n UNICODE(world_i_acute_lower_macro, /* í */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_acute_lower\n COMPOSE_SEQ_LINUX(&kp SQT &kp I)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp D)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_acute_lower\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp I)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp D)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_acute_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N7)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp D)\n #endif\n #endif\n )\n world_i_acute_lower: world_i_acute_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_acute_lower_macro>, <&world_i_acute_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_i_acute_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_i_acute_upper_macro, /* Í */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_acute_upper\n COMPOSE_SEQ_LINUX(&kp SQT &kp LS(I))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp D)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_acute_upper\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(I))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp D)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_acute_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N5)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp D)\n #endif\n #endif\n )\n world_i_acute_upper: world_i_acute_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_acute_upper_macro>, <&world_i_acute_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_i_acute_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_i_acute: world_i_acute {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_acute_lower>, <&world_i_acute_upper>;\n mods = ;\n };\n UNICODE(world_i_diaeresis_lower_macro, /* ÃŊ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_lower\n COMPOSE_SEQ_LINUX(&kp DQT &kp I)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp F)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_lower\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp I)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp F)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N9)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp F)\n #endif\n #endif\n )\n world_i_diaeresis_lower: world_i_diaeresis_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_diaeresis_lower_macro>, <&world_i_diaeresis_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_i_diaeresis_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_i_diaeresis_upper_macro, /* Ï */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_upper\n COMPOSE_SEQ_LINUX(&kp DQT &kp LS(I))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp F)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_upper\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(I))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp F)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_diaeresis_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N7)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp F)\n #endif\n #endif\n )\n world_i_diaeresis_upper: world_i_diaeresis_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_diaeresis_upper_macro>, <&world_i_diaeresis_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_i_diaeresis_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_i_diaeresis: world_i_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_diaeresis_lower>, <&world_i_diaeresis_upper>;\n mods = ;\n };\n UNICODE(world_i_circumflex_lower_macro, /* ÃŪ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_lower\n COMPOSE_SEQ_LINUX(&kp CARET &kp I)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp E)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_lower\n COMPOSE_SEQ_MACOS(&kp LA(I) &kp I)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp E)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N8)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp E)\n #endif\n #endif\n )\n world_i_circumflex_lower: world_i_circumflex_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_circumflex_lower_macro>, <&world_i_circumflex_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_i_circumflex_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_i_circumflex_upper_macro, /* Î */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_upper\n COMPOSE_SEQ_LINUX(&kp CARET &kp LS(I))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp E)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_upper\n COMPOSE_SEQ_MACOS(&kp LA(I) &kp LS(I))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp E)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_circumflex_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N6)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp E)\n #endif\n #endif\n )\n world_i_circumflex_upper: world_i_circumflex_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_circumflex_upper_macro>, <&world_i_circumflex_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_i_circumflex_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_i_circumflex: world_i_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_circumflex_lower>, <&world_i_circumflex_upper>;\n mods = ;\n };\n UNICODE(world_i_grave_lower_macro, /* ÃŽ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_grave_lower\n COMPOSE_SEQ_LINUX(&kp GRAVE &kp I)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp C)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_grave_lower\n COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp I)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp C)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_grave_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N6)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp C)\n #endif\n #endif\n )\n world_i_grave_lower: world_i_grave_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_grave_lower_macro>, <&world_i_grave_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_i_grave_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_i_grave_upper_macro, /* Ì */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_grave_upper\n COMPOSE_SEQ_LINUX(&kp GRAVE &kp LS(I))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp C)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_grave_upper\n COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp LS(I))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp C)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_i_grave_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N6)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp C)\n #endif\n #endif\n )\n world_i_grave_upper: world_i_grave_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_grave_upper_macro>, <&world_i_grave_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_i_grave_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_i_grave: world_i_grave {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_grave_lower>, <&world_i_grave_upper>;\n mods = ;\n };\n UNICODE(world_e_acute_lower_macro, /* ÃĐ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_acute_lower\n COMPOSE_SEQ_LINUX(&kp SQT &kp E)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp N9)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_acute_lower\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp E)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N9)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_acute_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N3)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N9)\n #endif\n #endif\n )\n world_e_acute_lower: world_e_acute_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_acute_lower_macro>, <&world_e_acute_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_e_acute_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_e_acute_upper_macro, /* É */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_acute_upper\n COMPOSE_SEQ_LINUX(&kp SQT &kp LS(E))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp N9)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_acute_upper\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(E))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N9)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_acute_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N1)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N9)\n #endif\n #endif\n )\n world_e_acute_upper: world_e_acute_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_acute_upper_macro>, <&world_e_acute_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_e_acute_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_e_acute: world_e_acute {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_acute_lower>, <&world_e_acute_upper>;\n mods = ;\n };\n UNICODE(world_e_diaeresis_lower_macro, /* ÃŦ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_lower\n COMPOSE_SEQ_LINUX(&kp DQT &kp E)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp B)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_lower\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp E)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp B)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N5)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp B)\n #endif\n #endif\n )\n world_e_diaeresis_lower: world_e_diaeresis_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_diaeresis_lower_macro>, <&world_e_diaeresis_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_e_diaeresis_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_e_diaeresis_upper_macro, /* Ë */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_upper\n COMPOSE_SEQ_LINUX(&kp DQT &kp LS(E))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp B)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_upper\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(E))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp B)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_diaeresis_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N3)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp B)\n #endif\n #endif\n )\n world_e_diaeresis_upper: world_e_diaeresis_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_diaeresis_upper_macro>, <&world_e_diaeresis_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_e_diaeresis_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_e_diaeresis: world_e_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_diaeresis_lower>, <&world_e_diaeresis_upper>;\n mods = ;\n };\n UNICODE(world_e_circumflex_lower_macro, /* Ê */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_lower\n COMPOSE_SEQ_LINUX(&kp CARET &kp E)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_lower\n COMPOSE_SEQ_MACOS(&kp LA(I) &kp E)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N4)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp A)\n #endif\n #endif\n )\n world_e_circumflex_lower: world_e_circumflex_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_circumflex_lower_macro>, <&world_e_circumflex_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_e_circumflex_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_e_circumflex_upper_macro, /* Ê */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_upper\n COMPOSE_SEQ_LINUX(&kp CARET &kp LS(E))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_upper\n COMPOSE_SEQ_MACOS(&kp LA(I) &kp LS(E))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_circumflex_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N2)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp A)\n #endif\n #endif\n )\n world_e_circumflex_upper: world_e_circumflex_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_circumflex_upper_macro>, <&world_e_circumflex_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_e_circumflex_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_e_circumflex: world_e_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_circumflex_lower>, <&world_e_circumflex_upper>;\n mods = ;\n };\n UNICODE(world_e_grave_lower_macro, /* ÃĻ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_grave_lower\n COMPOSE_SEQ_LINUX(&kp GRAVE &kp E)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp N8)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_grave_lower\n COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp E)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N8)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_grave_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N2)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N8)\n #endif\n #endif\n )\n world_e_grave_lower: world_e_grave_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_grave_lower_macro>, <&world_e_grave_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_e_grave_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_e_grave_upper_macro, /* È */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_grave_upper\n COMPOSE_SEQ_LINUX(&kp GRAVE &kp LS(E))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp N8)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_grave_upper\n COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp LS(E))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N8)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_grave_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N0)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N8)\n #endif\n #endif\n )\n world_e_grave_upper: world_e_grave_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_grave_upper_macro>, <&world_e_grave_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_e_grave_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_e_grave: world_e_grave {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_grave_lower>, <&world_e_grave_upper>;\n mods = ;\n };\n UNICODE(world_e_ae_lower_macro, /* ÃĶ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_ae_lower\n COMPOSE_SEQ_LINUX(&kp A &kp E)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp N6)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_ae_lower\n COMPOSE_SEQ_MACOS(&kp LA(SQT))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N6)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_ae_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N0)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N6)\n #endif\n #endif\n )\n world_e_ae_lower: world_e_ae_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_ae_lower_macro>, <&world_e_ae_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_e_ae_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_e_ae_upper_macro, /* Æ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_ae_upper\n COMPOSE_SEQ_LINUX(&kp LS(A) &kp LS(E))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp N6)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_ae_upper\n COMPOSE_SEQ_MACOS(&kp LA(LS(SQT)))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N6)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_e_ae_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N8)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N6)\n #endif\n #endif\n )\n world_e_ae_upper: world_e_ae_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_ae_upper_macro>, <&world_e_ae_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_e_ae_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_e_ae: world_e_ae {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_ae_lower>, <&world_e_ae_upper>;\n mods = ;\n };\n UNICODE(world_a_acute_lower_macro, /* ÃĄ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_acute_lower\n COMPOSE_SEQ_LINUX(&kp SQT &kp A)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp N1)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_acute_lower\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp A)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N1)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_acute_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N5)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N1)\n #endif\n #endif\n )\n world_a_acute_lower: world_a_acute_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_acute_lower_macro>, <&world_a_acute_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_acute_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_a_acute_upper_macro, /* Á */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_acute_upper\n COMPOSE_SEQ_LINUX(&kp SQT &kp LS(A))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp N1)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_acute_upper\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(A))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N1)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_acute_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N3)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N1)\n #endif\n #endif\n )\n world_a_acute_upper: world_a_acute_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_acute_upper_macro>, <&world_a_acute_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_acute_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_a_acute: world_a_acute {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_acute_lower>, <&world_a_acute_upper>;\n mods = ;\n };\n UNICODE(world_a_diaeresis_lower_macro, /* ÃĪ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_lower\n COMPOSE_SEQ_LINUX(&kp DQT &kp A)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp N4)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_lower\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp A)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N4)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N8)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N4)\n #endif\n #endif\n )\n world_a_diaeresis_lower: world_a_diaeresis_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_diaeresis_lower_macro>, <&world_a_diaeresis_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_diaeresis_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_a_diaeresis_upper_macro, /* Ä */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_upper\n COMPOSE_SEQ_LINUX(&kp DQT &kp LS(A))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp N4)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_upper\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(A))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N4)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_diaeresis_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N6)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N4)\n #endif\n #endif\n )\n world_a_diaeresis_upper: world_a_diaeresis_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_diaeresis_upper_macro>, <&world_a_diaeresis_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_diaeresis_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_a_diaeresis: world_a_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_diaeresis_lower>, <&world_a_diaeresis_upper>;\n mods = ;\n };\n UNICODE(world_a_circumflex_lower_macro, /* ÃĒ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_lower\n COMPOSE_SEQ_LINUX(&kp CARET &kp A)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp N2)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_lower\n COMPOSE_SEQ_MACOS(&kp LA(I) &kp A)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N2)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N6)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N2)\n #endif\n #endif\n )\n world_a_circumflex_lower: world_a_circumflex_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_circumflex_lower_macro>, <&world_a_circumflex_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_circumflex_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_a_circumflex_upper_macro, /*  */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_upper\n COMPOSE_SEQ_LINUX(&kp CARET &kp LS(A))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp N2)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_upper\n COMPOSE_SEQ_MACOS(&kp LA(I) &kp LS(A))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N2)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_circumflex_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N4)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N2)\n #endif\n #endif\n )\n world_a_circumflex_upper: world_a_circumflex_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_circumflex_upper_macro>, <&world_a_circumflex_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_circumflex_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_a_circumflex: world_a_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_circumflex_lower>, <&world_a_circumflex_upper>;\n mods = ;\n };\n UNICODE(world_a_grave_lower_macro, /* à */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_grave_lower\n COMPOSE_SEQ_LINUX(&kp GRAVE &kp A)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp N0)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_grave_lower\n COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp A)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N0)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_grave_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N4)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N0)\n #endif\n #endif\n )\n world_a_grave_lower: world_a_grave_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_grave_lower_macro>, <&world_a_grave_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_grave_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_a_grave_upper_macro, /* À */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_grave_upper\n COMPOSE_SEQ_LINUX(&kp GRAVE &kp LS(A))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp N0)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_grave_upper\n COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp LS(A))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N0)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_grave_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N2)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N0)\n #endif\n #endif\n )\n world_a_grave_upper: world_a_grave_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_grave_upper_macro>, <&world_a_grave_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_grave_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_a_grave: world_a_grave {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_grave_lower>, <&world_a_grave_upper>;\n mods = ;\n };\n UNICODE(world_a_tilde_lower_macro, /* ÃĢ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_tilde_lower\n COMPOSE_SEQ_LINUX(&kp TILDE &kp A)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp N3)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_tilde_lower\n COMPOSE_SEQ_MACOS(&kp LA(N) &kp A)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N3)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_tilde_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N7)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N3)\n #endif\n #endif\n )\n world_a_tilde_lower: world_a_tilde_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_tilde_lower_macro>, <&world_a_tilde_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_tilde_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_a_tilde_upper_macro, /* à */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_tilde_upper\n COMPOSE_SEQ_LINUX(&kp TILDE &kp LS(A))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp N3)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_tilde_upper\n COMPOSE_SEQ_MACOS(&kp LA(N) &kp LS(A))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N3)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_tilde_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N5)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N3)\n #endif\n #endif\n )\n world_a_tilde_upper: world_a_tilde_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_tilde_upper_macro>, <&world_a_tilde_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_tilde_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_a_tilde: world_a_tilde {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_tilde_lower>, <&world_a_tilde_upper>;\n mods = ;\n };\n UNICODE(world_a_ring_lower_macro, /* ÃĨ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_ring_lower\n COMPOSE_SEQ_LINUX(&kp O &kp A)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp N5)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_ring_lower\n COMPOSE_SEQ_MACOS(&kp LA(A))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N5)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_ring_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N9)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N5)\n #endif\n #endif\n )\n world_a_ring_lower: world_a_ring_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_ring_lower_macro>, <&world_a_ring_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_ring_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_a_ring_upper_macro, /* Å */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_ring_upper\n COMPOSE_SEQ_LINUX(&kp O &kp LS(A))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp N5)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_ring_upper\n COMPOSE_SEQ_MACOS(&kp LA(LS(A)))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N5)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_a_ring_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N7)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N5)\n #endif\n #endif\n )\n world_a_ring_upper: world_a_ring_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_ring_upper_macro>, <&world_a_ring_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_a_ring_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_a_ring: world_a_ring {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_ring_lower>, <&world_a_ring_upper>;\n mods = ;\n };\n UNICODE(world_y_acute_lower_macro, /* Ã― */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_acute_lower\n COMPOSE_SEQ_LINUX(&kp SQT &kp Y)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp D)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_acute_lower\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp Y)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp D)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_acute_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N5 &kp KP_N3)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp D)\n #endif\n #endif\n )\n world_y_acute_lower: world_y_acute_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_y_acute_lower_macro>, <&world_y_acute_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_y_acute_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_y_acute_upper_macro, /* Ý */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_acute_upper\n COMPOSE_SEQ_LINUX(&kp SQT &kp LS(Y))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp D)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_acute_upper\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(Y))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp D)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_acute_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N1)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp D)\n #endif\n #endif\n )\n world_y_acute_upper: world_y_acute_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_y_acute_upper_macro>, <&world_y_acute_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_y_acute_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_y_acute: world_y_acute {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_y_acute_lower>, <&world_y_acute_upper>;\n mods = ;\n };\n UNICODE(world_y_diaeresis_lower_macro, /* Ãŋ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_lower\n COMPOSE_SEQ_LINUX(&kp DQT &kp Y)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp F)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_lower\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp Y)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp F)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N5 &kp KP_N5)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp F)\n #endif\n #endif\n )\n world_y_diaeresis_lower: world_y_diaeresis_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_y_diaeresis_lower_macro>, <&world_y_diaeresis_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_y_diaeresis_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_y_diaeresis_upper_macro, /* Åļ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_upper\n COMPOSE_SEQ_LINUX(&kp DQT &kp LS(Y))\n #else\n UNICODE_SEQ_LINUX(&kp N1 &kp N7 &kp N8)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_upper\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(Y))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N1 &kp N7 &kp N8)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_y_diaeresis_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N5 &kp KP_N9)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp N7 &kp N8)\n #endif\n #endif\n )\n world_y_diaeresis_upper: world_y_diaeresis_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_y_diaeresis_upper_macro>, <&world_y_diaeresis_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_y_diaeresis_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_y_diaeresis: world_y_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_y_diaeresis_lower>, <&world_y_diaeresis_upper>;\n mods = ;\n };\n UNICODE(world_o_acute_lower_macro, /* Ãģ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_acute_lower\n COMPOSE_SEQ_LINUX(&kp SQT &kp O)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp N3)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_acute_lower\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp O)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N3)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_acute_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N3)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N3)\n #endif\n #endif\n )\n world_o_acute_lower: world_o_acute_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_acute_lower_macro>, <&world_o_acute_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_acute_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_o_acute_upper_macro, /* Ó */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_acute_upper\n COMPOSE_SEQ_LINUX(&kp SQT &kp LS(O))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp N3)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_acute_upper\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(O))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N3)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_acute_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N1)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N3)\n #endif\n #endif\n )\n world_o_acute_upper: world_o_acute_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_acute_upper_macro>, <&world_o_acute_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_acute_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_o_acute: world_o_acute {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_acute_lower>, <&world_o_acute_upper>;\n mods = ;\n };\n UNICODE(world_o_diaeresis_lower_macro, /* Ãķ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_lower\n COMPOSE_SEQ_LINUX(&kp DQT &kp O)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp N6)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_lower\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp O)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N6)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N6)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N6)\n #endif\n #endif\n )\n world_o_diaeresis_lower: world_o_diaeresis_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_diaeresis_lower_macro>, <&world_o_diaeresis_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_diaeresis_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_o_diaeresis_upper_macro, /* Ö */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_upper\n COMPOSE_SEQ_LINUX(&kp DQT &kp LS(O))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp N6)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_upper\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(O))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N6)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_diaeresis_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N4)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N6)\n #endif\n #endif\n )\n world_o_diaeresis_upper: world_o_diaeresis_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_diaeresis_upper_macro>, <&world_o_diaeresis_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_diaeresis_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_o_diaeresis: world_o_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_diaeresis_lower>, <&world_o_diaeresis_upper>;\n mods = ;\n };\n UNICODE(world_o_circumflex_lower_macro, /* Ãī */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_lower\n COMPOSE_SEQ_LINUX(&kp CARET &kp O)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp N4)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_lower\n COMPOSE_SEQ_MACOS(&kp LA(I) &kp O)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N4)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N4)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N4)\n #endif\n #endif\n )\n world_o_circumflex_lower: world_o_circumflex_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_circumflex_lower_macro>, <&world_o_circumflex_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_circumflex_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_o_circumflex_upper_macro, /* Ô */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_upper\n COMPOSE_SEQ_LINUX(&kp CARET &kp LS(O))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp N4)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_upper\n COMPOSE_SEQ_MACOS(&kp LA(I) &kp LS(O))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N4)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_circumflex_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N2)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N4)\n #endif\n #endif\n )\n world_o_circumflex_upper: world_o_circumflex_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_circumflex_upper_macro>, <&world_o_circumflex_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_circumflex_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_o_circumflex: world_o_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_circumflex_lower>, <&world_o_circumflex_upper>;\n mods = ;\n };\n UNICODE(world_o_grave_lower_macro, /* Ãē */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_grave_lower\n COMPOSE_SEQ_LINUX(&kp GRAVE &kp O)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp N2)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_grave_lower\n COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp O)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N2)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_grave_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N2)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N2)\n #endif\n #endif\n )\n world_o_grave_lower: world_o_grave_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_grave_lower_macro>, <&world_o_grave_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_grave_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_o_grave_upper_macro, /* Ò */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_grave_upper\n COMPOSE_SEQ_LINUX(&kp GRAVE &kp LS(O))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp N2)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_grave_upper\n COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp LS(O))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N2)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_grave_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N0)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N2)\n #endif\n #endif\n )\n world_o_grave_upper: world_o_grave_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_grave_upper_macro>, <&world_o_grave_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_grave_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_o_grave: world_o_grave {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_grave_lower>, <&world_o_grave_upper>;\n mods = ;\n };\n UNICODE(world_o_tilde_lower_macro, /* Ãĩ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_tilde_lower\n COMPOSE_SEQ_LINUX(&kp TILDE &kp O)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp N5)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_tilde_lower\n COMPOSE_SEQ_MACOS(&kp LA(N) &kp O)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N5)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_tilde_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N5)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N5)\n #endif\n #endif\n )\n world_o_tilde_lower: world_o_tilde_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_tilde_lower_macro>, <&world_o_tilde_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_tilde_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_o_tilde_upper_macro, /* Õ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_tilde_upper\n COMPOSE_SEQ_LINUX(&kp TILDE &kp LS(O))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp N5)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_tilde_upper\n COMPOSE_SEQ_MACOS(&kp LA(N) &kp LS(O))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N5)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_tilde_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N3)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N5)\n #endif\n #endif\n )\n world_o_tilde_upper: world_o_tilde_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_tilde_upper_macro>, <&world_o_tilde_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_tilde_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_o_tilde: world_o_tilde {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_tilde_lower>, <&world_o_tilde_upper>;\n mods = ;\n };\n UNICODE(world_o_slash_lower_macro, /* Ãļ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_slash_lower\n COMPOSE_SEQ_LINUX(&kp FSLH &kp O)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp N8)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_slash_lower\n COMPOSE_SEQ_MACOS(&kp LA(O))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N8)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_slash_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N8)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N8)\n #endif\n #endif\n )\n world_o_slash_lower: world_o_slash_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_slash_lower_macro>, <&world_o_slash_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_slash_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_o_slash_upper_macro, /* Ø */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_slash_upper\n COMPOSE_SEQ_LINUX(&kp FSLH &kp LS(O))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp N8)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_slash_upper\n COMPOSE_SEQ_MACOS(&kp LA(LS(O)))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N8)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_o_slash_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N6)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N8)\n #endif\n #endif\n )\n world_o_slash_upper: world_o_slash_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_slash_upper_macro>, <&world_o_slash_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_o_slash_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_o_slash: world_o_slash {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_slash_lower>, <&world_o_slash_upper>;\n mods = ;\n };\n UNICODE(world_u_acute_lower_macro, /* Ú */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_acute_lower\n COMPOSE_SEQ_LINUX(&kp SQT &kp U)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_acute_lower\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp U)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_acute_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N5 &kp KP_N0)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp A)\n #endif\n #endif\n )\n world_u_acute_lower: world_u_acute_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_acute_lower_macro>, <&world_u_acute_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_u_acute_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_u_acute_upper_macro, /* Ú */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_acute_upper\n COMPOSE_SEQ_LINUX(&kp SQT &kp LS(U))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_acute_upper\n COMPOSE_SEQ_MACOS(&kp LA(E) &kp LS(U))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp A)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_acute_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N8)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp A)\n #endif\n #endif\n )\n world_u_acute_upper: world_u_acute_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_acute_upper_macro>, <&world_u_acute_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_u_acute_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_u_acute: world_u_acute {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_acute_lower>, <&world_u_acute_upper>;\n mods = ;\n };\n UNICODE(world_u_diaeresis_lower_macro, /* Þ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_lower\n COMPOSE_SEQ_LINUX(&kp DQT &kp U)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp C)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_lower\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp U)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp C)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N5 &kp KP_N2)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp C)\n #endif\n #endif\n )\n world_u_diaeresis_lower: world_u_diaeresis_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_diaeresis_lower_macro>, <&world_u_diaeresis_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_u_diaeresis_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_u_diaeresis_upper_macro, /* Ü */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_upper\n COMPOSE_SEQ_LINUX(&kp DQT &kp LS(U))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp C)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_upper\n COMPOSE_SEQ_MACOS(&kp LA(U) &kp LS(U))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp C)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_diaeresis_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N0)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp C)\n #endif\n #endif\n )\n world_u_diaeresis_upper: world_u_diaeresis_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_diaeresis_upper_macro>, <&world_u_diaeresis_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_u_diaeresis_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_u_diaeresis: world_u_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_diaeresis_lower>, <&world_u_diaeresis_upper>;\n mods = ;\n };\n UNICODE(world_u_circumflex_lower_macro, /* Ãŧ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_lower\n COMPOSE_SEQ_LINUX(&kp CARET &kp U)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp B)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_lower\n COMPOSE_SEQ_MACOS(&kp LA(I) &kp U)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp B)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N5 &kp KP_N1)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp B)\n #endif\n #endif\n )\n world_u_circumflex_lower: world_u_circumflex_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_circumflex_lower_macro>, <&world_u_circumflex_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_u_circumflex_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_u_circumflex_upper_macro, /* Û */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_upper\n COMPOSE_SEQ_LINUX(&kp CARET &kp LS(U))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp B)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_upper\n COMPOSE_SEQ_MACOS(&kp LA(I) &kp LS(U))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp B)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_circumflex_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N9)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp B)\n #endif\n #endif\n )\n world_u_circumflex_upper: world_u_circumflex_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_circumflex_upper_macro>, <&world_u_circumflex_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_u_circumflex_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_u_circumflex: world_u_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_circumflex_lower>, <&world_u_circumflex_upper>;\n mods = ;\n };\n UNICODE(world_u_grave_lower_macro, /* Ãđ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_grave_lower\n COMPOSE_SEQ_LINUX(&kp GRAVE &kp U)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp N9)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_grave_lower\n COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp U)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N9)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_grave_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N9)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N9)\n #endif\n #endif\n )\n world_u_grave_lower: world_u_grave_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_grave_lower_macro>, <&world_u_grave_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_u_grave_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_u_grave_upper_macro, /* Ù */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_grave_upper\n COMPOSE_SEQ_LINUX(&kp GRAVE &kp LS(U))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp N9)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_grave_upper\n COMPOSE_SEQ_MACOS(&kp LA(GRAVE) &kp LS(U))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N9)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_u_grave_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N1 &kp KP_N7)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N9)\n #endif\n #endif\n )\n world_u_grave_upper: world_u_grave_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_grave_upper_macro>, <&world_u_grave_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_u_grave_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_u_grave: world_u_grave {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_grave_lower>, <&world_u_grave_upper>;\n mods = ;\n };\n UNICODE(world_consonants_cedilla_lower_macro, /* ç */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_lower\n COMPOSE_SEQ_LINUX(&kp COMMA &kp C)\n #else\n UNICODE_SEQ_LINUX(&kp E &kp N7)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_lower\n COMPOSE_SEQ_MACOS(&kp LA(C))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp E &kp N7)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N3 &kp KP_N1)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp E &kp N7)\n #endif\n #endif\n )\n world_consonants_cedilla_lower: world_consonants_cedilla_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_cedilla_lower_macro>, <&world_consonants_cedilla_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_consonants_cedilla_upper_macro, /* Ç */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_upper\n COMPOSE_SEQ_LINUX(&kp COMMA &kp LS(C))\n #else\n UNICODE_SEQ_LINUX(&kp C &kp N7)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_upper\n COMPOSE_SEQ_MACOS(&kp LA(LS(C)))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp C &kp N7)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N9 &kp KP_N9)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp C &kp N7)\n #endif\n #endif\n )\n world_consonants_cedilla_upper: world_consonants_cedilla_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_cedilla_upper_macro>, <&world_consonants_cedilla_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_cedilla_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_consonants_cedilla: world_consonants_cedilla {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_cedilla_lower>, <&world_consonants_cedilla_upper>;\n mods = ;\n };\n UNICODE(world_consonants_eszett_lower_macro, /* ß */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_eszett_lower\n COMPOSE_SEQ_LINUX(&kp S &kp S)\n #else\n UNICODE_SEQ_LINUX(&kp D &kp F)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_eszett_lower\n COMPOSE_SEQ_MACOS(&kp LA(S))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp F)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_eszett_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N2 &kp KP_N3)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp F)\n #endif\n #endif\n )\n world_consonants_eszett_lower: world_consonants_eszett_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_eszett_lower_macro>, <&world_consonants_eszett_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_eszett_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_consonants_eszett_upper_macro, /* ᚞ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_eszett_upper\n COMPOSE_SEQ_LINUX(&kp LS(S) &kp LS(S))\n #else\n UNICODE_SEQ_LINUX(&kp N1 &kp E &kp N9 &kp E)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_eszett_upper\n COMPOSE_SEQ_MACOS(&kp LA(LS(S)))\n #else\n UNICODE_SEQ_MACOS(&kp N1 &kp E &kp N9 &kp E)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp E &kp N9 &kp E)\n #endif\n )\n world_consonants_eszett_upper: world_consonants_eszett_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_eszett_upper_macro>, <&world_consonants_eszett_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_eszett_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_consonants_eszett: world_consonants_eszett {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_eszett_lower>, <&world_consonants_eszett_upper>;\n mods = ;\n };\n UNICODE(world_consonants_ntilde_lower_macro, /* Ãą */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_lower\n COMPOSE_SEQ_LINUX(&kp TILDE &kp N)\n #else\n UNICODE_SEQ_LINUX(&kp F &kp N1)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_lower\n COMPOSE_SEQ_MACOS(&kp LA(N) &kp N)\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp F &kp N1)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_lower\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N4 &kp KP_N1)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp N1)\n #endif\n #endif\n )\n world_consonants_ntilde_lower: world_consonants_ntilde_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_ntilde_lower_macro>, <&world_consonants_ntilde_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_consonants_ntilde_upper_macro, /* Ñ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_upper\n COMPOSE_SEQ_LINUX(&kp TILDE &kp LS(N))\n #else\n UNICODE_SEQ_LINUX(&kp D &kp N1)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_upper\n COMPOSE_SEQ_MACOS(&kp LA(N) &kp LS(N))\n #else\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp D &kp N1)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_upper\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N2 &kp KP_N0 &kp KP_N9)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp D &kp N1)\n #endif\n #endif\n )\n world_consonants_ntilde_upper: world_consonants_ntilde_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_ntilde_upper_macro>, <&world_consonants_ntilde_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_consonants_ntilde_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_consonants_ntilde: world_consonants_ntilde {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_ntilde_lower>, <&world_consonants_ntilde_upper>;\n mods = ;\n };\n UNICODE(world_quotes_left_angle_lower_macro, /* â€đ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N3 &kp N9)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N3 &kp N9)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N3 &kp N9)\n #endif\n )\n world_quotes_left_angle_lower: world_quotes_left_angle_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_angle_lower_macro>, <&world_quotes_left_angle_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_angle_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_quotes_left_angle_upper_macro, /* ÂŦ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp A &kp B)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp B)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp B)\n #endif\n )\n world_quotes_left_angle_upper: world_quotes_left_angle_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_angle_upper_macro>, <&world_quotes_left_angle_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_angle_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_quotes_left_angle: world_quotes_left_angle {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_angle_lower>, <&world_quotes_left_angle_upper>;\n mods = ;\n };\n UNICODE(world_quotes_left_curly_lower_macro, /* ‘ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp N8)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp N8)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp N8)\n #endif\n )\n world_quotes_left_curly_lower: world_quotes_left_curly_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_curly_lower_macro>, <&world_quotes_left_curly_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_curly_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_quotes_left_curly_upper_macro, /* “ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp C)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp C)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp C)\n #endif\n )\n world_quotes_left_curly_upper: world_quotes_left_curly_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_curly_upper_macro>, <&world_quotes_left_curly_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_curly_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_quotes_left_curly: world_quotes_left_curly {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_curly_lower>, <&world_quotes_left_curly_upper>;\n mods = ;\n };\n UNICODE(world_quotes_left_low_lower_macro, /* ‚ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp A)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp A)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp A)\n #endif\n )\n world_quotes_left_low_lower: world_quotes_left_low_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_low_lower_macro>, <&world_quotes_left_low_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_low_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_quotes_left_low_upper_macro, /* „ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp E)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp E)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp E)\n #endif\n )\n world_quotes_left_low_upper: world_quotes_left_low_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_low_upper_macro>, <&world_quotes_left_low_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_low_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_quotes_left_low: world_quotes_left_low {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_low_lower>, <&world_quotes_left_low_upper>;\n mods = ;\n };\n UNICODE(world_quotes_left_corner1_lower_macro, /* 「 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N3 &kp N0 &kp N0 &kp C)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N3 &kp N0 &kp N0 &kp C)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N3 &kp N0 &kp N0 &kp C)\n #endif\n )\n world_quotes_left_corner1_lower: world_quotes_left_corner1_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_corner1_lower_macro>, <&world_quotes_left_corner1_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_corner1_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_quotes_left_corner1_upper_macro, /* ïđ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp F &kp E &kp N4 &kp N1)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp F &kp E &kp N4 &kp N1)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N4 &kp N1)\n #endif\n )\n world_quotes_left_corner1_upper: world_quotes_left_corner1_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_corner1_upper_macro>, <&world_quotes_left_corner1_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_corner1_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_quotes_left_corner1: world_quotes_left_corner1 {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_corner1_lower>, <&world_quotes_left_corner1_upper>;\n mods = ;\n };\n UNICODE(world_quotes_left_corner2_lower_macro, /* 『 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N3 &kp N0 &kp N0 &kp E)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N3 &kp N0 &kp N0 &kp E)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N3 &kp N0 &kp N0 &kp E)\n #endif\n )\n world_quotes_left_corner2_lower: world_quotes_left_corner2_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_corner2_lower_macro>, <&world_quotes_left_corner2_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_corner2_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_quotes_left_corner2_upper_macro, /* ïđƒ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp F &kp E &kp N4 &kp N3)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp F &kp E &kp N4 &kp N3)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N4 &kp N3)\n #endif\n )\n world_quotes_left_corner2_upper: world_quotes_left_corner2_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_corner2_upper_macro>, <&world_quotes_left_corner2_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_corner2_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_quotes_left_corner2: world_quotes_left_corner2 {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_corner2_lower>, <&world_quotes_left_corner2_upper>;\n mods = ;\n };\n UNICODE(world_quotes_left_grave_macro, /* ` */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N6 &kp N0)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp N6 &kp N0)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N6 &kp N0)\n #endif\n )\n world_quotes_left_grave: world_quotes_left_grave {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_grave_macro>, <&world_quotes_left_grave_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_left_grave\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_quotes_right_angle_lower_macro, /* ‹ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N3 &kp A)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N3 &kp A)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N3 &kp A)\n #endif\n )\n world_quotes_right_angle_lower: world_quotes_right_angle_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_angle_lower_macro>, <&world_quotes_right_angle_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_angle_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_quotes_right_angle_upper_macro, /* Âŧ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp B &kp B)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp B)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp B)\n #endif\n )\n world_quotes_right_angle_upper: world_quotes_right_angle_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_angle_upper_macro>, <&world_quotes_right_angle_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_angle_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_quotes_right_angle: world_quotes_right_angle {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_angle_lower>, <&world_quotes_right_angle_upper>;\n mods = ;\n };\n UNICODE(world_quotes_right_curly_lower_macro, /* ’ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp N9)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp N9)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp N9)\n #endif\n )\n world_quotes_right_curly_lower: world_quotes_right_curly_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_curly_lower_macro>, <&world_quotes_right_curly_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_curly_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_quotes_right_curly_upper_macro, /* ” */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N1 &kp D)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N1 &kp D)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N1 &kp D)\n #endif\n )\n world_quotes_right_curly_upper: world_quotes_right_curly_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_curly_upper_macro>, <&world_quotes_right_curly_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_curly_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_quotes_right_curly: world_quotes_right_curly {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_curly_lower>, <&world_quotes_right_curly_upper>;\n mods = ;\n };\n world_quotes_right_low: world_quotes_right_low {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_low_lower>, <&world_quotes_left_low_upper>;\n mods = ;\n };\n UNICODE(world_quotes_right_corner1_lower_macro, /* 」 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N3 &kp N0 &kp N0 &kp D)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N3 &kp N0 &kp N0 &kp D)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N3 &kp N0 &kp N0 &kp D)\n #endif\n )\n world_quotes_right_corner1_lower: world_quotes_right_corner1_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_corner1_lower_macro>, <&world_quotes_right_corner1_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_corner1_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_quotes_right_corner1_upper_macro, /* ïđ‚ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp F &kp E &kp N4 &kp N2)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp F &kp E &kp N4 &kp N2)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N4 &kp N2)\n #endif\n )\n world_quotes_right_corner1_upper: world_quotes_right_corner1_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_corner1_upper_macro>, <&world_quotes_right_corner1_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_corner1_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_quotes_right_corner1: world_quotes_right_corner1 {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_corner1_lower>, <&world_quotes_right_corner1_upper>;\n mods = ;\n };\n UNICODE(world_quotes_right_corner2_lower_macro, /* 』 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N3 &kp N0 &kp N0 &kp F)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N3 &kp N0 &kp N0 &kp F)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N3 &kp N0 &kp N0 &kp F)\n #endif\n )\n world_quotes_right_corner2_lower: world_quotes_right_corner2_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_corner2_lower_macro>, <&world_quotes_right_corner2_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_corner2_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_quotes_right_corner2_upper_macro, /* ïđ„ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp F &kp E &kp N4 &kp N4)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp F &kp E &kp N4 &kp N4)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp F &kp E &kp N4 &kp N4)\n #endif\n )\n world_quotes_right_corner2_upper: world_quotes_right_corner2_upper {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_corner2_upper_macro>, <&world_quotes_right_corner2_upper_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_corner2_upper\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_quotes_right_corner2: world_quotes_right_corner2 {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_corner2_lower>, <&world_quotes_right_corner2_upper>;\n mods = ;\n };\n UNICODE(world_quotes_right_grave_macro, /* Âī */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp B &kp N4)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp B &kp N4)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp B &kp N4)\n #endif\n )\n world_quotes_right_grave: world_quotes_right_grave {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_grave_macro>, <&world_quotes_right_grave_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_quotes_right_grave\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_currency_dollar_lower_macro, /* $ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N4)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp N2 &kp N4)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N4)\n #endif\n )\n world_currency_dollar_lower: world_currency_dollar_lower {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_dollar_lower_macro>, <&world_currency_dollar_lower_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_currency_dollar_lower\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_currency_dollar: world_currency_dollar {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_dollar_lower>, <&world_currency_cent>;\n mods = ;\n };\n UNICODE(world_currency_yen_macro, /* ÂĨ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp A &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N5)\n #endif\n )\n world_currency_yen: world_currency_yen {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_yen_macro>, <&world_currency_yen_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_currency_yen\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_currency_euro_macro, /* ₮ */\n #if UNICODE_TARGET_OS == 'L'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_currency_euro\n COMPOSE_SEQ_LINUX(&kp E &kp EQUAL)\n #else\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp A &kp C)\n #endif\n #elif UNICODE_TARGET_OS == 'M'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_currency_euro\n COMPOSE_SEQ_MACOS(&kp LA(LS(N2)))\n #else\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp A &kp C)\n #endif\n #elif UNICODE_TARGET_OS == 'W'\n #ifdef WORLD_USE_COMPOSE\n #define WORLD_USE_COMPOSE_FOR_world_currency_euro\n COMPOSE_SEQ_WINDOWS(&kp KP_N0 &kp KP_N1 &kp KP_N2 &kp KP_N8)\n #else\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp A &kp C)\n #endif\n #endif\n )\n world_currency_euro: world_currency_euro {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_euro_macro>, <&world_currency_euro_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_currency_euro\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_currency_won_macro, /* â‚Đ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp A &kp N9)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp A &kp N9)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp A &kp N9)\n #endif\n )\n world_currency_won: world_currency_won {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_won_macro>, <&world_currency_won_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_currency_won\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(world_currency_pound_macro, /* ÂĢ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp A &kp N3)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N0 &kp N0 &kp A &kp N3)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp A &kp N3)\n #endif\n )\n world_currency_pound: world_currency_pound {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_pound_macro>, <&world_currency_pound_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_world_currency_pound\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n world_currency_generic: world_currency_generic {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_sign>, <&world_currency_crypto>;\n mods = ;\n };\n\n //\n // transforms\n //\n world_i_base: world_i_base {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_acute>, <&world_i_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_i_LCTL: world_i_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_diaeresis>, <&world_i_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n world_i_RCTL: world_i_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_i_circumflex>, <&world_i_grave>;\n mods = <(MOD_RSFT)>;\n };\n world_e_base: world_e_base {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_acute>, <&world_e_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_e_RALT: world_e_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_ae>, <&world_e_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_e_LCTL: world_e_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_diaeresis>, <&world_e_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n world_e_RCTL: world_e_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_e_circumflex>, <&world_e_grave>;\n mods = <(MOD_RSFT)>;\n };\n world_a_base: world_a_base {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_acute>, <&world_a_LALT>;\n mods = <(MOD_LALT|MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_a_LALT: world_a_LALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_tilde>, <&world_a_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_a_RALT: world_a_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_ring>, <&world_a_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_a_LCTL: world_a_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_diaeresis>, <&world_a_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n world_a_RCTL: world_a_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_a_circumflex>, <&world_a_grave>;\n mods = <(MOD_RSFT)>;\n };\n world_y_base: world_y_base {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_y_acute>, <&world_y_diaeresis>;\n mods = <(MOD_LCTL)>;\n };\n world_o_base: world_o_base {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_acute>, <&world_o_LALT>;\n mods = <(MOD_LALT|MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_o_LALT: world_o_LALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_tilde>, <&world_o_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_o_RALT: world_o_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_slash>, <&world_o_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_o_LCTL: world_o_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_diaeresis>, <&world_o_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n world_o_RCTL: world_o_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_o_circumflex>, <&world_o_grave>;\n mods = <(MOD_RSFT)>;\n };\n world_u_base: world_u_base {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_acute>, <&world_u_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_u_LCTL: world_u_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_diaeresis>, <&world_u_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n world_u_RCTL: world_u_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_u_circumflex>, <&world_u_grave>;\n mods = <(MOD_RSFT)>;\n };\n world_consonants_base: world_consonants_base {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_cedilla>, <&world_consonants_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL)>;\n };\n world_consonants_LCTL: world_consonants_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_consonants_ntilde>, <&world_consonants_eszett>;\n mods = <(MOD_RCTL)>;\n };\n world_quotes_left_base: world_quotes_left_base {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_angle>, <&world_quotes_left_LALT>;\n mods = <(MOD_LALT|MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_quotes_left_LALT: world_quotes_left_LALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_corner1>, <&world_quotes_left_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_quotes_left_RALT: world_quotes_left_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_corner2>, <&world_quotes_left_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_quotes_left_LCTL: world_quotes_left_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_curly>, <&world_quotes_left_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n world_quotes_left_RCTL: world_quotes_left_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_left_low>, <&world_quotes_left_grave>;\n mods = <(MOD_RSFT)>;\n };\n world_quotes_right_base: world_quotes_right_base {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_angle>, <&world_quotes_right_LALT>;\n mods = <(MOD_LALT|MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_quotes_right_LALT: world_quotes_right_LALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_corner1>, <&world_quotes_right_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_quotes_right_RALT: world_quotes_right_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_corner2>, <&world_quotes_right_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_quotes_right_LCTL: world_quotes_right_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_curly>, <&world_quotes_right_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n world_quotes_right_RCTL: world_quotes_right_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_quotes_right_low>, <&world_quotes_right_grave>;\n mods = <(MOD_RSFT)>;\n };\n world_currency_base: world_currency_base {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_dollar>, <&world_currency_LALT>;\n mods = <(MOD_LALT|MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_currency_LALT: world_currency_LALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_yen>, <&world_currency_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_currency_RALT: world_currency_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_won>, <&world_currency_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n world_currency_LCTL: world_currency_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_euro>, <&world_currency_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n world_currency_RCTL: world_currency_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&world_currency_pound>, <&world_currency_generic>;\n mods = <(MOD_RSFT)>;\n };\n\n //////////////////////////////////////////////////////////////////////////\n //\n // Emoji layer - modern age pictograms\n //\n //////////////////////////////////////////////////////////////////////////\n\n //\n // EMOJI_GENDER_SIGN_PRESET defines an Emoji gender sign for use as a\n // convenient inward-rolling shortcut on the home row of the layer.\n //\n #ifndef EMOJI_GENDER_SIGN_PRESET\n #define EMOJI_GENDER_SIGN_PRESET 'N' // neutral\n //#define EMOJI_GENDER_SIGN_PRESET 'M' // male\n //#define EMOJI_GENDER_SIGN_PRESET 'F' // female\n #endif\n\n //\n // EMOJI_SKIN_TONE_PRESET defines an Emoji skin tone for use as a\n // convenient inward-rolling shortcut on the home row of the layer.\n //\n #ifndef EMOJI_SKIN_TONE_PRESET\n #define EMOJI_SKIN_TONE_PRESET 'N' // neutral\n //#define EMOJI_SKIN_TONE_PRESET 'L' // light_skin_tone\n //#define EMOJI_SKIN_TONE_PRESET 'l' // medium_light_skin_tone\n //#define EMOJI_SKIN_TONE_PRESET 'M' // medium_skin_tone\n //#define EMOJI_SKIN_TONE_PRESET 'd' // medium_dark_skin_tone\n //#define EMOJI_SKIN_TONE_PRESET 'D' // dark_skin_tone\n #endif\n\n //\n // EMOJI_HAIR_STYLE_PRESET defines an Emoji hair style for use as a\n // convenient inward-rolling shortcut on the home row of the layer.\n //\n #ifndef EMOJI_HAIR_STYLE_PRESET\n #define EMOJI_HAIR_STYLE_PRESET 'N' // neutral\n //#define EMOJI_HAIR_STYLE_PRESET 'B' // bald\n //#define EMOJI_HAIR_STYLE_PRESET 'R' // red_hair\n //#define EMOJI_HAIR_STYLE_PRESET 'C' // curly_hair\n //#define EMOJI_HAIR_STYLE_PRESET 'W' // white_hair\n #endif\n\n //\n // NOTE: edit the emoji.yaml file and run `rake` to generate this:\n //\n\n //\n // codepoints\n //\n UNICODE(emoji_zwj_macro, /* ‍ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N0 &kp N0 &kp D)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N0 &kp N0 &kp D)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N0 &kp N0 &kp D)\n #endif\n )\n emoji_zwj: emoji_zwj {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_zwj_macro>, <&emoji_zwj_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_zwj\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_male_sign_macro, /* ♂ïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_male_sign: emoji_male_sign {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_male_sign_macro>, <&emoji_male_sign_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_male_sign\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_female_sign_macro, /* ♀ïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_female_sign: emoji_female_sign {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_female_sign_macro>, <&emoji_female_sign_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_female_sign\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_right_arrow_macro, /* ➡ïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_right_arrow: emoji_right_arrow {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_right_arrow_macro>, <&emoji_right_arrow_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_right_arrow\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_left_arrow_macro, /* ⮅ïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_left_arrow: emoji_left_arrow {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_left_arrow_macro>, <&emoji_left_arrow_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_left_arrow\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_rainbow_macro, /* 🌈 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N0 &kp N8)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N0 &kp N8)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N0 &kp N8)\n #endif\n )\n emoji_rainbow: emoji_rainbow {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_rainbow_macro>, <&emoji_rainbow_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_rainbow\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_cloudy_macro, /* ïļâ˜ïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_cloudy: emoji_cloudy {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_cloudy_macro>, <&emoji_cloudy_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_cloudy\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_mostly_cloudy_macro, /* ðŸŒĨ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N2 &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N2 &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N2 &kp N5)\n #endif\n )\n emoji_mostly_cloudy: emoji_mostly_cloudy {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_mostly_cloudy_macro>, <&emoji_mostly_cloudy_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_mostly_cloudy\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_partly_cloudy_macro, /* ⛅ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N6 &kp C &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N6 &kp C &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N6 &kp C &kp N5)\n #endif\n )\n emoji_partly_cloudy: emoji_partly_cloudy {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_partly_cloudy_macro>, <&emoji_partly_cloudy_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_partly_cloudy\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_mostly_sunny_macro, /* ïļðŸŒĪïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_mostly_sunny: emoji_mostly_sunny {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_mostly_sunny_macro>, <&emoji_mostly_sunny_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_mostly_sunny\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_sunny_macro, /* ☀ïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_sunny: emoji_sunny {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_sunny_macro>, <&emoji_sunny_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_sunny\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_sunrise_macro, /* 🌅 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N0 &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N0 &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N0 &kp N5)\n #endif\n )\n emoji_sunrise: emoji_sunrise {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_sunrise_macro>, <&emoji_sunrise_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_sunrise\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_sunrise_mountains_macro, /* 🌄 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N0 &kp N4)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N0 &kp N4)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N0 &kp N4)\n #endif\n )\n emoji_sunrise_mountains: emoji_sunrise_mountains {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_sunrise_mountains_macro>, <&emoji_sunrise_mountains_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_sunrise_mountains\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_cityscape_macro, /* ïļðŸ™ïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_cityscape: emoji_cityscape {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_cityscape_macro>, <&emoji_cityscape_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_cityscape\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_cityscape_dusk_macro, /* ïļðŸŒ‡ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_cityscape_dusk: emoji_cityscape_dusk {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_cityscape_dusk_macro>, <&emoji_cityscape_dusk_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_cityscape_dusk\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_cityscape_night_macro, /* 🌃 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N0 &kp N3)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N0 &kp N3)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N0 &kp N3)\n #endif\n )\n emoji_cityscape_night: emoji_cityscape_night {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_cityscape_night_macro>, <&emoji_cityscape_night_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_cityscape_night\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_light_skin_tone_macro, /* ðŸŧ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp F &kp B)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp F &kp B)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp F &kp B)\n #endif\n )\n emoji_light_skin_tone: emoji_light_skin_tone {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_light_skin_tone_macro>, <&emoji_light_skin_tone_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_light_skin_tone\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_medium_light_skin_tone_macro, /* 🏞 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp F &kp C)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp F &kp C)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp F &kp C)\n #endif\n )\n emoji_medium_light_skin_tone: emoji_medium_light_skin_tone {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_medium_light_skin_tone_macro>, <&emoji_medium_light_skin_tone_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_medium_light_skin_tone\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_medium_skin_tone_macro, /* ðŸ― */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp F &kp D)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp F &kp D)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp F &kp D)\n #endif\n )\n emoji_medium_skin_tone: emoji_medium_skin_tone {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_medium_skin_tone_macro>, <&emoji_medium_skin_tone_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_medium_skin_tone\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_medium_dark_skin_tone_macro, /* ðŸū */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp F &kp E)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp F &kp E)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp F &kp E)\n #endif\n )\n emoji_medium_dark_skin_tone: emoji_medium_dark_skin_tone {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_medium_dark_skin_tone_macro>, <&emoji_medium_dark_skin_tone_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_medium_dark_skin_tone\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_dark_skin_tone_macro, /* ðŸŋ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp F &kp F)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp F &kp F)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp F &kp F)\n #endif\n )\n emoji_dark_skin_tone: emoji_dark_skin_tone {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_dark_skin_tone_macro>, <&emoji_dark_skin_tone_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_dark_skin_tone\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_baby_bottle_macro, /* 🍞 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N7 &kp C)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N7 &kp C)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N7 &kp C)\n #endif\n )\n emoji_baby_bottle: emoji_baby_bottle {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_baby_bottle_macro>, <&emoji_baby_bottle_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_baby_bottle\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_baby_macro, /* ðŸ‘ķ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N7 &kp N6)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N7 &kp N6)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N7 &kp N6)\n #endif\n )\n emoji_baby: emoji_baby {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_baby_macro>, <&emoji_baby_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_baby\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_boy_macro, /* ðŸ‘Ķ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N6 &kp N6)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N6 &kp N6)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N6 &kp N6)\n #endif\n )\n emoji_boy: emoji_boy {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_boy_macro>, <&emoji_boy_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_boy\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_girl_macro, /* 👧 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N6 &kp N7)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N6 &kp N7)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N6 &kp N7)\n #endif\n )\n emoji_girl: emoji_girl {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_girl_macro>, <&emoji_girl_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_girl\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_man_macro, /* ðŸ‘Ļ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N6 &kp N8)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N6 &kp N8)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N6 &kp N8)\n #endif\n )\n emoji_man: emoji_man {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_man_macro>, <&emoji_man_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_man\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_woman_macro, /* ðŸ‘Đ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N6 &kp N9)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N6 &kp N9)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N6 &kp N9)\n #endif\n )\n emoji_woman: emoji_woman {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_woman_macro>, <&emoji_woman_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_woman\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_old_man_macro, /* ðŸ‘ī */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N7 &kp N4)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N7 &kp N4)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N7 &kp N4)\n #endif\n )\n emoji_old_man: emoji_old_man {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_old_man_macro>, <&emoji_old_man_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_old_man\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_old_woman_macro, /* ðŸ‘ĩ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N7 &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N7 &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N7 &kp N5)\n #endif\n )\n emoji_old_woman: emoji_old_woman {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_old_woman_macro>, <&emoji_old_woman_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_old_woman\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_white_hair_macro, /* ðŸĶģ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp B &kp N3)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp B &kp N3)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp B &kp N3)\n #endif\n )\n emoji_white_hair: emoji_white_hair {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_white_hair_macro>, <&emoji_white_hair_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_white_hair\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_curly_hair_macro, /* ðŸĶą */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp B &kp N1)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp B &kp N1)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp B &kp N1)\n #endif\n )\n emoji_curly_hair: emoji_curly_hair {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_curly_hair_macro>, <&emoji_curly_hair_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_curly_hair\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_red_hair_macro, /* ðŸĶ° */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp B &kp N0)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp B &kp N0)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp B &kp N0)\n #endif\n )\n emoji_red_hair: emoji_red_hair {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_red_hair_macro>, <&emoji_red_hair_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_red_hair\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_bald_macro, /* ðŸĶē */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp B &kp N2)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp B &kp N2)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp B &kp N2)\n #endif\n )\n emoji_bald: emoji_bald {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_bald_macro>, <&emoji_bald_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_bald\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_new_moon_macro, /* 🌑 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N1)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N1)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N1)\n #endif\n )\n emoji_new_moon: emoji_new_moon {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_new_moon_macro>, <&emoji_new_moon_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_new_moon\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_waxing_crescent_moon_macro, /* 🌒 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N2)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N2)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N2)\n #endif\n )\n emoji_waxing_crescent_moon: emoji_waxing_crescent_moon {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_waxing_crescent_moon_macro>, <&emoji_waxing_crescent_moon_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_waxing_crescent_moon\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_first_quarter_moon_macro, /* 🌓 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N3)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N3)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N3)\n #endif\n )\n emoji_first_quarter_moon: emoji_first_quarter_moon {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_first_quarter_moon_macro>, <&emoji_first_quarter_moon_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_first_quarter_moon\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_waxing_gibbous_moon_macro, /* 🌔 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N4)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N4)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N4)\n #endif\n )\n emoji_waxing_gibbous_moon: emoji_waxing_gibbous_moon {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_waxing_gibbous_moon_macro>, <&emoji_waxing_gibbous_moon_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_waxing_gibbous_moon\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_full_moon_macro, /* 🌕 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N5)\n #endif\n )\n emoji_full_moon: emoji_full_moon {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_full_moon_macro>, <&emoji_full_moon_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_full_moon\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_waning_gibbous_moon_macro, /* 🌖 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N6)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N6)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N6)\n #endif\n )\n emoji_waning_gibbous_moon: emoji_waning_gibbous_moon {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_waning_gibbous_moon_macro>, <&emoji_waning_gibbous_moon_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_waning_gibbous_moon\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_last_quarter_moon_macro, /* 🌗 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N7)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N7)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N7)\n #endif\n )\n emoji_last_quarter_moon: emoji_last_quarter_moon {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_last_quarter_moon_macro>, <&emoji_last_quarter_moon_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_last_quarter_moon\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_waning_crescent_moon_macro, /* 🌘 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N1 &kp N8)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N1 &kp N8)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N1 &kp N8)\n #endif\n )\n emoji_waning_crescent_moon: emoji_waning_crescent_moon {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_waning_crescent_moon_macro>, <&emoji_waning_crescent_moon_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_waning_crescent_moon\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_tada_macro, /* 🎉 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N3 &kp N8 &kp N9)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp C &kp D &kp F &kp N8 &kp N9)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N3 &kp N8 &kp N9)\n #endif\n )\n emoji_tada: emoji_tada {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_tada_macro>, <&emoji_tada_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_tada\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_heart_macro, /* ïļâĪïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_heart: emoji_heart {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_heart_macro>, <&emoji_heart_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_heart\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_fire_macro, /* ðŸ”Ĩ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N5 &kp N2 &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp D &kp N2 &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N5 &kp N2 &kp N5)\n #endif\n )\n emoji_fire: emoji_fire {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_fire_macro>, <&emoji_fire_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_fire\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_muscle_macro, /* 💊 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp A &kp A)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp A &kp A)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp A &kp A)\n #endif\n )\n emoji_muscle: emoji_muscle {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_muscle_macro>, <&emoji_muscle_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_muscle\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_person_climbing_macro, /* 🧗 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp D &kp N7)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp D &kp N7)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp D &kp N7)\n #endif\n )\n emoji_person_climbing: emoji_person_climbing {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_person_climbing_macro>, <&emoji_person_climbing_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_climbing\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_lab_coat_macro, /* ðŸĨž */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N7 &kp C)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N7 &kp C)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N7 &kp C)\n #endif\n )\n emoji_lab_coat: emoji_lab_coat {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_lab_coat_macro>, <&emoji_lab_coat_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_lab_coat\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_rocket_macro, /* 🚀 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N8 &kp N0)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N8 &kp N0)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N8 &kp N0)\n #endif\n )\n emoji_rocket: emoji_rocket {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_rocket_macro>, <&emoji_rocket_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_rocket\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_joy_macro, /* 😂 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N0 &kp N2)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N0 &kp N2)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N0 &kp N2)\n #endif\n )\n emoji_joy: emoji_joy {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_joy_macro>, <&emoji_joy_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_joy\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_rofl_macro, /* ðŸĪĢ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N2 &kp N3)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N2 &kp N3)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N2 &kp N3)\n #endif\n )\n emoji_rofl: emoji_rofl {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_rofl_macro>, <&emoji_rofl_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_rofl\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_star_struck_macro, /* ðŸĪĐ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N2 &kp N9)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N2 &kp N9)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N2 &kp N9)\n #endif\n )\n emoji_star_struck: emoji_star_struck {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_star_struck_macro>, <&emoji_star_struck_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_star_struck\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_love_struck_macro, /* 😍 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N0 &kp D)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N0 &kp D)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N0 &kp D)\n #endif\n )\n emoji_love_struck: emoji_love_struck {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_love_struck_macro>, <&emoji_love_struck_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_love_struck\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_saluting_face_macro, /* ðŸŦĄ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp A &kp E &kp N1)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp E &kp E &kp N1)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp A &kp E &kp N1)\n #endif\n )\n emoji_saluting_face: emoji_saluting_face {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_saluting_face_macro>, <&emoji_saluting_face_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_saluting_face\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_shocked_face_macro, /* ðŸĪŊ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N2 &kp F)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N2 &kp F)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N2 &kp F)\n #endif\n )\n emoji_shocked_face: emoji_shocked_face {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_shocked_face_macro>, <&emoji_shocked_face_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_shocked_face\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_cold_sweat_macro, /* 😰 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N3 &kp N0)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N3 &kp N0)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N3 &kp N0)\n #endif\n )\n emoji_cold_sweat: emoji_cold_sweat {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_cold_sweat_macro>, <&emoji_cold_sweat_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_cold_sweat\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_monocle_face_macro, /* 🧐 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp D &kp N0)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp D &kp N0)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp D &kp N0)\n #endif\n )\n emoji_monocle_face: emoji_monocle_face {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_monocle_face_macro>, <&emoji_monocle_face_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_monocle_face\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_snap_fingers_macro, /* ðŸŦ° */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp A &kp F &kp N0)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp E &kp F &kp N0)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp A &kp F &kp N0)\n #endif\n )\n emoji_snap_fingers: emoji_snap_fingers {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_snap_fingers_macro>, <&emoji_snap_fingers_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_snap_fingers\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_ok_hand_macro, /* 👌 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N4 &kp C)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N4 &kp C)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N4 &kp C)\n #endif\n )\n emoji_ok_hand: emoji_ok_hand {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_ok_hand_macro>, <&emoji_ok_hand_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_ok_hand\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_pray_macro, /* 🙏 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp F)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp F)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp F)\n #endif\n )\n emoji_pray: emoji_pray {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_pray_macro>, <&emoji_pray_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_pray\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_sweat_smile_macro, /* 😅 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N0 &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N0 &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N0 &kp N5)\n #endif\n )\n emoji_sweat_smile: emoji_sweat_smile {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_sweat_smile_macro>, <&emoji_sweat_smile_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_sweat_smile\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_disappointed_macro, /* 😞 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N1 &kp E)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N1 &kp E)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N1 &kp E)\n #endif\n )\n emoji_disappointed: emoji_disappointed {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_disappointed_macro>, <&emoji_disappointed_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_disappointed\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_thinking_macro, /* ðŸĪ” */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N1 &kp N4)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N1 &kp N4)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N1 &kp N4)\n #endif\n )\n emoji_thinking: emoji_thinking {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_thinking_macro>, <&emoji_thinking_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_thinking\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_person_tipping_hand_macro, /* 💁 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N8 &kp N1)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N8 &kp N1)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N8 &kp N1)\n #endif\n )\n emoji_person_tipping_hand: emoji_person_tipping_hand {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_person_tipping_hand_macro>, <&emoji_person_tipping_hand_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_tipping_hand\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_person_gesturing_ok_macro, /* 🙆 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp N6)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp N6)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp N6)\n #endif\n )\n emoji_person_gesturing_ok: emoji_person_gesturing_ok {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_person_gesturing_ok_macro>, <&emoji_person_gesturing_ok_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_gesturing_ok\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_person_bowing_macro, /* 🙇 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp N7)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp N7)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp N7)\n #endif\n )\n emoji_person_bowing: emoji_person_bowing {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_person_bowing_macro>, <&emoji_person_bowing_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_bowing\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_person_raising_hand_macro, /* 🙋 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp B)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp B)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp B)\n #endif\n )\n emoji_person_raising_hand: emoji_person_raising_hand {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_person_raising_hand_macro>, <&emoji_person_raising_hand_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_raising_hand\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_person_gesturing_no_macro, /* 🙅 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp N5)\n #endif\n )\n emoji_person_gesturing_no: emoji_person_gesturing_no {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_person_gesturing_no_macro>, <&emoji_person_gesturing_no_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_gesturing_no\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_person_shrugging_macro, /* ðŸĪ· */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N3 &kp N7)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N3 &kp N7)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N3 &kp N7)\n #endif\n )\n emoji_person_shrugging: emoji_person_shrugging {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_person_shrugging_macro>, <&emoji_person_shrugging_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_person_shrugging\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_checkoff_macro, /* ✅ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N7 &kp N0 &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N7 &kp N0 &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N7 &kp N0 &kp N5)\n #endif\n )\n emoji_checkoff: emoji_checkoff {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_checkoff_macro>, <&emoji_checkoff_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_checkoff\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_100_macro, /* ðŸ’Ŋ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp A &kp F)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp A &kp F)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp A &kp F)\n #endif\n )\n emoji_100: emoji_100 {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_100_macro>, <&emoji_100_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_100\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_warning_macro, /* ⚠ïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_warning: emoji_warning {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_warning_macro>, <&emoji_warning_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_warning\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_x_macro, /* ❌ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N7 &kp N4 &kp C)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N7 &kp N4 &kp C)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N7 &kp N4 &kp C)\n #endif\n )\n emoji_x: emoji_x {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_x_macro>, <&emoji_x_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_x\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_question_macro, /* ❓ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N7 &kp N5 &kp N3)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N7 &kp N5 &kp N3)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N7 &kp N5 &kp N3)\n #endif\n )\n emoji_question: emoji_question {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_question_macro>, <&emoji_question_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_question\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_astronaut_macro, /* 🧑‍🚀 */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_astronaut: emoji_astronaut {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_astronaut_macro>, <&emoji_astronaut_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_astronaut\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_nerd_macro, /* ðŸĪ“ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N9 &kp N1 &kp N3)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp D &kp N1 &kp N3)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N9 &kp N1 &kp N3)\n #endif\n )\n emoji_nerd: emoji_nerd {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_nerd_macro>, <&emoji_nerd_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_nerd\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_sparkles_macro, /* âœĻ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N2 &kp N7 &kp N2 &kp N8)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp N2 &kp N7 &kp N2 &kp N8)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N2 &kp N7 &kp N2 &kp N8)\n #endif\n )\n emoji_sparkles: emoji_sparkles {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_sparkles_macro>, <&emoji_sparkles_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_sparkles\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_raised_hands_macro, /* 🙌 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp C)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp C)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp C)\n #endif\n )\n emoji_raised_hands: emoji_raised_hands {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_raised_hands_macro>, <&emoji_raised_hands_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_raised_hands\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_point_up_macro, /* ☝ïļ */\n #if UNICODE_TARGET_OS == 'L'\n 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)\n #elif UNICODE_TARGET_OS == 'M'\n 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)\n #elif UNICODE_TARGET_OS == 'W'\n 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)\n #endif\n )\n emoji_point_up: emoji_point_up {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_point_up_macro>, <&emoji_point_up_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_point_up\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_thumbs_up_macro, /* 👍 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N4 &kp D)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N4 &kp D)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N4 &kp D)\n #endif\n )\n emoji_thumbs_up: emoji_thumbs_up {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_thumbs_up_macro>, <&emoji_thumbs_up_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_thumbs_up\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n\n //\n // characters\n //\n emoji_moon_complete: emoji_moon_complete {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_new_moon>, <&emoji_full_moon>;\n mods = ;\n };\n emoji_moon_gibbous: emoji_moon_gibbous {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_waning_gibbous_moon>, <&emoji_waxing_gibbous_moon>;\n mods = ;\n };\n emoji_moon_quarter: emoji_moon_quarter {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_last_quarter_moon>, <&emoji_first_quarter_moon>;\n mods = ;\n };\n emoji_moon_crescent: emoji_moon_crescent {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_waning_crescent_moon>, <&emoji_waxing_crescent_moon>;\n mods = ;\n };\n UNICODE(emoji_moon_stars_magic_macro, /* 🊄 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp A &kp N8 &kp N4)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp E &kp N8 &kp N4)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp A &kp N8 &kp N4)\n #endif\n )\n emoji_moon_stars_magic: emoji_moon_stars_magic {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_moon_stars_magic_macro>, <&emoji_moon_stars_magic_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_moon_stars_magic\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_moon_stars: emoji_moon_stars {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_sparkles>, <&emoji_moon_stars_magic>;\n mods = ;\n };\n UNICODE(emoji_face_smile_up_macro, /* 🙂 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp N2)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp N2)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp N2)\n #endif\n )\n emoji_face_smile_up: emoji_face_smile_up {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_face_smile_up_macro>, <&emoji_face_smile_up_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_smile_up\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_face_smile_down_macro, /* 🙃 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N4 &kp N3)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N4 &kp N3)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N4 &kp N3)\n #endif\n )\n emoji_face_smile_down: emoji_face_smile_down {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_face_smile_down_macro>, <&emoji_face_smile_down_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_smile_down\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_face_smile: emoji_face_smile {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_face_smile_up>, <&emoji_face_smile_down>;\n mods = ;\n };\n emoji_face_laugh: emoji_face_laugh {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_joy>, <&emoji_rofl>;\n mods = ;\n };\n emoji_face_eyes: emoji_face_eyes {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_star_struck>, <&emoji_love_struck>;\n mods = ;\n };\n UNICODE(emoji_face_joke_wink_macro, /* 😉 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N0 &kp N9)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N0 &kp N9)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N0 &kp N9)\n #endif\n )\n emoji_face_joke_wink: emoji_face_joke_wink {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_face_joke_wink_macro>, <&emoji_face_joke_wink_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_joke_wink\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_face_joke_tounge_macro, /* 😜 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N1 &kp C)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N1 &kp C)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N1 &kp C)\n #endif\n )\n emoji_face_joke_tounge: emoji_face_joke_tounge {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_face_joke_tounge_macro>, <&emoji_face_joke_tounge_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_joke_tounge\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_face_joke: emoji_face_joke {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_face_joke_wink>, <&emoji_face_joke_tounge>;\n mods = ;\n };\n UNICODE(emoji_face_fear_scared_macro, /* ðŸ˜Ļ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N2 &kp N8)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N2 &kp N8)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N2 &kp N8)\n #endif\n )\n emoji_face_fear_scared: emoji_face_fear_scared {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_face_fear_scared_macro>, <&emoji_face_fear_scared_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_fear_scared\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n UNICODE(emoji_face_fear_scream_macro, /* ðŸ˜ą */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N3 &kp N1)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N3 &kp N1)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N3 &kp N1)\n #endif\n )\n emoji_face_fear_scream: emoji_face_fear_scream {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_face_fear_scream_macro>, <&emoji_face_fear_scream_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_fear_scream\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_face_fear: emoji_face_fear {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_face_fear_scared>, <&emoji_face_fear_scream>;\n mods = ;\n };\n UNICODE(emoji_face_surprise_dizzy_macro, /* ðŸ˜ĩ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N3 &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N3 &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N3 &kp N5)\n #endif\n )\n emoji_face_surprise_dizzy: emoji_face_surprise_dizzy {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_face_surprise_dizzy_macro>, <&emoji_face_surprise_dizzy_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_face_surprise_dizzy\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_face_surprise: emoji_face_surprise {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_shocked_face>, <&emoji_face_surprise_dizzy>;\n mods = ;\n };\n UNICODE(emoji_gesture_attention_wave_macro, /* 👋 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N4 &kp B)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N4 &kp B)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N4 &kp B)\n #endif\n )\n emoji_gesture_attention_wave: emoji_gesture_attention_wave {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_gesture_attention_wave_macro>, <&emoji_gesture_attention_wave_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_attention_wave\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_gesture_attention: emoji_gesture_attention {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_snap_fingers>, <&emoji_gesture_attention_wave>;\n mods = ;\n };\n UNICODE(emoji_gesture_approval_cool_macro, /* 😎 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N0 &kp E)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N0 &kp E)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N0 &kp E)\n #endif\n )\n emoji_gesture_approval_cool: emoji_gesture_approval_cool {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_gesture_approval_cool_macro>, <&emoji_gesture_approval_cool_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_approval_cool\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_gesture_approval: emoji_gesture_approval {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_ok_hand>, <&emoji_gesture_approval_cool>;\n mods = ;\n };\n emoji_gesture_gratitude: emoji_gesture_gratitude {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_pray>, <&emoji_saluting_face>;\n mods = ;\n };\n emoji_gesture_anxiety: emoji_gesture_anxiety {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_sweat_smile>, <&emoji_cold_sweat>;\n mods = ;\n };\n UNICODE(emoji_gesture_despair_cry_macro, /* ðŸ˜Ē */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N6 &kp N2 &kp N2)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp E &kp N2 &kp N2)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N6 &kp N2 &kp N2)\n #endif\n )\n emoji_gesture_despair_cry: emoji_gesture_despair_cry {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_gesture_despair_cry_macro>, <&emoji_gesture_despair_cry_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_despair_cry\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_gesture_despair: emoji_gesture_despair {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_disappointed>, <&emoji_gesture_despair_cry>;\n mods = ;\n };\n emoji_gesture_curious: emoji_gesture_curious {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_thinking>, <&emoji_monocle_face>;\n mods = ;\n };\n UNICODE(emoji_gesture_point_you_macro, /* ðŸŦĩ */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp A &kp F &kp N5)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp E &kp D &kp E &kp F &kp N5)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp A &kp F &kp N5)\n #endif\n )\n emoji_gesture_point_you: emoji_gesture_point_you {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_gesture_point_you_macro>, <&emoji_gesture_point_you_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_point_you\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_gesture_point: emoji_gesture_point {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_point_up>, <&emoji_gesture_point_you>;\n mods = ;\n };\n UNICODE(emoji_gesture_thumbs_down_macro, /* 👎 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N4 &kp E)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N4 &kp E)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N4 &kp E)\n #endif\n )\n emoji_gesture_thumbs_down: emoji_gesture_thumbs_down {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_gesture_thumbs_down_macro>, <&emoji_gesture_thumbs_down_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_thumbs_down\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_gesture_thumbs: emoji_gesture_thumbs {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_thumbs_up>, <&emoji_gesture_thumbs_down>;\n mods = ;\n };\n UNICODE(emoji_gesture_hands_clap_macro, /* 👏 */\n #if UNICODE_TARGET_OS == 'L'\n UNICODE_SEQ_LINUX(&kp N1 &kp F &kp N4 &kp N4 &kp F)\n #elif UNICODE_TARGET_OS == 'M'\n UNICODE_SEQ_MACOS(&kp D &kp N8 &kp N3 &kp D &kp D &kp C &kp N4 &kp F)\n #elif UNICODE_TARGET_OS == 'W'\n UNICODE_SEQ_WINDOWS(&kp N0 &kp N1 &kp F &kp N4 &kp N4 &kp F)\n #endif\n )\n emoji_gesture_hands_clap: emoji_gesture_hands_clap {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_gesture_hands_clap_macro>, <&emoji_gesture_hands_clap_macro>;\n mods = <(~(\n#ifdef WORLD_USE_COMPOSE_FOR_emoji_gesture_hands_clap\nCOMPOSE_MORPH_MODS\n#else\nUNICODE_MORPH_MODS\n#endif\n))>;\n };\n emoji_gesture_hands: emoji_gesture_hands {\n compatible = \"zmk,behavior-mod-morph\";\n #binding-cells = <0>;\n bindings = <&emoji_raised_hands>, <&emoji_gesture_hands_clap>;\n mods = ;\n };\n};\n/*HACK*/};\n#if EMOJI_GENDER_SIGN_PRESET == 'N'\n emoji_gender_sign_preset: &none {};\n#elif EMOJI_GENDER_SIGN_PRESET == 'M'\n emoji_gender_sign_preset: &emoji_male_sign {};\n#elif EMOJI_GENDER_SIGN_PRESET == 'F'\n emoji_gender_sign_preset: &emoji_female_sign {};\n#endif\n\n#if EMOJI_SKIN_TONE_PRESET == 'N'\n emoji_skin_tone_preset: &none {};\n#elif EMOJI_SKIN_TONE_PRESET == 'L'\n emoji_skin_tone_preset: &emoji_light_skin_tone {};\n#elif EMOJI_SKIN_TONE_PRESET == 'l'\n emoji_skin_tone_preset: &emoji_medium_light_skin_tone {};\n#elif EMOJI_SKIN_TONE_PRESET == 'M'\n emoji_skin_tone_preset: &emoji_medium_skin_tone {};\n#elif EMOJI_SKIN_TONE_PRESET == 'd'\n emoji_skin_tone_preset: &emoji_medium_dark_skin_tone {};\n#elif EMOJI_SKIN_TONE_PRESET == 'D'\n emoji_skin_tone_preset: &emoji_dark_skin_tone {};\n#endif\n\n#if EMOJI_HAIR_STYLE_PRESET == 'N'\n emoji_hair_style_preset: &none {};\n#elif EMOJI_HAIR_STYLE_PRESET == 'B'\n emoji_hair_style_preset: &emoji_bald {};\n#elif EMOJI_HAIR_STYLE_PRESET == 'R'\n emoji_hair_style_preset: &emoji_red_hair {};\n#elif EMOJI_HAIR_STYLE_PRESET == 'C'\n emoji_hair_style_preset: &emoji_curly_hair {};\n#elif EMOJI_HAIR_STYLE_PRESET == 'W'\n emoji_hair_style_preset: &emoji_white_hair {};\n#endif\n/*HACK*//{\n\n//////////////////////////////////////////////////////////////////////////\n//\n// Mouse keys (control mouse via keyboard) -- requires PR23 beta firmware:\n// select \"community.pr23.mouse-keys\" from the drop-down menu located at\n// Glove80 Layout Editor > Settings > Advanced Settings > Firmware Version\n//\n// - https://github.com/moergo-sc/zmk/pull/23\n// - https://gist.github.com/krissen/dd27082e7ab0575619c7a31f4d2ec7ae\n// - https://github.com/zmkfirmware/zmk/compare/main...urob:zmk:mouse-3.2\n//\n//////////////////////////////////////////////////////////////////////////\n\n//\n// MOUSE_MOTION_DELAY defines how long to wait (milliseconds) before starting\n// to move the mouse pointer.\n//\n#ifndef MOUSE_MOTION_DELAY\n#define MOUSE_MOTION_DELAY 0\n#endif\n\n//\n// MOUSE_MOTION_ACCELERATION_EXPONENT sets how the mouse pointer accelerates:\n//\n// acceleration exponent 0: uniform speed\n// acceleration exponent 1: uniform acceleration\n// acceleration exponent 2: uniform jerk\n//\n#ifndef MOUSE_MOTION_ACCELERATION_EXPONENT\n#define MOUSE_MOTION_ACCELERATION_EXPONENT 1\n#endif\n\n//\n// MOUSE_MOTION_TIME_TO_MAXIMUM_SPEED defines how long to wait (milliseconds)\n// before the mouse pointer speed is suddenly boosted to the maximum value.\n//\n#ifndef MOUSE_MOTION_TIME_TO_MAXIMUM_SPEED\n#define MOUSE_MOTION_TIME_TO_MAXIMUM_SPEED 300\n#endif\n\n//\n// MOUSE_MOTION_MAXIMUM_SPEED defines how quickly the mouse pointer can move.\n//\n#ifndef MOUSE_MOTION_MAXIMUM_SPEED\n#define MOUSE_MOTION_MAXIMUM_SPEED 600\n#endif\n\n//\n// MOUSE_SCROLL_DELAY defines how long to wait (milliseconds) before starting\n// to move the mouse pointer.\n//\n#ifndef MOUSE_SCROLL_DELAY\n#define MOUSE_SCROLL_DELAY 0\n#endif\n\n//\n// MOUSE_SCROLL_ACCELERATION_EXPONENT sets how the mouse pointer accelerates:\n//\n// acceleration exponent 0: uniform speed\n// acceleration exponent 1: uniform acceleration\n// acceleration exponent 2: uniform jerk\n//\n#ifndef MOUSE_SCROLL_ACCELERATION_EXPONENT\n#define MOUSE_SCROLL_ACCELERATION_EXPONENT 0\n#endif\n\n//\n// MOUSE_SCROLL_TIME_TO_MAXIMUM_SPEED defines how long to wait (milliseconds)\n// before the mouse pointer speed is suddenly boosted to the maximum value.\n//\n#ifndef MOUSE_SCROLL_TIME_TO_MAXIMUM_SPEED\n#define MOUSE_SCROLL_TIME_TO_MAXIMUM_SPEED 300\n#endif\n\n//\n// MOUSE_SCROLL_MAXIMUM_SPEED defines how quickly the mouse wheel can scroll.\n//\n#ifndef MOUSE_SCROLL_MAXIMUM_SPEED\n#define MOUSE_SCROLL_MAXIMUM_SPEED 10\n#endif\n/*HACK*/};\n#if __has_include()\n // ==== MOUSE-KEY
====\n #define ZMK_MOUSE_DEFAULT_MOVE_VAL MOUSE_MOTION_MAXIMUM_SPEED\n #define ZMK_MOUSE_DEFAULT_SCRL_VAL MOUSE_SCROLL_MAXIMUM_SPEED\n #include \n &mmv {\n delay-ms = ;\n acceleration-exponent = ;\n time-to-max-speed-ms = ;\n };\n &msc {\n delay-ms = ;\n acceleration-exponent = ;\n time-to-max-speed-ms = ;\n };\n // ==== MOUSE-KEY
=====\n#else\n #define mkp none\n #define mmv none\n #define msc none\n #define LCLK\n #define MCLK\n #define RCLK\n #define MB1\n #define MB2\n #define MB3\n #define MB4\n #define MB5\n #define MB6\n #define MB7\n #define MB8\n #define MOVE_UP\n #define MOVE_DOWN\n #define MOVE_LEFT\n #define MOVE_RIGHT\n #define SCRL_UP\n #define SCRL_DOWN\n #define SCRL_LEFT\n #define SCRL_RIGHT\n#endif\n/*HACK*//{\n", + "custom_devicetree": "", + "config_parameters": [], + "macros": [ + { + "name": "&dubdub", + "description": "", + "bindings": [ + { + "value": "&kp", + "params": [ + { + "value": "SPACE", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "SPACE", + "params": [] + } + ] + } + ], + "params": [] + }, + { + "name": "&fg", + "description": "", + "bindings": [ + { + "value": "&kp", + "params": [ + { + "value": "F", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "G", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "RET", + "params": [] + } + ] + } + ], + "params": [] + }, + { + "name": "&viquit", + "description": "", + "bindings": [ + { + "value": "&kp", + "params": [ + { + "value": "ESC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "COLON", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "W", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "Q", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "A", + "params": [] + } + ] + } + ], + "params": [] + }, + { + "name": "&viquitf", + "description": "", + "bindings": [ + { + "value": "&kp", + "params": [ + { + "value": "ESC", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "COLON", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "W", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "Q", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "A", + "params": [] + } + ] + }, + { + "value": "&kp", + "params": [ + { + "value": "EXCL", + "params": [] + } + ] + } + ], + "params": [] + } + ] +} \ No newline at end of file