diff --git a/README.md b/README.md index 98d8cc7..3cccd50 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ transition to the full glory, at your convenience. ## Keymap -https://my.glove80.com/#/layout/user/f565a122-5fcd-4d95-aa02-97776dc8a46d +https://my.glove80.com/#/layout/user/aa8cb734-8ea5-4123-a45f-60ee8852a1f7 ### Legend diff --git a/keymap.dtsi b/keymap.dtsi index 06ff739..b583978 100644 --- a/keymap.dtsi +++ b/keymap.dtsi @@ -4,7 +4,7 @@ // /* EXAMPLE: */ #define EMOJI_HAIR_STYLE_PRESET 3 // curly_hair // ////////////////////////////////////////////////////////////////////// // -// Sunaku's Keymap v29 featuring Arno's Engram 2.0 layout with Miryoku +// Sunaku's Keymap v30 -- "Glorious Engrammer" // - https://github.com/sunaku/glove80-keymaps // ////////////////////////////////////////////////////////////////////// diff --git a/keymap.dtsi.erb b/keymap.dtsi.erb index 7e8f2a6..dbc2b15 100644 --- a/keymap.dtsi.erb +++ b/keymap.dtsi.erb @@ -4,7 +4,7 @@ // /* EXAMPLE: */ #define EMOJI_HAIR_STYLE_PRESET 3 // curly_hair // ////////////////////////////////////////////////////////////////////// // -// Sunaku's Keymap v29 featuring Arno's Engram 2.0 layout with Miryoku +// Sunaku's Keymap v30 -- "Glorious Engrammer" // - https://github.com/sunaku/glove80-keymaps // ////////////////////////////////////////////////////////////////////// diff --git a/keymap.json b/keymap.json index ac9fbc3..9eaec56 100644 --- a/keymap.json +++ b/keymap.json @@ -1,28 +1,28 @@ { "keyboard": "glove80", "uuid": "", - "date": 1699922344, + "date": 1699941981, "creator": "", - "parent_uuid": "f565a122-5fcd-4d95-aa02-97776dc8a46d", + "parent_uuid": "aa8cb734-8ea5-4123-a45f-60ee8852a1f7", "firmware_api_version": "1", "locale": "en-US", - "title": "Sunaku's Glorious Engrammer Keymap WIP", - "notes": "Sunaku's Glorious Engrammer Keymap WIP\n- for setup instructions: https://github.com/sunaku/glove80-keymaps#readme\n- for release notes: https://github.com/sunaku/glove80-keymaps/releases/tag/v30\n- for upgrade diffs: https://github.com/sunaku/glove80-keymaps/compare/v29...v30\n\nSummary:\n- WIP\n\nChanges:\n- Added other popular layouts (QWERTY, Dvorak, and Colemak/DH) as \"training wheels\" to aid your transition to the full glory, at your convenience. Use Magic+NumberRow (1-5) to activate them dynamically, or bake them into the firmware as your default base layout using the drag & drop Layer reordering feature in the Glove80 Layout Editor.", + "title": "Sunaku's Keymap v30 (Glorious Engrammer)", + "notes": "Sunaku's Keymap v30 for the \"Glorious Engrammer\" 🧑‍🚀🚀✨\n- Intro & setup: https://github.com/sunaku/glove80-keymaps\n- Release notes: https://github.com/sunaku/glove80-keymaps/releases/tag/v30\n- Upgrade diffs: https://github.com/sunaku/glove80-keymaps/compare/v29...v30\n\nRelease:\n- Hey everyone, I'm pleased to announce a new version 30 of my Glove80 keymaps featuring an improved symbol layer design (balanced triangles) and the unification of my Engram/mer keymaps into a single keymap along with a few popular keyboard layouts (which you can activate dynamically via Magic+N or set as the base layer when compiling your keymap) in order to welcome other layout users on the path to a glorious typing experience. 🖖\n\nChanges:\n- Added other popular layouts (QWERTY, Dvorak, and Colemak/DH) as \"training wheels\" to aid your transition to the full glory, at your convenience. Use Magic+NumberRow (1-5) to activate them dynamically, or bake them into the firmware as your default base layout using the drag & drop Layer reordering feature in the Glove80 Layout Editor.\n- Symbol layer: move at sign down to bottom left corner; it's too far to reach up, and kinda redundant with Shift+2 on base layer.\n- Symbol layer: spread ampersand and plus apart, putting square brackets in between. Thanks to Bryan Forbes for design feedback.\n- Symbol layer: add space on right hand's home block for spacegrams, so you needn't let go of symbol layer key to access spacebar.\n- Symbol layer: put spacegram keys on right hand's home row, pushing up home row mods to the upper row (since I rarely use them).", "tags": [ "sunaku", - "engrammer", "engram", "dvorak", - "colemak-dh", "colemak", - "qwerty", "miryoku", "home-row-mods", + "gaming", + "programming", + "symbol-layer", "vim" ], "unlisted": false, "layer_names": [ - "Base", + "Engrammer", "Engram", "Dvorak", "ColemakDH", @@ -7146,13 +7146,8 @@ "params": [] }, { - "value": "&kp", - "params": [ - { - "value": "AT", - "params": [] - } - ] + "value": "&none", + "params": [] }, { "value": "&kp", @@ -7282,20 +7277,40 @@ "params": [] }, { - "value": "&none", - "params": [] + "value": "&kp", + "params": [ + { + "value": "LSHFT", + "params": [] + } + ] }, { - "value": "&none", - "params": [] + "value": "&kp", + "params": [ + { + "value": "LCTRL", + "params": [] + } + ] }, { - "value": "&none", - "params": [] + "value": "&kp", + "params": [ + { + "value": "LALT", + "params": [] + } + ] }, { - "value": "&none", - "params": [] + "value": "&kp", + "params": [ + { + "value": "LGUI", + "params": [] + } + ] }, { "value": "&none", @@ -7363,7 +7378,7 @@ "value": "&kp", "params": [ { - "value": "LSHFT", + "value": "BSPC", "params": [] } ] @@ -7372,7 +7387,7 @@ "value": "&kp", "params": [ { - "value": "LCTRL", + "value": "TAB", "params": [] } ] @@ -7381,7 +7396,7 @@ "value": "&kp", "params": [ { - "value": "LALT", + "value": "SPACE", "params": [] } ] @@ -7390,7 +7405,7 @@ "value": "&kp", "params": [ { - "value": "LGUI", + "value": "RET", "params": [] } ] @@ -7497,16 +7512,27 @@ "params": [] }, { - "value": "&none", - "params": [] - }, - { - "value": "&none", - "params": [] + "value": "&kp", + "params": [ + { + "value": "DEL", + "params": [] + } + ] }, { - "value": "&none", - "params": [] + "value": "&kp", + "params": [ + { + "value": "LS", + "params": [ + { + "value": "TAB", + "params": [] + } + ] + } + ] }, { "value": "&none", @@ -7524,7 +7550,7 @@ "value": "&kp", "params": [ { - "value": "LBKT", + "value": "AT", "params": [] } ] @@ -7542,7 +7568,7 @@ "value": "&kp", "params": [ { - "value": "PLUS", + "value": "LBKT", "params": [] } ] @@ -7556,6 +7582,15 @@ } ] }, + { + "value": "&kp", + "params": [ + { + "value": "PLUS", + "params": [] + } + ] + }, { "value": "&kp", "params": [ @@ -10484,6 +10519,6 @@ } ] ], - "custom_defined_behaviors": "//////////////////////////////////////////////////////////////////////\n// NOTE: Use the `#define` settings below to customize this keymap! //\n// You can override them here instead of modifying them down there. //\n// /* EXAMPLE: */ #define EMOJI_HAIR_STYLE_PRESET 3 // curly_hair //\n//////////////////////////////////////////////////////////////////////\n//\n// Sunaku's Keymap v29 featuring Arno's Engram 2.0 layout with Miryoku\n// - https://github.com/sunaku/glove80-keymaps\n//\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 // 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 270 // 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 170 // global-quick-tap-ms\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 // SHIFT_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 SHIFT_HOLDING_TYPE\n #define SHIFT_HOLDING_TYPE \"tap-preferred\"\n #endif\n\n //\n // SHIFT_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 // CAUTION: You'll need to perform inward rolls from pinky->ring->middle\n // fingers toward the index fingers when activating multiple modifiers\n // because `hold-trigger-on-release` is disabled for the index fingers.\n // Otherwise, you may be surprised that the index fingers' modifier is\n // sent immediately without the rest of your multi-mod chord when you\n // perform outward rolls from your index fingers toward your pinkies.\n //\n #ifndef SHIFT_HOLDING_TIME\n #define SHIFT_HOLDING_TIME 170\n #endif\n\n //\n // SHIFT_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 SHIFT_STREAK_DECAY\n #define SHIFT_STREAK_DECAY 70 // global-quick-tap-ms\n #endif\n\n //\n // SHIFT_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 SHIFT_REPEAT_DECAY\n #define SHIFT_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_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 170\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 200 // \"tap then hold\" for key auto-repeat\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 //\n // Home row mod-tap keys for all except index fingers\n //\n homey_left: miryoku_home_row_mods_left_hand {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"HOME_ROW_MODS_LEFT_HAND\";\n flavor = HOMEY_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 homey_right: miryoku_home_row_mods_right_hand {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"HOME_ROW_MODS_RIGHT_HAND\";\n flavor = HOMEY_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\n //\n // Special home row mod-tap keys for the index fingers\n //\n shift_left: miryoku_home_row_mods_left_shift_shift {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"HOME_ROW_MODS_LEFT_SHIFT_SHIFT\";\n flavor = SHIFT_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n //hold-trigger-on-release; // don't wait for other mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n shift_right: miryoku_home_row_mods_right_shift_shift {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"HOME_ROW_MODS_RIGHT_SHIFT_SHIFT\";\n flavor = SHIFT_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n //hold-trigger-on-release; // don't wait for other mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n\n //\n // Thumb cluster hold-tap keys for Miryoku layers\n //\n thumb: miryoku_thumb_layer {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"MIRYOKU_THUMB_LAYER\";\n flavor = THUMB_HOLDING_TYPE;\n tapping-term-ms = ;\n quick-tap-ms = ; // enable repeat\n //global-quick-tap; // no typing streak\n //retro-tap; // don't allow slow (hold-like) taps\n #binding-cells = <2>;\n bindings = <&mo>, <&kp>;\n };\n space: miryoku_thumb_layer_spacebar {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"MIRYOKU_THUMB_LAYER_SPACEBAR\";\n flavor = THUMB_HOLDING_TYPE;\n tapping-term-ms = ;\n quick-tap-ms = ; // enable repeat\n //global-quick-tap; // no typing streak\n retro-tap; // allow slow (hold-like) taps\n #binding-cells = <2>;\n bindings = <&mo>, <&kp>;\n };\n\n //////////////////////////////////////////////////////////////////////////\n //\n // Custom shifted pairs\n //\n //////////////////////////////////////////////////////////////////////////\n\n //\n // Shift + CapsWord = CapsLock\n //\n cappy: capsword_and_capslock {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"CAPSWORD_AND_CAPSLOCK\";\n #binding-cells = <0>;\n bindings = <&caps_word>, <&kp CAPSLOCK>;\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_1: engram_one_and_pipe {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_ONE_AND_PIPE\";\n #binding-cells = <0>;\n bindings = <&kp N1>, <&kp PIPE>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_2: engram_two_and_equal {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_TWO_AND_EQUAL\";\n #binding-cells = <0>;\n bindings = <&kp N2>, <&kp EQUAL>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_3: engram_three_and_tilde {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_THREE_AND_TILDE\";\n #binding-cells = <0>;\n bindings = <&kp N3>, <&kp TILDE>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_4: engram_four_and_plus {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_FOUR_AND_PLUS\";\n #binding-cells = <0>;\n bindings = <&kp N4>, <&kp PLUS>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_5: engram_five_and_less_than {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_FIVE_AND_LESS_THAN\";\n #binding-cells = <0>;\n bindings = <&kp N5>, <&kp LESS_THAN>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_6: engram_six_and_greater_than {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_SIX_AND_GREATER_THAN\";\n #binding-cells = <0>;\n bindings = <&kp N6>, <&kp GREATER_THAN>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_7: engram_seven_and_caret {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_SEVEN_AND_CARET\";\n #binding-cells = <0>;\n bindings = <&kp N7>, <&kp CARET>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_8: engram_eight_and_ampersand {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_EIGHT_AND_AMPERSAND\";\n #binding-cells = <0>;\n bindings = <&kp N8>, <&kp AMPERSAND>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_9: engram_nine_and_percent {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_NINE_AND_PERCENT\";\n #binding-cells = <0>;\n bindings = <&kp N9>, <&kp PERCENT>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_0: engram_zero_and_asterisk {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_ZERO_AND_ASTERISK\";\n #binding-cells = <0>;\n bindings = <&kp N0>, <&kp ASTERISK>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_apos: engram_apostrophe_and_left_parenthesis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_APOSTROPHE_AND_LEFT_PARENTHESIS\";\n #binding-cells = <0>;\n bindings = <&kp APOSTROPHE>, <&kp LEFT_PARENTHESIS>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_dquote: engram_double_quotes_and_right_parenthesis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_DOUBLE_QUOTES_AND_RIGHT_PARENTHESIS\";\n #binding-cells = <0>;\n bindings = <&kp DOUBLE_QUOTES>, <&kp RIGHT_PARENTHESIS>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_comma: engram_comma_and_semicolon {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_COMMA_AND_SEMICOLON\";\n #binding-cells = <0>;\n bindings = <&kp COMMA>, <&kp SEMICOLON>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_period: engram_period_and_colon {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_PERIOD_AND_COLON\";\n #binding-cells = <0>;\n bindings = <&kp PERIOD>, <&kp COLON>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_question: engram_question_and_exclamation {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_QUESTION_AND_EXCLAMATION\";\n #binding-cells = <0>;\n bindings = <&kp QUESTION>, <&kp EXCLAMATION>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_hash: engram_hash_and_dollar {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_HASH_AND_DOLLAR\";\n #binding-cells = <0>;\n bindings = <&kp HASH>, <&kp DOLLAR>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_at: engram_at_and_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_AT_AND_GRAVE\";\n #binding-cells = <0>;\n bindings = <&kp AT>, <&kp GRAVE>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_slash: engram_slash_and_backslash {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_SLASH_AND_BACKSLASH\";\n #binding-cells = <0>;\n bindings = <&kp SLASH>, <&kp BACKSLASH>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\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 //\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 label = \"SELECT_WORD\";\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 LC(RIGHT) &kp LC(LEFT) &kp LC(LS(RIGHT))>;\n )\n ZMK_MACRO(select_word_left,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp LC(LEFT) &kp LC(RIGHT) &kp LC(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 label = \"EXTEND_WORD\";\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 LC(LS(RIGHT))>;\n )\n ZMK_MACRO(extend_word_left,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp LC(LS(LEFT))>;\n )\n\n //\n // select current line\n //\n select_line: select_line {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"SELECT_LINE\";\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 label = \"EXTEND_LINE\";\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 // UNICODE_TARGET_OS defines which operating system you're targeting\n // for use with the UNICODE() macro. This is needed because 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 // - https://ladedu.com/how-to-enter-unicode-characters-on-a-mac/\n // - https://unicode-explorer.com/articles/how-to-type-unicode-characters-in-linux\n // - https://unicode-explorer.com/articles/how-to-type-unicode-characters-in-windows\n //\n #ifndef UNICODE_TARGET_OS\n #define UNICODE_TARGET_OS 1 // linux\n //#define UNICODE_TARGET_OS 2 // macos\n //#define UNICODE_TARGET_OS 3 // windows\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 // NOTE: edit the emoji.yaml file and run `rake` to generate this:\n //\n\n //\n // codepoints\n //\n\n /* ° */ UNICODE(world_degree_sign,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp B &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp B &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp B &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* § */ UNICODE(world_section_sign,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp A &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp A &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp A &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ¶ */ UNICODE(world_paragraph_sign,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp B &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp B &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp B &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* º */ UNICODE(world_o_ordinal,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp B &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp B &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp B &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ª */ UNICODE(world_a_ordinal,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp A &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp A &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp A &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ¡ */ UNICODE(world_exclaim_left,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp A &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp A &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp A &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ¿ */ UNICODE(world_question_left,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp B &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp B &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp B &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* « */ UNICODE(world_quote_left,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp A &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp A &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp A &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n /* » */ UNICODE(world_quote_right,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp B &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp B &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp B &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n //\n // characters\n //\n\n /* ç */ UNICODE(world_c_cedilla_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ç */ UNICODE(world_c_cedilla_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n world_c_cedilla: world_c_cedilla {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_C_CEDILLA\";\n #binding-cells = <0>;\n bindings = <&world_c_cedilla_lower>, <&world_c_cedilla_upper>;\n mods = ;\n };\n\n /* í */ UNICODE(world_i_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Í */ UNICODE(world_i_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n world_i_acute: world_i_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_i_acute_lower>, <&world_i_acute_upper>;\n mods = ;\n };\n\n /* ï */ UNICODE(world_i_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ï */ UNICODE(world_i_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n world_i_diaeresis: world_i_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_i_diaeresis_lower>, <&world_i_diaeresis_upper>;\n mods = ;\n };\n\n /* î */ UNICODE(world_i_circumflex_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp E &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp E>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp E>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Î */ UNICODE(world_i_circumflex_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp E &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp E>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp E>, <¯o_release &kp LALT>\n #endif\n )\n\n world_i_circumflex: world_i_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_CIRCUMFLEX\";\n #binding-cells = <0>;\n bindings = <&world_i_circumflex_lower>, <&world_i_circumflex_upper>;\n mods = ;\n };\n\n /* ì */ UNICODE(world_i_grave_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ì */ UNICODE(world_i_grave_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n world_i_grave: world_i_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_GRAVE\";\n #binding-cells = <0>;\n bindings = <&world_i_grave_lower>, <&world_i_grave_upper>;\n mods = ;\n };\n\n /* é */ UNICODE(world_e_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n /* É */ UNICODE(world_e_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n world_e_acute: world_e_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_e_acute_lower>, <&world_e_acute_upper>;\n mods = ;\n };\n\n /* ë */ UNICODE(world_e_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ë */ UNICODE(world_e_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n world_e_diaeresis: world_e_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_e_diaeresis_lower>, <&world_e_diaeresis_upper>;\n mods = ;\n };\n\n /* ê */ UNICODE(world_e_circumflex_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ê */ UNICODE(world_e_circumflex_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n world_e_circumflex: world_e_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_CIRCUMFLEX\";\n #binding-cells = <0>;\n bindings = <&world_e_circumflex_lower>, <&world_e_circumflex_upper>;\n mods = ;\n };\n\n /* è */ UNICODE(world_e_grave_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n /* È */ UNICODE(world_e_grave_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n world_e_grave: world_e_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_GRAVE\";\n #binding-cells = <0>;\n bindings = <&world_e_grave_lower>, <&world_e_grave_upper>;\n mods = ;\n };\n\n /* æ */ UNICODE(world_e_ae_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Æ */ UNICODE(world_e_ae_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n world_e_ae: world_e_ae {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_AE\";\n #binding-cells = <0>;\n bindings = <&world_e_ae_lower>, <&world_e_ae_upper>;\n mods = ;\n };\n\n /* á */ UNICODE(world_a_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Á */ UNICODE(world_a_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_acute: world_a_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_a_acute_lower>, <&world_a_acute_upper>;\n mods = ;\n };\n\n /* ä */ UNICODE(world_a_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ä */ UNICODE(world_a_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_diaeresis: world_a_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_a_diaeresis_lower>, <&world_a_diaeresis_upper>;\n mods = ;\n };\n\n /* â */ UNICODE(world_a_circumflex_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Â */ UNICODE(world_a_circumflex_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_circumflex: world_a_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_CIRCUMFLEX\";\n #binding-cells = <0>;\n bindings = <&world_a_circumflex_lower>, <&world_a_circumflex_upper>;\n mods = ;\n };\n\n /* à */ UNICODE(world_a_grave_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* À */ UNICODE(world_a_grave_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_grave: world_a_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_GRAVE\";\n #binding-cells = <0>;\n bindings = <&world_a_grave_lower>, <&world_a_grave_upper>;\n mods = ;\n };\n\n /* ã */ UNICODE(world_a_tilde_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ã */ UNICODE(world_a_tilde_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_tilde: world_a_tilde {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_TILDE\";\n #binding-cells = <0>;\n bindings = <&world_a_tilde_lower>, <&world_a_tilde_upper>;\n mods = ;\n };\n\n /* å */ UNICODE(world_a_ring_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Å */ UNICODE(world_a_ring_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_ring: world_a_ring {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_RING\";\n #binding-cells = <0>;\n bindings = <&world_a_ring_lower>, <&world_a_ring_upper>;\n mods = ;\n };\n\n /* ý */ UNICODE(world_y_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ý */ UNICODE(world_y_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n world_y_acute: world_y_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_Y_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_y_acute_lower>, <&world_y_acute_upper>;\n mods = ;\n };\n\n /* ÿ */ UNICODE(world_y_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ÿ */ UNICODE(world_y_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp N7 &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N1 &kp N7 &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp KP_N7 &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n world_y_diaeresis: world_y_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_Y_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_y_diaeresis_lower>, <&world_y_diaeresis_upper>;\n mods = ;\n };\n\n /* ó */ UNICODE(world_o_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ó */ UNICODE(world_o_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_acute: world_o_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_o_acute_lower>, <&world_o_acute_upper>;\n mods = ;\n };\n\n /* ö */ UNICODE(world_o_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ö */ UNICODE(world_o_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_diaeresis: world_o_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_o_diaeresis_lower>, <&world_o_diaeresis_upper>;\n mods = ;\n };\n\n /* ô */ UNICODE(world_o_circumflex_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ô */ UNICODE(world_o_circumflex_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_circumflex: world_o_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_CIRCUMFLEX\";\n #binding-cells = <0>;\n bindings = <&world_o_circumflex_lower>, <&world_o_circumflex_upper>;\n mods = ;\n };\n\n /* ò */ UNICODE(world_o_grave_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ò */ UNICODE(world_o_grave_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_grave: world_o_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_GRAVE\";\n #binding-cells = <0>;\n bindings = <&world_o_grave_lower>, <&world_o_grave_upper>;\n mods = ;\n };\n\n /* õ */ UNICODE(world_o_tilde_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Õ */ UNICODE(world_o_tilde_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_tilde: world_o_tilde {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_TILDE\";\n #binding-cells = <0>;\n bindings = <&world_o_tilde_lower>, <&world_o_tilde_upper>;\n mods = ;\n };\n\n /* ø */ UNICODE(world_o_slash_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ø */ UNICODE(world_o_slash_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_slash: world_o_slash {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_SLASH\";\n #binding-cells = <0>;\n bindings = <&world_o_slash_lower>, <&world_o_slash_upper>;\n mods = ;\n };\n\n /* ú */ UNICODE(world_u_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ú */ UNICODE(world_u_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n world_u_acute: world_u_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_u_acute_lower>, <&world_u_acute_upper>;\n mods = ;\n };\n\n /* ü */ UNICODE(world_u_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ü */ UNICODE(world_u_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n world_u_diaeresis: world_u_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_u_diaeresis_lower>, <&world_u_diaeresis_upper>;\n mods = ;\n };\n\n /* û */ UNICODE(world_u_circumflex_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Û */ UNICODE(world_u_circumflex_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n world_u_circumflex: world_u_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_CIRCUMFLEX\";\n #binding-cells = <0>;\n bindings = <&world_u_circumflex_lower>, <&world_u_circumflex_upper>;\n mods = ;\n };\n\n /* ù */ UNICODE(world_u_grave_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ù */ UNICODE(world_u_grave_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n world_u_grave: world_u_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_GRAVE\";\n #binding-cells = <0>;\n bindings = <&world_u_grave_lower>, <&world_u_grave_upper>;\n mods = ;\n };\n\n /* ñ */ UNICODE(world_n_tilde_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ñ */ UNICODE(world_n_tilde_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n world_n_tilde: world_n_tilde {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_N_TILDE\";\n #binding-cells = <0>;\n bindings = <&world_n_tilde_lower>, <&world_n_tilde_upper>;\n mods = ;\n };\n\n //\n // transforms\n //\n\n world_i_base: world_i_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_BASE\";\n #binding-cells = <0>;\n bindings = <&world_i_acute>, <&world_i_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_i_LCTL: world_i_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_LCTL\";\n #binding-cells = <0>;\n bindings = <&world_i_diaeresis>, <&world_i_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n\n world_i_RCTL: world_i_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_RCTL\";\n #binding-cells = <0>;\n bindings = <&world_i_circumflex>, <&world_i_grave>;\n mods = <(MOD_RSFT)>;\n };\n\n world_e_base: world_e_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_BASE\";\n #binding-cells = <0>;\n bindings = <&world_e_acute>, <&world_e_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_e_RALT: world_e_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_RALT\";\n #binding-cells = <0>;\n bindings = <&world_e_ae>, <&world_e_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_e_LCTL: world_e_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_LCTL\";\n #binding-cells = <0>;\n bindings = <&world_e_diaeresis>, <&world_e_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n\n world_e_RCTL: world_e_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_RCTL\";\n #binding-cells = <0>;\n bindings = <&world_e_circumflex>, <&world_e_grave>;\n mods = <(MOD_RSFT)>;\n };\n\n world_a_base: world_a_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_BASE\";\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\n world_a_LALT: world_a_LALT {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_LALT\";\n #binding-cells = <0>;\n bindings = <&world_a_tilde>, <&world_a_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_a_RALT: world_a_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_RALT\";\n #binding-cells = <0>;\n bindings = <&world_a_ring>, <&world_a_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_a_LCTL: world_a_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_LCTL\";\n #binding-cells = <0>;\n bindings = <&world_a_diaeresis>, <&world_a_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n\n world_a_RCTL: world_a_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_RCTL\";\n #binding-cells = <0>;\n bindings = <&world_a_circumflex>, <&world_a_grave>;\n mods = <(MOD_RSFT)>;\n };\n\n world_y_base: world_y_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_Y_BASE\";\n #binding-cells = <0>;\n bindings = <&world_y_acute>, <&world_y_diaeresis>;\n mods = <(MOD_LCTL)>;\n };\n\n world_o_base: world_o_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_BASE\";\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\n world_o_LALT: world_o_LALT {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_LALT\";\n #binding-cells = <0>;\n bindings = <&world_o_tilde>, <&world_o_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_o_RALT: world_o_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_RALT\";\n #binding-cells = <0>;\n bindings = <&world_o_slash>, <&world_o_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_o_LCTL: world_o_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_LCTL\";\n #binding-cells = <0>;\n bindings = <&world_o_diaeresis>, <&world_o_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n\n world_o_RCTL: world_o_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_RCTL\";\n #binding-cells = <0>;\n bindings = <&world_o_circumflex>, <&world_o_grave>;\n mods = <(MOD_RSFT)>;\n };\n\n world_u_base: world_u_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_BASE\";\n #binding-cells = <0>;\n bindings = <&world_u_acute>, <&world_u_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_u_LCTL: world_u_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_LCTL\";\n #binding-cells = <0>;\n bindings = <&world_u_diaeresis>, <&world_u_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n\n world_u_RCTL: world_u_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_RCTL\";\n #binding-cells = <0>;\n bindings = <&world_u_circumflex>, <&world_u_grave>;\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 0 // neutral\n #define EMOJI_GENDER_SIGN_PRESET 1 // male\n //#define EMOJI_GENDER_SIGN_PRESET 2 // 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 0 // neutral\n //#define EMOJI_SKIN_TONE_PRESET 1 // light_skin_tone\n //#define EMOJI_SKIN_TONE_PRESET 2 // medium_light_skin_tone\n //#define EMOJI_SKIN_TONE_PRESET 3 // medium_skin_tone\n #define EMOJI_SKIN_TONE_PRESET 4 // medium_dark_skin_tone\n //#define EMOJI_SKIN_TONE_PRESET 5 // 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 0 // neutral\n //#define EMOJI_HAIR_STYLE_PRESET 1 // bald\n //#define EMOJI_HAIR_STYLE_PRESET 2 // red_hair\n //#define EMOJI_HAIR_STYLE_PRESET 3 // curly_hair\n #define EMOJI_HAIR_STYLE_PRESET 4 // white_hair\n #endif\n\n //\n // NOTE: edit the emoji.yaml file and run `rake` to generate this:\n //\n\n /* ‍ */ UNICODE(emoji_zwj,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N0 &kp N0 &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N0 &kp N0 &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N0 &kp KP_N0 &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ♂️ */ UNICODE(emoji_male_sign,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N6 &kp N4 &kp N2 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N6 &kp N4 &kp N2>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N6 &kp KP_N4 &kp KP_N2>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ♀️ */ UNICODE(emoji_female_sign,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N6 &kp N4 &kp N0 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N6 &kp N4 &kp N0>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N6 &kp KP_N4 &kp KP_N0>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ➡️ */ UNICODE(emoji_right_arrow,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N7 &kp A &kp N1 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp A &kp N1>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp A &kp KP_N1>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ⬅️ */ UNICODE(emoji_left_arrow,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp B &kp N0 &kp N5 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp B &kp N0 &kp N5>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp B &kp KP_N0 &kp KP_N5>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🏻 */ UNICODE(emoji_light_skin_tone,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp F &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp F &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp F &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🏼 */ UNICODE(emoji_medium_light_skin_tone,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp F &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp F &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp F &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🏽 */ UNICODE(emoji_medium_skin_tone,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp F &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp F &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp F &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🏾 */ UNICODE(emoji_medium_dark_skin_tone,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp F &kp E &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp F &kp E>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp F &kp E>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🏿 */ UNICODE(emoji_dark_skin_tone,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp F &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp F &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp F &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🍼 */ UNICODE(emoji_baby_bottle,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N7 &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N7 &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N7 &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👶 */ UNICODE(emoji_baby,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N7 &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N7 &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N7 &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👦 */ UNICODE(emoji_boy,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N6 &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N6 &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N6 &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👧 */ UNICODE(emoji_girl,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N6 &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N6 &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N6 &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👨 */ UNICODE(emoji_man,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N6 &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N6 &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N6 &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👩 */ UNICODE(emoji_woman,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N6 &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N6 &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N6 &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👴 */ UNICODE(emoji_old_man,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N7 &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N7 &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N7 &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👵 */ UNICODE(emoji_old_woman,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N7 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N7 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N7 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🦳 */ UNICODE(emoji_white_hair,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp B &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp B &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp B &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🦱 */ UNICODE(emoji_curly_hair,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp B &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp B &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp B &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🦰 */ UNICODE(emoji_red_hair,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp B &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp B &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp B &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🦲 */ UNICODE(emoji_bald,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp B &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp B &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp B &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🌑 */ UNICODE(emoji_new_moon,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N1 &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N1 &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N1 &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🌒 */ UNICODE(emoji_waxing_crescent_moon,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N1 &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N1 &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N1 &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🌓 */ UNICODE(emoji_first_quarter_moon,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N1 &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N1 &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N1 &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🌔 */ UNICODE(emoji_waxing_gibbous_moon,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N1 &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N1 &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N1 &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🌕 */ UNICODE(emoji_full_moon,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N1 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N1 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N1 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🎉 */ UNICODE(emoji_tada,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N8 &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N8 &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N8 &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🔥 */ UNICODE(emoji_fire,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N5 &kp N2 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N5 &kp N2 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N5 &kp KP_N2 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ️❤️ */ UNICODE(emoji_heart,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp N2 &kp N7 &kp N6 &kp N4 &kp ENTER>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp N6 &kp N4>, <¯o_release &kp LALT>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp KP_N6 &kp KP_N4>, <¯o_release &kp LALT>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 💪 */ UNICODE(emoji_muscle,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp A &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp A &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp A &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🧗 */ UNICODE(emoji_person_climbing,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp D &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp D &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp D &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🚀 */ UNICODE(emoji_rocket,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N8 &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N8 &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N8 &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😎 */ UNICODE(emoji_sunglasses,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N0 &kp E &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N0 &kp E>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N0 &kp E>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🤩 */ UNICODE(emoji_star_struck,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp N2 &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp N2 &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp KP_N2 &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😂 */ UNICODE(emoji_joy,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N0 &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N0 &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N0 &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😰 */ UNICODE(emoji_cold_sweat,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N3 &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N3 &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N3 &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😱 */ UNICODE(emoji_scream,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N3 &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N3 &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N3 &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🤯 */ UNICODE(emoji_exploding_head,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp N2 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp N2 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp KP_N2 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🫰 */ UNICODE(emoji_snap_fingers,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp A &kp F &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp A &kp F &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp A &kp F &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👌 */ UNICODE(emoji_ok_hand,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N4 &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N4 &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N4 &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙏 */ UNICODE(emoji_pray,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😅 */ UNICODE(emoji_sweat_smile,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N0 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N0 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N0 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😞 */ UNICODE(emoji_disappointed,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N1 &kp E &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N1 &kp E>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N1 &kp E>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🤔 */ UNICODE(emoji_thinking,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp N1 &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp N1 &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp KP_N1 &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 💁 */ UNICODE(emoji_person_tipping_hand,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N8 &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N8 &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N8 &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙆 */ UNICODE(emoji_person_gesturing_ok,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙇 */ UNICODE(emoji_person_bowing,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙋 */ UNICODE(emoji_person_raising_hand,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙅 */ UNICODE(emoji_person_gesturing_no,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🤷 */ UNICODE(emoji_person_shrugging,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp N3 &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp N3 &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp KP_N3 &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ✅ */ UNICODE(emoji_checkoff,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N7 &kp N0 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp N0 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp KP_N0 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 💯 */ UNICODE(emoji_100,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp A &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp A &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp A &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ⚠️ */ UNICODE(emoji_warning,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N6 &kp A &kp N0 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N6 &kp A &kp N0>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N6 &kp A &kp KP_N0>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ❌ */ UNICODE(emoji_x,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N7 &kp N4 &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp N4 &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp KP_N4 &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ❓ */ UNICODE(emoji_question,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N7 &kp N5 &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp N5 &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp KP_N5 &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🧑‍🚀 */ UNICODE(emoji_astronaut,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp D &kp N1 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp N2 &kp N0 &kp N0 &kp D &kp ENTER>, <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N8 &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp D &kp N1>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N0 &kp N0 &kp D>, <¯o_release &kp LALT>, <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N8 &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp D &kp KP_N1>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N0 &kp KP_N0 &kp D>, <¯o_release &kp LALT>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N8 &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🤓 */ UNICODE(emoji_nerd,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp N1 &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp N1 &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp KP_N1 &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ✨ */ UNICODE(emoji_sparkles,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N7 &kp N2 &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp N2 &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp KP_N2 &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙌 */ UNICODE(emoji_raised_hands,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ☝️ */ UNICODE(emoji_point_up,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N6 &kp N1 &kp D &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N6 &kp N1 &kp D>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N6 &kp KP_N1 &kp D>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👍 */ UNICODE(emoji_thumbs_up,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N4 &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N4 &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N4 &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n};\n\n/*HACK*/};\n #if EMOJI_GENDER_SIGN_PRESET == 0\n emoji_gender_sign_preset: &none {};\n #elif EMOJI_GENDER_SIGN_PRESET == 1\n emoji_gender_sign_preset: &emoji_male_sign {};\n #elif EMOJI_GENDER_SIGN_PRESET == 2\n emoji_gender_sign_preset: &emoji_female_sign {};\n #endif\n #if EMOJI_SKIN_TONE_PRESET == 0\n emoji_skin_tone_preset: &none {};\n #elif EMOJI_SKIN_TONE_PRESET == 1\n emoji_skin_tone_preset: &emoji_light_skin_tone {};\n #elif EMOJI_SKIN_TONE_PRESET == 2\n emoji_skin_tone_preset: &emoji_medium_light_skin_tone {};\n #elif EMOJI_SKIN_TONE_PRESET == 3\n emoji_skin_tone_preset: &emoji_medium_skin_tone {};\n #elif EMOJI_SKIN_TONE_PRESET == 4\n emoji_skin_tone_preset: &emoji_medium_dark_skin_tone {};\n #elif EMOJI_SKIN_TONE_PRESET == 5\n emoji_skin_tone_preset: &emoji_dark_skin_tone {};\n #endif\n #if EMOJI_HAIR_STYLE_PRESET == 0\n emoji_hair_style_preset: &none {};\n #elif EMOJI_HAIR_STYLE_PRESET == 1\n emoji_hair_style_preset: &emoji_bald {};\n #elif EMOJI_HAIR_STYLE_PRESET == 2\n emoji_hair_style_preset: &emoji_red_hair {};\n #elif EMOJI_HAIR_STYLE_PRESET == 3\n emoji_hair_style_preset: &emoji_curly_hair {};\n #elif EMOJI_HAIR_STYLE_PRESET == 4\n emoji_hair_style_preset: &emoji_white_hair {};\n #endif\n/*HACK*//{", + "custom_defined_behaviors": "//////////////////////////////////////////////////////////////////////\n// NOTE: Use the `#define` settings below to customize this keymap! //\n// You can override them here instead of modifying them down there. //\n// /* EXAMPLE: */ #define EMOJI_HAIR_STYLE_PRESET 3 // curly_hair //\n//////////////////////////////////////////////////////////////////////\n//\n// Sunaku's Keymap v30 -- \"Glorious Engrammer\"\n// - https://github.com/sunaku/glove80-keymaps\n//\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 // 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 270 // 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 170 // global-quick-tap-ms\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 // SHIFT_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 SHIFT_HOLDING_TYPE\n #define SHIFT_HOLDING_TYPE \"tap-preferred\"\n #endif\n\n //\n // SHIFT_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 // CAUTION: You'll need to perform inward rolls from pinky->ring->middle\n // fingers toward the index fingers when activating multiple modifiers\n // because `hold-trigger-on-release` is disabled for the index fingers.\n // Otherwise, you may be surprised that the index fingers' modifier is\n // sent immediately without the rest of your multi-mod chord when you\n // perform outward rolls from your index fingers toward your pinkies.\n //\n #ifndef SHIFT_HOLDING_TIME\n #define SHIFT_HOLDING_TIME 170\n #endif\n\n //\n // SHIFT_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 SHIFT_STREAK_DECAY\n #define SHIFT_STREAK_DECAY 70 // global-quick-tap-ms\n #endif\n\n //\n // SHIFT_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 SHIFT_REPEAT_DECAY\n #define SHIFT_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_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 170\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 200 // \"tap then hold\" for key auto-repeat\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 //\n // Home row mod-tap keys for all except index fingers\n //\n homey_left: miryoku_home_row_mods_left_hand {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"HOME_ROW_MODS_LEFT_HAND\";\n flavor = HOMEY_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 homey_right: miryoku_home_row_mods_right_hand {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"HOME_ROW_MODS_RIGHT_HAND\";\n flavor = HOMEY_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\n //\n // Special home row mod-tap keys for the index fingers\n //\n shift_left: miryoku_home_row_mods_left_shift_shift {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"HOME_ROW_MODS_LEFT_SHIFT_SHIFT\";\n flavor = SHIFT_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n //hold-trigger-on-release; // don't wait for other mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n shift_right: miryoku_home_row_mods_right_shift_shift {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"HOME_ROW_MODS_RIGHT_SHIFT_SHIFT\";\n flavor = SHIFT_HOLDING_TYPE;\n hold-trigger-key-positions = ;\n //hold-trigger-on-release; // don't wait for other mods\n tapping-term-ms = ;\n quick-tap-ms = ;\n require-prior-idle-ms = ;\n #binding-cells = <2>;\n bindings = <&kp>, <&kp>;\n };\n\n //\n // Thumb cluster hold-tap keys for Miryoku layers\n //\n thumb: miryoku_thumb_layer {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"MIRYOKU_THUMB_LAYER\";\n flavor = THUMB_HOLDING_TYPE;\n tapping-term-ms = ;\n quick-tap-ms = ; // enable repeat\n //global-quick-tap; // no typing streak\n //retro-tap; // don't allow slow (hold-like) taps\n #binding-cells = <2>;\n bindings = <&mo>, <&kp>;\n };\n space: miryoku_thumb_layer_spacebar {\n compatible = \"zmk,behavior-hold-tap\";\n label = \"MIRYOKU_THUMB_LAYER_SPACEBAR\";\n flavor = THUMB_HOLDING_TYPE;\n tapping-term-ms = ;\n quick-tap-ms = ; // enable repeat\n //global-quick-tap; // no typing streak\n retro-tap; // allow slow (hold-like) taps\n #binding-cells = <2>;\n bindings = <&mo>, <&kp>;\n };\n\n //////////////////////////////////////////////////////////////////////////\n //\n // Custom shifted pairs\n //\n //////////////////////////////////////////////////////////////////////////\n\n //\n // Shift + CapsWord = CapsLock\n //\n cappy: capsword_and_capslock {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"CAPSWORD_AND_CAPSLOCK\";\n #binding-cells = <0>;\n bindings = <&caps_word>, <&kp CAPSLOCK>;\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_1: engram_one_and_pipe {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_ONE_AND_PIPE\";\n #binding-cells = <0>;\n bindings = <&kp N1>, <&kp PIPE>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_2: engram_two_and_equal {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_TWO_AND_EQUAL\";\n #binding-cells = <0>;\n bindings = <&kp N2>, <&kp EQUAL>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_3: engram_three_and_tilde {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_THREE_AND_TILDE\";\n #binding-cells = <0>;\n bindings = <&kp N3>, <&kp TILDE>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_4: engram_four_and_plus {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_FOUR_AND_PLUS\";\n #binding-cells = <0>;\n bindings = <&kp N4>, <&kp PLUS>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_5: engram_five_and_less_than {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_FIVE_AND_LESS_THAN\";\n #binding-cells = <0>;\n bindings = <&kp N5>, <&kp LESS_THAN>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_6: engram_six_and_greater_than {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_SIX_AND_GREATER_THAN\";\n #binding-cells = <0>;\n bindings = <&kp N6>, <&kp GREATER_THAN>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_7: engram_seven_and_caret {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_SEVEN_AND_CARET\";\n #binding-cells = <0>;\n bindings = <&kp N7>, <&kp CARET>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_8: engram_eight_and_ampersand {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_EIGHT_AND_AMPERSAND\";\n #binding-cells = <0>;\n bindings = <&kp N8>, <&kp AMPERSAND>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_9: engram_nine_and_percent {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_NINE_AND_PERCENT\";\n #binding-cells = <0>;\n bindings = <&kp N9>, <&kp PERCENT>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_0: engram_zero_and_asterisk {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_ZERO_AND_ASTERISK\";\n #binding-cells = <0>;\n bindings = <&kp N0>, <&kp ASTERISK>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_apos: engram_apostrophe_and_left_parenthesis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_APOSTROPHE_AND_LEFT_PARENTHESIS\";\n #binding-cells = <0>;\n bindings = <&kp APOSTROPHE>, <&kp LEFT_PARENTHESIS>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_dquote: engram_double_quotes_and_right_parenthesis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_DOUBLE_QUOTES_AND_RIGHT_PARENTHESIS\";\n #binding-cells = <0>;\n bindings = <&kp DOUBLE_QUOTES>, <&kp RIGHT_PARENTHESIS>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_comma: engram_comma_and_semicolon {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_COMMA_AND_SEMICOLON\";\n #binding-cells = <0>;\n bindings = <&kp COMMA>, <&kp SEMICOLON>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_period: engram_period_and_colon {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_PERIOD_AND_COLON\";\n #binding-cells = <0>;\n bindings = <&kp PERIOD>, <&kp COLON>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_question: engram_question_and_exclamation {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_QUESTION_AND_EXCLAMATION\";\n #binding-cells = <0>;\n bindings = <&kp QUESTION>, <&kp EXCLAMATION>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_hash: engram_hash_and_dollar {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_HASH_AND_DOLLAR\";\n #binding-cells = <0>;\n bindings = <&kp HASH>, <&kp DOLLAR>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_at: engram_at_and_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_AT_AND_GRAVE\";\n #binding-cells = <0>;\n bindings = <&kp AT>, <&kp GRAVE>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\n };\n engram_slash: engram_slash_and_backslash {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"ENGRAM_SLASH_AND_BACKSLASH\";\n #binding-cells = <0>;\n bindings = <&kp SLASH>, <&kp BACKSLASH>;\n mods = <(MOD_LSFT|MOD_RSFT)>;\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 //\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 label = \"SELECT_WORD\";\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 LC(RIGHT) &kp LC(LEFT) &kp LC(LS(RIGHT))>;\n )\n ZMK_MACRO(select_word_left,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp LC(LEFT) &kp LC(RIGHT) &kp LC(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 label = \"EXTEND_WORD\";\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 LC(LS(RIGHT))>;\n )\n ZMK_MACRO(extend_word_left,\n wait-ms = ;\n tap-ms = ;\n bindings = <&kp LC(LS(LEFT))>;\n )\n\n //\n // select current line\n //\n select_line: select_line {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"SELECT_LINE\";\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 label = \"EXTEND_LINE\";\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 // UNICODE_TARGET_OS defines which operating system you're targeting\n // for use with the UNICODE() macro. This is needed because 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 // - https://ladedu.com/how-to-enter-unicode-characters-on-a-mac/\n // - https://unicode-explorer.com/articles/how-to-type-unicode-characters-in-linux\n // - https://unicode-explorer.com/articles/how-to-type-unicode-characters-in-windows\n //\n #ifndef UNICODE_TARGET_OS\n #define UNICODE_TARGET_OS 1 // linux\n //#define UNICODE_TARGET_OS 2 // macos\n //#define UNICODE_TARGET_OS 3 // windows\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 // NOTE: edit the emoji.yaml file and run `rake` to generate this:\n //\n\n //\n // codepoints\n //\n\n /* ° */ UNICODE(world_degree_sign,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp B &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp B &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp B &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* § */ UNICODE(world_section_sign,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp A &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp A &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp A &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ¶ */ UNICODE(world_paragraph_sign,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp B &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp B &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp B &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* º */ UNICODE(world_o_ordinal,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp B &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp B &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp B &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ª */ UNICODE(world_a_ordinal,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp A &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp A &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp A &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ¡ */ UNICODE(world_exclaim_left,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp A &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp A &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp A &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ¿ */ UNICODE(world_question_left,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp B &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp B &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp B &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* « */ UNICODE(world_quote_left,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp A &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp A &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp A &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n /* » */ UNICODE(world_quote_right,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp B &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp B &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp B &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n //\n // characters\n //\n\n /* ç */ UNICODE(world_c_cedilla_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ç */ UNICODE(world_c_cedilla_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n world_c_cedilla: world_c_cedilla {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_C_CEDILLA\";\n #binding-cells = <0>;\n bindings = <&world_c_cedilla_lower>, <&world_c_cedilla_upper>;\n mods = ;\n };\n\n /* í */ UNICODE(world_i_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Í */ UNICODE(world_i_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n world_i_acute: world_i_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_i_acute_lower>, <&world_i_acute_upper>;\n mods = ;\n };\n\n /* ï */ UNICODE(world_i_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ï */ UNICODE(world_i_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n world_i_diaeresis: world_i_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_i_diaeresis_lower>, <&world_i_diaeresis_upper>;\n mods = ;\n };\n\n /* î */ UNICODE(world_i_circumflex_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp E &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp E>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp E>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Î */ UNICODE(world_i_circumflex_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp E &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp E>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp E>, <¯o_release &kp LALT>\n #endif\n )\n\n world_i_circumflex: world_i_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_CIRCUMFLEX\";\n #binding-cells = <0>;\n bindings = <&world_i_circumflex_lower>, <&world_i_circumflex_upper>;\n mods = ;\n };\n\n /* ì */ UNICODE(world_i_grave_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ì */ UNICODE(world_i_grave_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n world_i_grave: world_i_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_GRAVE\";\n #binding-cells = <0>;\n bindings = <&world_i_grave_lower>, <&world_i_grave_upper>;\n mods = ;\n };\n\n /* é */ UNICODE(world_e_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n /* É */ UNICODE(world_e_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n world_e_acute: world_e_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_e_acute_lower>, <&world_e_acute_upper>;\n mods = ;\n };\n\n /* ë */ UNICODE(world_e_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ë */ UNICODE(world_e_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n world_e_diaeresis: world_e_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_e_diaeresis_lower>, <&world_e_diaeresis_upper>;\n mods = ;\n };\n\n /* ê */ UNICODE(world_e_circumflex_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ê */ UNICODE(world_e_circumflex_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n world_e_circumflex: world_e_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_CIRCUMFLEX\";\n #binding-cells = <0>;\n bindings = <&world_e_circumflex_lower>, <&world_e_circumflex_upper>;\n mods = ;\n };\n\n /* è */ UNICODE(world_e_grave_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n /* È */ UNICODE(world_e_grave_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n world_e_grave: world_e_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_GRAVE\";\n #binding-cells = <0>;\n bindings = <&world_e_grave_lower>, <&world_e_grave_upper>;\n mods = ;\n };\n\n /* æ */ UNICODE(world_e_ae_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Æ */ UNICODE(world_e_ae_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n world_e_ae: world_e_ae {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_AE\";\n #binding-cells = <0>;\n bindings = <&world_e_ae_lower>, <&world_e_ae_upper>;\n mods = ;\n };\n\n /* á */ UNICODE(world_a_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Á */ UNICODE(world_a_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_acute: world_a_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_a_acute_lower>, <&world_a_acute_upper>;\n mods = ;\n };\n\n /* ä */ UNICODE(world_a_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ä */ UNICODE(world_a_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_diaeresis: world_a_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_a_diaeresis_lower>, <&world_a_diaeresis_upper>;\n mods = ;\n };\n\n /* â */ UNICODE(world_a_circumflex_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Â */ UNICODE(world_a_circumflex_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_circumflex: world_a_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_CIRCUMFLEX\";\n #binding-cells = <0>;\n bindings = <&world_a_circumflex_lower>, <&world_a_circumflex_upper>;\n mods = ;\n };\n\n /* à */ UNICODE(world_a_grave_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* À */ UNICODE(world_a_grave_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_grave: world_a_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_GRAVE\";\n #binding-cells = <0>;\n bindings = <&world_a_grave_lower>, <&world_a_grave_upper>;\n mods = ;\n };\n\n /* ã */ UNICODE(world_a_tilde_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ã */ UNICODE(world_a_tilde_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_tilde: world_a_tilde {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_TILDE\";\n #binding-cells = <0>;\n bindings = <&world_a_tilde_lower>, <&world_a_tilde_upper>;\n mods = ;\n };\n\n /* å */ UNICODE(world_a_ring_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp E &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp E &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp E &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Å */ UNICODE(world_a_ring_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp C &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp C &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp C &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n world_a_ring: world_a_ring {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_RING\";\n #binding-cells = <0>;\n bindings = <&world_a_ring_lower>, <&world_a_ring_upper>;\n mods = ;\n };\n\n /* ý */ UNICODE(world_y_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ý */ UNICODE(world_y_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n world_y_acute: world_y_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_Y_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_y_acute_lower>, <&world_y_acute_upper>;\n mods = ;\n };\n\n /* ÿ */ UNICODE(world_y_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ÿ */ UNICODE(world_y_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp N7 &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N1 &kp N7 &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp KP_N7 &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n world_y_diaeresis: world_y_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_Y_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_y_diaeresis_lower>, <&world_y_diaeresis_upper>;\n mods = ;\n };\n\n /* ó */ UNICODE(world_o_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ó */ UNICODE(world_o_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_acute: world_o_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_o_acute_lower>, <&world_o_acute_upper>;\n mods = ;\n };\n\n /* ö */ UNICODE(world_o_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ö */ UNICODE(world_o_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_diaeresis: world_o_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_o_diaeresis_lower>, <&world_o_diaeresis_upper>;\n mods = ;\n };\n\n /* ô */ UNICODE(world_o_circumflex_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ô */ UNICODE(world_o_circumflex_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_circumflex: world_o_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_CIRCUMFLEX\";\n #binding-cells = <0>;\n bindings = <&world_o_circumflex_lower>, <&world_o_circumflex_upper>;\n mods = ;\n };\n\n /* ò */ UNICODE(world_o_grave_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ò */ UNICODE(world_o_grave_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_grave: world_o_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_GRAVE\";\n #binding-cells = <0>;\n bindings = <&world_o_grave_lower>, <&world_o_grave_upper>;\n mods = ;\n };\n\n /* õ */ UNICODE(world_o_tilde_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Õ */ UNICODE(world_o_tilde_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_tilde: world_o_tilde {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_TILDE\";\n #binding-cells = <0>;\n bindings = <&world_o_tilde_lower>, <&world_o_tilde_upper>;\n mods = ;\n };\n\n /* ø */ UNICODE(world_o_slash_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ø */ UNICODE(world_o_slash_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n world_o_slash: world_o_slash {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_SLASH\";\n #binding-cells = <0>;\n bindings = <&world_o_slash_lower>, <&world_o_slash_upper>;\n mods = ;\n };\n\n /* ú */ UNICODE(world_u_acute_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ú */ UNICODE(world_u_acute_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n world_u_acute: world_u_acute {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_ACUTE\";\n #binding-cells = <0>;\n bindings = <&world_u_acute_lower>, <&world_u_acute_upper>;\n mods = ;\n };\n\n /* ü */ UNICODE(world_u_diaeresis_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ü */ UNICODE(world_u_diaeresis_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n world_u_diaeresis: world_u_diaeresis {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_DIAERESIS\";\n #binding-cells = <0>;\n bindings = <&world_u_diaeresis_lower>, <&world_u_diaeresis_upper>;\n mods = ;\n };\n\n /* û */ UNICODE(world_u_circumflex_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Û */ UNICODE(world_u_circumflex_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n world_u_circumflex: world_u_circumflex {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_CIRCUMFLEX\";\n #binding-cells = <0>;\n bindings = <&world_u_circumflex_lower>, <&world_u_circumflex_upper>;\n mods = ;\n };\n\n /* ù */ UNICODE(world_u_grave_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ù */ UNICODE(world_u_grave_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n world_u_grave: world_u_grave {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_GRAVE\";\n #binding-cells = <0>;\n bindings = <&world_u_grave_lower>, <&world_u_grave_upper>;\n mods = ;\n };\n\n /* ñ */ UNICODE(world_n_tilde_lower,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp F &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* Ñ */ UNICODE(world_n_tilde_upper,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp D &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N0 &kp N0 &kp D &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp D &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n world_n_tilde: world_n_tilde {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_N_TILDE\";\n #binding-cells = <0>;\n bindings = <&world_n_tilde_lower>, <&world_n_tilde_upper>;\n mods = ;\n };\n\n //\n // transforms\n //\n\n world_i_base: world_i_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_BASE\";\n #binding-cells = <0>;\n bindings = <&world_i_acute>, <&world_i_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_i_LCTL: world_i_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_LCTL\";\n #binding-cells = <0>;\n bindings = <&world_i_diaeresis>, <&world_i_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n\n world_i_RCTL: world_i_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_I_RCTL\";\n #binding-cells = <0>;\n bindings = <&world_i_circumflex>, <&world_i_grave>;\n mods = <(MOD_RSFT)>;\n };\n\n world_e_base: world_e_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_BASE\";\n #binding-cells = <0>;\n bindings = <&world_e_acute>, <&world_e_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_e_RALT: world_e_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_RALT\";\n #binding-cells = <0>;\n bindings = <&world_e_ae>, <&world_e_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_e_LCTL: world_e_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_LCTL\";\n #binding-cells = <0>;\n bindings = <&world_e_diaeresis>, <&world_e_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n\n world_e_RCTL: world_e_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_E_RCTL\";\n #binding-cells = <0>;\n bindings = <&world_e_circumflex>, <&world_e_grave>;\n mods = <(MOD_RSFT)>;\n };\n\n world_a_base: world_a_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_BASE\";\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\n world_a_LALT: world_a_LALT {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_LALT\";\n #binding-cells = <0>;\n bindings = <&world_a_tilde>, <&world_a_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_a_RALT: world_a_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_RALT\";\n #binding-cells = <0>;\n bindings = <&world_a_ring>, <&world_a_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_a_LCTL: world_a_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_LCTL\";\n #binding-cells = <0>;\n bindings = <&world_a_diaeresis>, <&world_a_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n\n world_a_RCTL: world_a_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_A_RCTL\";\n #binding-cells = <0>;\n bindings = <&world_a_circumflex>, <&world_a_grave>;\n mods = <(MOD_RSFT)>;\n };\n\n world_y_base: world_y_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_Y_BASE\";\n #binding-cells = <0>;\n bindings = <&world_y_acute>, <&world_y_diaeresis>;\n mods = <(MOD_LCTL)>;\n };\n\n world_o_base: world_o_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_BASE\";\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\n world_o_LALT: world_o_LALT {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_LALT\";\n #binding-cells = <0>;\n bindings = <&world_o_tilde>, <&world_o_RALT>;\n mods = <(MOD_RALT|MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_o_RALT: world_o_RALT {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_RALT\";\n #binding-cells = <0>;\n bindings = <&world_o_slash>, <&world_o_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_o_LCTL: world_o_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_LCTL\";\n #binding-cells = <0>;\n bindings = <&world_o_diaeresis>, <&world_o_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n\n world_o_RCTL: world_o_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_O_RCTL\";\n #binding-cells = <0>;\n bindings = <&world_o_circumflex>, <&world_o_grave>;\n mods = <(MOD_RSFT)>;\n };\n\n world_u_base: world_u_base {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_BASE\";\n #binding-cells = <0>;\n bindings = <&world_u_acute>, <&world_u_LCTL>;\n mods = <(MOD_LCTL|MOD_RCTL|MOD_RSFT)>;\n };\n\n world_u_LCTL: world_u_LCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_LCTL\";\n #binding-cells = <0>;\n bindings = <&world_u_diaeresis>, <&world_u_RCTL>;\n mods = <(MOD_RCTL|MOD_RSFT)>;\n };\n\n world_u_RCTL: world_u_RCTL {\n compatible = \"zmk,behavior-mod-morph\";\n label = \"WORLD_U_RCTL\";\n #binding-cells = <0>;\n bindings = <&world_u_circumflex>, <&world_u_grave>;\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 0 // neutral\n #define EMOJI_GENDER_SIGN_PRESET 1 // male\n //#define EMOJI_GENDER_SIGN_PRESET 2 // 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 0 // neutral\n //#define EMOJI_SKIN_TONE_PRESET 1 // light_skin_tone\n //#define EMOJI_SKIN_TONE_PRESET 2 // medium_light_skin_tone\n //#define EMOJI_SKIN_TONE_PRESET 3 // medium_skin_tone\n #define EMOJI_SKIN_TONE_PRESET 4 // medium_dark_skin_tone\n //#define EMOJI_SKIN_TONE_PRESET 5 // 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 0 // neutral\n //#define EMOJI_HAIR_STYLE_PRESET 1 // bald\n //#define EMOJI_HAIR_STYLE_PRESET 2 // red_hair\n //#define EMOJI_HAIR_STYLE_PRESET 3 // curly_hair\n #define EMOJI_HAIR_STYLE_PRESET 4 // white_hair\n #endif\n\n //\n // NOTE: edit the emoji.yaml file and run `rake` to generate this:\n //\n\n /* ‍ */ UNICODE(emoji_zwj,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N0 &kp N0 &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N0 &kp N0 &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N0 &kp KP_N0 &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ♂️ */ UNICODE(emoji_male_sign,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N6 &kp N4 &kp N2 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N6 &kp N4 &kp N2>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N6 &kp KP_N4 &kp KP_N2>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ♀️ */ UNICODE(emoji_female_sign,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N6 &kp N4 &kp N0 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N6 &kp N4 &kp N0>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N6 &kp KP_N4 &kp KP_N0>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ➡️ */ UNICODE(emoji_right_arrow,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N7 &kp A &kp N1 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp A &kp N1>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp A &kp KP_N1>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ⬅️ */ UNICODE(emoji_left_arrow,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp B &kp N0 &kp N5 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp B &kp N0 &kp N5>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp B &kp KP_N0 &kp KP_N5>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🏻 */ UNICODE(emoji_light_skin_tone,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp F &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp F &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp F &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🏼 */ UNICODE(emoji_medium_light_skin_tone,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp F &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp F &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp F &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🏽 */ UNICODE(emoji_medium_skin_tone,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp F &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp F &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp F &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🏾 */ UNICODE(emoji_medium_dark_skin_tone,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp F &kp E &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp F &kp E>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp F &kp E>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🏿 */ UNICODE(emoji_dark_skin_tone,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp F &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp F &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp F &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🍼 */ UNICODE(emoji_baby_bottle,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N7 &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N7 &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N7 &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👶 */ UNICODE(emoji_baby,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N7 &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N7 &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N7 &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👦 */ UNICODE(emoji_boy,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N6 &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N6 &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N6 &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👧 */ UNICODE(emoji_girl,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N6 &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N6 &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N6 &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👨 */ UNICODE(emoji_man,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N6 &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N6 &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N6 &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👩 */ UNICODE(emoji_woman,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N6 &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N6 &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N6 &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👴 */ UNICODE(emoji_old_man,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N7 &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N7 &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N7 &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👵 */ UNICODE(emoji_old_woman,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N7 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N7 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N7 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🦳 */ UNICODE(emoji_white_hair,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp B &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp B &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp B &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🦱 */ UNICODE(emoji_curly_hair,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp B &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp B &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp B &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🦰 */ UNICODE(emoji_red_hair,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp B &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp B &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp B &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🦲 */ UNICODE(emoji_bald,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp B &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp B &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp B &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🌑 */ UNICODE(emoji_new_moon,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N1 &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N1 &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N1 &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🌒 */ UNICODE(emoji_waxing_crescent_moon,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N1 &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N1 &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N1 &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🌓 */ UNICODE(emoji_first_quarter_moon,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N1 &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N1 &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N1 &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🌔 */ UNICODE(emoji_waxing_gibbous_moon,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N1 &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N1 &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N1 &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🌕 */ UNICODE(emoji_full_moon,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N1 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N1 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N1 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🎉 */ UNICODE(emoji_tada,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N3 &kp N8 &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N3 &kp N8 &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N3 &kp KP_N8 &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🔥 */ UNICODE(emoji_fire,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N5 &kp N2 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N5 &kp N2 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N5 &kp KP_N2 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ️❤️ */ UNICODE(emoji_heart,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp N2 &kp N7 &kp N6 &kp N4 &kp ENTER>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp N6 &kp N4>, <¯o_release &kp LALT>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp KP_N6 &kp KP_N4>, <¯o_release &kp LALT>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 💪 */ UNICODE(emoji_muscle,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp A &kp A &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp A &kp A>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp A &kp A>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🧗 */ UNICODE(emoji_person_climbing,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp D &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp D &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp D &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🚀 */ UNICODE(emoji_rocket,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N8 &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N8 &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N8 &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😎 */ UNICODE(emoji_sunglasses,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N0 &kp E &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N0 &kp E>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N0 &kp E>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🤩 */ UNICODE(emoji_star_struck,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp N2 &kp N9 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp N2 &kp N9>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp KP_N2 &kp KP_N9>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😂 */ UNICODE(emoji_joy,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N0 &kp N2 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N0 &kp N2>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N0 &kp KP_N2>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😰 */ UNICODE(emoji_cold_sweat,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N3 &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N3 &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N3 &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😱 */ UNICODE(emoji_scream,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N3 &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N3 &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N3 &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🤯 */ UNICODE(emoji_exploding_head,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp N2 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp N2 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp KP_N2 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🫰 */ UNICODE(emoji_snap_fingers,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp A &kp F &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp A &kp F &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp A &kp F &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👌 */ UNICODE(emoji_ok_hand,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N4 &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N4 &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N4 &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙏 */ UNICODE(emoji_pray,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😅 */ UNICODE(emoji_sweat_smile,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N0 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N0 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N0 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 😞 */ UNICODE(emoji_disappointed,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N1 &kp E &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N1 &kp E>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N1 &kp E>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🤔 */ UNICODE(emoji_thinking,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp N1 &kp N4 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp N1 &kp N4>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp KP_N1 &kp KP_N4>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 💁 */ UNICODE(emoji_person_tipping_hand,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N8 &kp N1 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N8 &kp N1>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N8 &kp KP_N1>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙆 */ UNICODE(emoji_person_gesturing_ok,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp N6 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp N6>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp KP_N6>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙇 */ UNICODE(emoji_person_bowing,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙋 */ UNICODE(emoji_person_raising_hand,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp B &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp B>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp B>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙅 */ UNICODE(emoji_person_gesturing_no,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🤷 */ UNICODE(emoji_person_shrugging,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp N3 &kp N7 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp N3 &kp N7>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp KP_N3 &kp KP_N7>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ✅ */ UNICODE(emoji_checkoff,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N7 &kp N0 &kp N5 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp N0 &kp N5>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp KP_N0 &kp KP_N5>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 💯 */ UNICODE(emoji_100,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp A &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp A &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp A &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ⚠️ */ UNICODE(emoji_warning,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N6 &kp A &kp N0 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N6 &kp A &kp N0>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N6 &kp A &kp KP_N0>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ❌ */ UNICODE(emoji_x,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N7 &kp N4 &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp N4 &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp KP_N4 &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ❓ */ UNICODE(emoji_question,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N7 &kp N5 &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp N5 &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp KP_N5 &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🧑‍🚀 */ UNICODE(emoji_astronaut,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp D &kp N1 &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp N2 &kp N0 &kp N0 &kp D &kp ENTER>, <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N8 &kp N0 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp D &kp N1>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N0 &kp N0 &kp D>, <¯o_release &kp LALT>, <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N8 &kp N0>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp D &kp KP_N1>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N0 &kp KP_N0 &kp D>, <¯o_release &kp LALT>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N8 &kp KP_N0>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🤓 */ UNICODE(emoji_nerd,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N9 &kp N1 &kp N3 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N9 &kp N1 &kp N3>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N9 &kp KP_N1 &kp KP_N3>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ✨ */ UNICODE(emoji_sparkles,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N7 &kp N2 &kp N8 &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N7 &kp N2 &kp N8>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N7 &kp KP_N2 &kp KP_N8>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 🙌 */ UNICODE(emoji_raised_hands,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N6 &kp N4 &kp C &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N6 &kp N4 &kp C>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N6 &kp KP_N4 &kp C>, <¯o_release &kp LALT>\n #endif\n )\n\n /* ☝️ */ UNICODE(emoji_point_up,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N2 &kp N6 &kp N1 &kp D &kp ENTER>, <¯o_wait_time UNICODE_SEQ_DELAY>, <&kp LC(LS(U)) &kp F &kp E &kp N0 &kp F &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N2 &kp N6 &kp N1 &kp D>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp F &kp E &kp N0 &kp F>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N2 &kp KP_N6 &kp KP_N1 &kp D>, <¯o_release &kp LALT>, <¯o_wait_time UNICODE_SEQ_DELAY>, <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp F &kp E &kp KP_N0 &kp F>, <¯o_release &kp LALT>\n #endif\n )\n\n /* 👍 */ UNICODE(emoji_thumbs_up,\n #if UNICODE_TARGET_OS == 1\n <&kp LC(LS(U)) &kp N1 &kp F &kp N4 &kp N4 &kp D &kp ENTER>\n #elif UNICODE_TARGET_OS == 2\n <¯o_press &kp LALT>, <¯o_tap &kp N1 &kp F &kp N4 &kp N4 &kp D>, <¯o_release &kp LALT>\n #elif UNICODE_TARGET_OS == 3\n <¯o_press &kp LALT>, <¯o_tap &kp KP_PLUS &kp KP_N1 &kp F &kp KP_N4 &kp KP_N4 &kp D>, <¯o_release &kp LALT>\n #endif\n )\n\n};\n\n/*HACK*/};\n #if EMOJI_GENDER_SIGN_PRESET == 0\n emoji_gender_sign_preset: &none {};\n #elif EMOJI_GENDER_SIGN_PRESET == 1\n emoji_gender_sign_preset: &emoji_male_sign {};\n #elif EMOJI_GENDER_SIGN_PRESET == 2\n emoji_gender_sign_preset: &emoji_female_sign {};\n #endif\n #if EMOJI_SKIN_TONE_PRESET == 0\n emoji_skin_tone_preset: &none {};\n #elif EMOJI_SKIN_TONE_PRESET == 1\n emoji_skin_tone_preset: &emoji_light_skin_tone {};\n #elif EMOJI_SKIN_TONE_PRESET == 2\n emoji_skin_tone_preset: &emoji_medium_light_skin_tone {};\n #elif EMOJI_SKIN_TONE_PRESET == 3\n emoji_skin_tone_preset: &emoji_medium_skin_tone {};\n #elif EMOJI_SKIN_TONE_PRESET == 4\n emoji_skin_tone_preset: &emoji_medium_dark_skin_tone {};\n #elif EMOJI_SKIN_TONE_PRESET == 5\n emoji_skin_tone_preset: &emoji_dark_skin_tone {};\n #endif\n #if EMOJI_HAIR_STYLE_PRESET == 0\n emoji_hair_style_preset: &none {};\n #elif EMOJI_HAIR_STYLE_PRESET == 1\n emoji_hair_style_preset: &emoji_bald {};\n #elif EMOJI_HAIR_STYLE_PRESET == 2\n emoji_hair_style_preset: &emoji_red_hair {};\n #elif EMOJI_HAIR_STYLE_PRESET == 3\n emoji_hair_style_preset: &emoji_curly_hair {};\n #elif EMOJI_HAIR_STYLE_PRESET == 4\n emoji_hair_style_preset: &emoji_white_hair {};\n #endif\n/*HACK*//{", "config_parameters": [] } \ No newline at end of file