diff options
30 files changed, 5472 insertions, 1879 deletions
| diff --git a/data/constants/keycodes/keycodes_0.0.1.hjson b/data/constants/keycodes/keycodes_0.0.1.hjson new file mode 100644 index 0000000000..7ba1ecf201 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1.hjson @@ -0,0 +1,96 @@ +{ +    "ranges": { +        "0x0000/0x00FF": { +            "define": "QK_BASIC" +        }, +        "0x0100/0x1EFF": { +            "define": "QK_MODS" +        }, +        "0x2000/0x1FFF": { +            "define": "QK_MOD_TAP" +        }, +        "0x4000/0x0FFF": { +            "define": "QK_LAYER_TAP" +        }, +        "0x5000/0x01FF": { +            "define": "QK_LAYER_MOD" +        }, +        "0x5200/0x001F": { +            "define": "QK_TO" +        }, +        "0x5220/0x001F": { +            "define": "QK_MOMENTARY" +        }, +        "0x5240/0x001F": { +            "define": "QK_DEF_LAYER" +        }, +        "0x5260/0x001F": { +            "define": "QK_TOGGLE_LAYER" +        }, +        "0x5280/0x001F": { +            "define": "QK_ONE_SHOT_LAYER" +        }, +        "0x52A0/0x001F": { +            "define": "QK_ONE_SHOT_MOD" +        }, +        "0x52C0/0x001F": { +            "define": "QK_LAYER_TAP_TOGGLE" +        }, +        // 0x52E0/0x001F - UNUSED +        // 0x5300/0x02FF - UNUSED +        "0x5600/0x00FF": { +            "define": "QK_SWAP_HANDS" +        }, +        "0x5700/0x00FF": { +            "define": "QK_TAP_DANCE" +        }, +        // 0x5800/0x17FF - UNUSED +        "0x7000/0x00FF": { +            "define": "QK_MAGIC" +        }, +        "0x7100/0x00FF": { +            "define": "QK_MIDI" +        }, +        "0x7200/0x01FF": { +            "define": "QK_SEQUENCER" +        }, +        "0x7400/0x003F": { +            "define": "QK_JOYSTICK" +        }, +        "0x7440/0x003F": { +            "define": "QK_PROGRAMMABLE_BUTTON" +        }, +        "0x7480/0x003F": { +            "define": "QK_AUDIO" +        }, +        "0x74C0/0x003F": { +            "define": "QK_STENO" +        }, +        // 0x7500/0x01FF - UNUSED +        "0x7700/0x007F": { +            "define": "QK_MACRO" +        }, +        // 0x7780/0x007F - UNUSED +        "0x7800/0x00FF": { +            "define": "QK_LIGHTING" +        }, +        // 0x7900/0x02FF - UNUSED +        "0x7C00/0x01FF": { +            "define": "QK_QUANTUM" +        }, +        "0x7E00/0x00FF": { +            "define": "QK_KB" +        }, +        "0x7F00/0x00FF": { +            "define": "QK_USER" +        }, +        "0x8000/0x7FFF": { +            "define": "QK_UNICODE" +        } +    }, +    "keycodes": { +        "0x7E00": { +            "key": "SAFE_RANGE" +        } +    } +}
\ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_audio.hjson b/data/constants/keycodes/keycodes_0.0.1_audio.hjson new file mode 100644 index 0000000000..d26e515682 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_audio.hjson @@ -0,0 +1,84 @@ +{ +    "keycodes": { +        "0x7480": { +            "group": "audio", +            "key": "AU_ON" +        }, +        "0x7481": { +            "group": "audio", +            "key": "AU_OFF" +        }, +        "0x7482": { +            "group": "audio", +            "key": "AU_TOG" +        }, + +        "0x748A": { +            "group": "audio", +            "key": "CLICKY_TOGGLE", +            "aliases": [ +                "CK_TOGG" +            ] +        }, +        "0x748B": { +            "group": "audio", +            "key": "CLICKY_ENABLE", +            "aliases": [ +                "CK_ON" +            ] +        }, +        "0x748C": { +            "group": "audio", +            "key": "CLICKY_DISABLE", +            "aliases": [ +                "CK_OFF" +            ] +        }, +        "0x748D": { +            "group": "audio", +            "key": "CLICKY_UP", +            "aliases": [ +                "CK_UP" +            ] +        }, +        "0x748E": { +            "group": "audio", +            "key": "CLICKY_DOWN", +            "aliases": [ +                "CK_DOWN" +            ] +        }, +        "0x748F": { +            "group": "audio", +            "key": "CLICKY_RESET", +            "aliases": [ +                "CK_RST" +            ] +        }, + +        "0x7490": { +            "group": "audio", +            "key": "MU_ON" +        }, +        "0x7491": { +            "group": "audio", +            "key": "MU_OFF" +        }, +        "0x7492": { +            "group": "audio", +            "key": "MU_TOG" +        }, +        "0x7493": { +            "group": "audio", +            "key": "MU_MOD" +        }, +        "0x7494": { +            "group": "audio", +            "key": "MUV_IN" +        }, +        "0x7495": { +            "group": "audio", +            "key": "MUV_DE" +        } +    } +} diff --git a/data/constants/keycodes/keycodes_0.0.1_basic.hjson b/data/constants/keycodes/keycodes_0.0.1_basic.hjson new file mode 100644 index 0000000000..7141d553b0 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_basic.hjson @@ -0,0 +1,1515 @@ +{ +    "keycodes": { +        "0x0000": { +            "group": "internal", +            "key": "KC_NO", +            "label": "", +            "aliases": [ +                "XXXXXXX" +            ] +        }, +        "0x0001": { +            "group": "internal", +            "key": "KC_TRANSPARENT", +            "label": "", +            "aliases": [ +                "_______", +                "KC_TRNS" +            ] +        }, +        "0x0004": { +            "group": "basic", +            "key": "KC_A", +            "label": "A" +        }, +        "0x0005": { +            "group": "basic", +            "key": "KC_B", +            "label": "B" +        }, +        "0x0006": { +            "group": "basic", +            "key": "KC_C", +            "label": "C" +        }, +        "0x0007": { +            "group": "basic", +            "key": "KC_D", +            "label": "D" +        }, +        "0x0008": { +            "group": "basic", +            "key": "KC_E", +            "label": "E" +        }, +        "0x0009": { +            "group": "basic", +            "key": "KC_F", +            "label": "F" +        }, +        "0x000A": { +            "group": "basic", +            "key": "KC_G", +            "label": "G" +        }, +        "0x000B": { +            "group": "basic", +            "key": "KC_H", +            "label": "H" +        }, +        "0x000C": { +            "group": "basic", +            "key": "KC_I", +            "label": "I" +        }, +        "0x000D": { +            "group": "basic", +            "key": "KC_J", +            "label": "J" +        }, +        "0x000E": { +            "group": "basic", +            "key": "KC_K", +            "label": "K" +        }, +        "0x000F": { +            "group": "basic", +            "key": "KC_L", +            "label": "L" +        }, +        "0x0010": { +            "group": "basic", +            "key": "KC_M", +            "label": "M" +        }, +        "0x0011": { +            "group": "basic", +            "key": "KC_N", +            "label": "N" +        }, +        "0x0012": { +            "group": "basic", +            "key": "KC_O", +            "label": "O" +        }, +        "0x0013": { +            "group": "basic", +            "key": "KC_P", +            "label": "P" +        }, +        "0x0014": { +            "group": "basic", +            "key": "KC_Q", +            "label": "Q" +        }, +        "0x0015": { +            "group": "basic", +            "key": "KC_R", +            "label": "R" +        }, +        "0x0016": { +            "group": "basic", +            "key": "KC_S", +            "label": "S" +        }, +        "0x0017": { +            "group": "basic", +            "key": "KC_T", +            "label": "T" +        }, +        "0x0018": { +            "group": "basic", +            "key": "KC_U", +            "label": "U" +        }, +        "0x0019": { +            "group": "basic", +            "key": "KC_V", +            "label": "V" +        }, +        "0x001A": { +            "group": "basic", +            "key": "KC_W", +            "label": "W" +        }, +        "0x001B": { +            "group": "basic", +            "key": "KC_X", +            "label": "X" +        }, +        "0x001C": { +            "group": "basic", +            "key": "KC_Y", +            "label": "Y" +        }, +        "0x001D": { +            "group": "basic", +            "key": "KC_Z", +            "label": "Z" +        }, +        "0x001E": { +            "group": "basic", +            "key": "KC_1", +            "label": "1" +        }, +        "0x001F": { +            "group": "basic", +            "key": "KC_2", +            "label": "2" +        }, +        "0x0020": { +            "group": "basic", +            "key": "KC_3", +            "label": "3" +        }, +        "0x0021": { +            "group": "basic", +            "key": "KC_4", +            "label": "4" +        }, +        "0x0022": { +            "group": "basic", +            "key": "KC_5", +            "label": "5" +        }, +        "0x0023": { +            "group": "basic", +            "key": "KC_6", +            "label": "6" +        }, +        "0x0024": { +            "group": "basic", +            "key": "KC_7", +            "label": "7" +        }, +        "0x0025": { +            "group": "basic", +            "key": "KC_8", +            "label": "8" +        }, +        "0x0026": { +            "group": "basic", +            "key": "KC_9", +            "label": "9" +        }, +        "0x0027": { +            "group": "basic", +            "key": "KC_0", +            "label": "0" +        }, +        "0x0028": { +            "group": "basic", +            "key": "KC_ENTER", +            "label": "Enter", +            "aliases": [ +                "KC_ENT" +            ] +        }, +        "0x0029": { +            "group": "basic", +            "key": "KC_ESCAPE", +            "label": "Esc", +            "aliases": [ +                "KC_ESC" +            ] +        }, +        "0x002A": { +            "group": "basic", +            "key": "KC_BACKSPACE", +            "label": "Backspace", +            "aliases": [ +                "KC_BSPC" +            ] +        }, +        "0x002B": { +            "group": "basic", +            "key": "KC_TAB", +            "label": "Tab" +        }, +        "0x002C": { +            "group": "basic", +            "key": "KC_SPACE", +            "label": "Spacebar", +            "aliases": [ +                "KC_SPC" +            ] +        }, +        "0x002D": { +            "group": "basic", +            "key": "KC_MINUS", +            "label": "-", +            "aliases": [ +                "KC_MINS" +            ] +        }, +        "0x002E": { +            "group": "basic", +            "key": "KC_EQUAL", +            "label": "=", +            "aliases": [ +                "KC_EQL" +            ] +        }, +        "0x002F": { +            "group": "basic", +            "key": "KC_LEFT_BRACKET", +            "label": "]", +            "aliases": [ +                "KC_LBRC" +            ] +        }, +        "0x0030": { +            "group": "basic", +            "key": "KC_RIGHT_BRACKET", +            "label": "[", +            "aliases": [ +                "KC_RBRC" +            ] +        }, +        "0x0031": { +            "group": "basic", +            "key": "KC_BACKSLASH", +            "label": "\\", +            "aliases": [ +                "KC_BSLS" +            ] +        }, +        "0x0032": { +            "group": "basic", +            "key": "KC_NONUS_HASH", +            "label": "#", +            "aliases": [ +                "KC_NUHS" +            ] +        }, +        "0x0033": { +            "group": "basic", +            "key": "KC_SEMICOLON", +            "label": ";", +            "aliases": [ +                "KC_SCLN" +            ] +        }, +        "0x0034": { +            "group": "basic", +            "key": "KC_QUOTE", +            "label": "'", +            "aliases": [ +                "KC_QUOT" +            ] +        }, +        "0x0035": { +            "group": "basic", +            "key": "KC_GRAVE", +            "label": "`", +            "aliases": [ +                "KC_GRV" +            ] +        }, +        "0x0036": { +            "group": "basic", +            "key": "KC_COMMA", +            "label": ",", +            "aliases": [ +                "KC_COMM" +            ] +        }, +        "0x0037": { +            "group": "basic", +            "key": "KC_DOT", +            "label": "." +        }, +        "0x0038": { +            "group": "basic", +            "key": "KC_SLASH", +            "label": "/", +            "aliases": [ +                "KC_SLSH" +            ] +        }, +        "0x0039": { +            "group": "basic", +            "key": "KC_CAPS_LOCK", +            "label": "Caps Lock", +            "aliases": [ +                "KC_CAPS" +            ] +        }, +        "0x003A": { +            "group": "basic", +            "key": "KC_F1", +            "label": "F1" +        }, +        "0x003B": { +            "group": "basic", +            "key": "KC_F2", +            "label": "F2" +        }, +        "0x003C": { +            "group": "basic", +            "key": "KC_F3", +            "label": "F3" +        }, +        "0x003D": { +            "group": "basic", +            "key": "KC_F4", +            "label": "F4" +        }, +        "0x003E": { +            "group": "basic", +            "key": "KC_F5", +            "label": "F5" +        }, +        "0x003F": { +            "group": "basic", +            "key": "KC_F6", +            "label": "F6" +        }, +        "0x0040": { +            "group": "basic", +            "key": "KC_F7", +            "label": "F7" +        }, +        "0x0041": { +            "group": "basic", +            "key": "KC_F8", +            "label": "F8" +        }, +        "0x0042": { +            "group": "basic", +            "key": "KC_F9", +            "label": "F9" +        }, +        "0x0043": { +            "group": "basic", +            "key": "KC_F10", +            "label": "F10" +        }, +        "0x0044": { +            "group": "basic", +            "key": "KC_F11", +            "label": "F11" +        }, +        "0x0045": { +            "group": "basic", +            "key": "KC_F12", +            "label": "F12" +        }, +        "0x0046": { +            "group": "basic", +            "key": "KC_PRINT_SCREEN", +            "label": "Print Screen", +            "aliases": [ +                "KC_PSCR" +            ] +        }, +        "0x0047": { +            "group": "basic", +            "key": "KC_SCROLL_LOCK", +            "label": "Scroll Lock", +            "aliases": [ +                "KC_SCRL", +                "KC_BRMD" +            ] +        }, +        "0x0048": { +            "group": "basic", +            "key": "KC_PAUSE", +            "label": "Pause", +            "aliases": [ +                "KC_PAUS", +                "KC_BRK", +                "KC_BRMU" +            ] +        }, +        "0x0049": { +            "group": "basic", +            "key": "KC_INSERT", +            "label": "Insert", +            "aliases": [ +                "KC_INS" +            ] +        }, +        "0x004A": { +            "group": "basic", +            "key": "KC_HOME", +            "label": "Home" +        }, +        "0x004B": { +            "group": "basic", +            "key": "KC_PAGE_UP", +            "label": "Page Up", +            "aliases": [ +                "KC_PGUP" +            ] +        }, +        "0x004C": { +            "group": "basic", +            "key": "KC_DELETE", +            "label": "Delete", +            "aliases": [ +                "KC_DEL" +            ] +        }, +        "0x004D": { +            "group": "basic", +            "key": "KC_END", +            "label": "End" +        }, +        "0x004E": { +            "group": "basic", +            "key": "KC_PAGE_DOWN", +            "label": "Page Down", +            "aliases": [ +                "KC_PGDN" +            ] +        }, +        "0x004F": { +            "group": "basic", +            "key": "KC_RIGHT", +            "label": "Right", +            "aliases": [ +                "KC_RGHT" +            ] +        }, +        "0x0050": { +            "group": "basic", +            "key": "KC_LEFT", +            "label": "Left" +        }, +        "0x0051": { +            "group": "basic", +            "key": "KC_DOWN", +            "label": "Down" +        }, +        "0x0052": { +            "group": "basic", +            "key": "KC_UP", +            "label": "Up" +        }, +        "0x0053": { +            "group": "basic", +            "key": "KC_NUM_LOCK", +            "label": "Num Lock", +            "aliases": [ +                "KC_NUM" +            ] +        }, +        "0x0054": { +            "group": "basic", +            "key": "KC_KP_SLASH", +            "label": "/", +            "aliases": [ +                "KC_PSLS" +            ] +        }, +        "0x0055": { +            "group": "basic", +            "key": "KC_KP_ASTERISK", +            "label": "*", +            "aliases": [ +                "KC_PAST" +            ] +        }, +        "0x0056": { +            "group": "basic", +            "key": "KC_KP_MINUS", +            "label": "-", +            "aliases": [ +                "KC_PMNS" +            ] +        }, +        "0x0057": { +            "group": "basic", +            "key": "KC_KP_PLUS", +            "label": "+", +            "aliases": [ +                "KC_PPLS" +            ] +        }, +        "0x0058": { +            "group": "basic", +            "key": "KC_KP_ENTER", +            "label": "Enter", +            "aliases": [ +                "KC_PENT" +            ] +        }, +        "0x0059": { +            "group": "basic", +            "key": "KC_KP_1", +            "label": "1", +            "aliases": [ +                "KC_P1" +            ] +        }, +        "0x005A": { +            "group": "basic", +            "key": "KC_KP_2", +            "label": "2", +            "aliases": [ +                "KC_P2" +            ] +        }, +        "0x005B": { +            "group": "basic", +            "key": "KC_KP_3", +            "label": "3", +            "aliases": [ +                "KC_P3" +            ] +        }, +        "0x005C": { +            "group": "basic", +            "key": "KC_KP_4", +            "label": "4", +            "aliases": [ +                "KC_P4" +            ] +        }, +        "0x005D": { +            "group": "basic", +            "key": "KC_KP_5", +            "label": "5", +            "aliases": [ +                "KC_P5" +            ] +        }, +        "0x005E": { +            "group": "basic", +            "key": "KC_KP_6", +            "label": "6", +            "aliases": [ +                "KC_P6" +            ] +        }, +        "0x005F": { +            "group": "basic", +            "key": "KC_KP_7", +            "label": "7", +            "aliases": [ +                "KC_P7" +            ] +        }, +        "0x0060": { +            "group": "basic", +            "key": "KC_KP_8", +            "label": "8", +            "aliases": [ +                "KC_P8" +            ] +        }, +        "0x0061": { +            "group": "basic", +            "key": "KC_KP_9", +            "label": "9", +            "aliases": [ +                "KC_P9" +            ] +        }, +        "0x0062": { +            "group": "basic", +            "key": "KC_KP_0", +            "label": "0", +            "aliases": [ +                "KC_P0" +            ] +        }, +        "0x0063": { +            "group": "basic", +            "key": "KC_KP_DOT", +            "label": ".", +            "aliases": [ +                "KC_PDOT" +            ] +        }, +        "0x0064": { +            "group": "basic", +            "key": "KC_NONUS_BACKSLASH", +            "label": "\\", +            "aliases": [ +                "KC_NUBS" +            ] +        }, +        "0x0065": { +            "group": "basic", +            "key": "KC_APPLICATION", +            "label": "Application", +            "aliases": [ +                "KC_APP" +            ] +        }, +        "0x0066": { +            "group": "basic", +            "key": "KC_KB_POWER", +            "label": "Application" +        }, +        "0x0067": { +            "group": "basic", +            "key": "KC_KP_EQUAL", +            "label": "=", +            "aliases": [ +                "KC_PEQL" +            ] +        }, +        "0x0068": { +            "group": "basic", +            "key": "KC_F13", +            "label": "F13" +        }, +        "0x0069": { +            "group": "basic", +            "key": "KC_F14", +            "label": "F14" +        }, +        "0x006A": { +            "group": "basic", +            "key": "KC_F15", +            "label": "F15" +        }, +        "0x006B": { +            "group": "basic", +            "key": "KC_F16", +            "label": "F16" +        }, +        "0x006C": { +            "group": "basic", +            "key": "KC_F17", +            "label": "F17" +        }, +        "0x006D": { +            "group": "basic", +            "key": "KC_F18", +            "label": "F18" +        }, +        "0x006E": { +            "group": "basic", +            "key": "KC_F19", +            "label": "F19" +        }, +        "0x006F": { +            "group": "basic", +            "key": "KC_F20", +            "label": "F20" +        }, +        "0x0070": { +            "group": "basic", +            "key": "KC_F21", +            "label": "F21" +        }, +        "0x0071": { +            "group": "basic", +            "key": "KC_F22", +            "label": "F22" +        }, +        "0x0072": { +            "group": "basic", +            "key": "KC_F23", +            "label": "F23" +        }, +        "0x0073": { +            "group": "basic", +            "key": "KC_F24", +            "label": "F24" +        }, +        "0x0074": { +            "group": "basic", +            "key": "KC_EXECUTE", +            "label": "Execute", +            "aliases": [ +                "KC_EXEC" +            ] +        }, +        "0x0075": { +            "group": "basic", +            "key": "KC_HELP", +            "label": "Help" +        }, +        "0x0076": { +            "group": "basic", +            "key": "KC_MENU", +            "label": "Menu" +        }, +        "0x0077": { +            "group": "basic", +            "key": "KC_SELECT", +            "label": "Select", +            "aliases": [ +                "KC_SLCT" +            ] +        }, +        "0x0078": { +            "group": "basic", +            "key": "KC_STOP", +            "label": "Stop" +        }, +        "0x0079": { +            "group": "basic", +            "key": "KC_AGAIN", +            "label": "Again", +            "aliases": [ +                "KC_AGIN" +            ] +        }, +        "0x007A": { +            "group": "basic", +            "key": "KC_UNDO", +            "label": "Undo" +        }, +        "0x007B": { +            "group": "basic", +            "key": "KC_CUT", +            "label": "Cut" +        }, +        "0x007C": { +            "group": "basic", +            "key": "KC_COPY", +            "label": "Copy" +        }, +        "0x007D": { +            "group": "basic", +            "key": "KC_PASTE", +            "label": "Paste", +            "aliases": [ +                "KC_PSTE" +            ] +        }, +        "0x007E": { +            "group": "basic", +            "key": "KC_FIND", +            "label": "Find" +        }, +        "0x007F": { +            "group": "basic", +            "key": "KC_KB_MUTE", +            "label": "Mute" +        }, +        "0x0080": { +            "group": "basic", +            "key": "KC_KB_VOLUME_UP", +            "label": "Volume Up" +        }, +        "0x0081": { +            "group": "basic", +            "key": "KC_KB_VOLUME_DOWN", +            "label": "Volume Down" +        }, +        "0x0082": { +            "group": "basic", +            "key": "KC_LOCKING_CAPS_LOCK", +            "label": "Caps Lock", +            "aliases": [ +                "KC_LCAP" +            ] +        }, +        "0x0083": { +            "group": "basic", +            "key": "KC_LOCKING_NUM_LOCK", +            "label": "Num Lock", +            "aliases": [ +                "KC_LNUM" +            ] +        }, +        "0x0084": { +            "group": "basic", +            "key": "KC_LOCKING_SCROLL_LOCK", +            "label": "Scroll Lock", +            "aliases": [ +                "KC_LSCR" +            ] +        }, +        "0x0085": { +            "group": "basic", +            "key": "KC_KP_COMMA", +            "label": ",", +            "aliases": [ +                "KC_PCMM" +            ] +        }, +        "0x0086": { +            "group": "basic", +            "key": "KC_KP_EQUAL_AS400", +            "label": "=" +        }, +        "0x0087": { +            "group": "basic", +            "key": "KC_INTERNATIONAL_1", +            "label": "INT 1", +            "aliases": [ +                "KC_INT1" +            ] +        }, +        "0x0088": { +            "group": "basic", +            "key": "KC_INTERNATIONAL_2", +            "label": "INT 2", +            "aliases": [ +                "KC_INT2" +            ] +        }, +        "0x0089": { +            "group": "basic", +            "key": "KC_INTERNATIONAL_3", +            "label": "INT 3", +            "aliases": [ +                "KC_INT3" +            ] +        }, +        "0x008A": { +            "group": "basic", +            "key": "KC_INTERNATIONAL_4", +            "label": "INT 4", +            "aliases": [ +                "KC_INT4" +            ] +        }, +        "0x008B": { +            "group": "basic", +            "key": "KC_INTERNATIONAL_5", +            "label": "INT 5", +            "aliases": [ +                "KC_INT5" +            ] +        }, +        "0x008C": { +            "group": "basic", +            "key": "KC_INTERNATIONAL_6", +            "label": "INT 6", +            "aliases": [ +                "KC_INT6" +            ] +        }, +        "0x008D": { +            "group": "basic", +            "key": "KC_INTERNATIONAL_7", +            "label": "INT 7", +            "aliases": [ +                "KC_INT7" +            ] +        }, +        "0x008E": { +            "group": "basic", +            "key": "KC_INTERNATIONAL_8", +            "label": "INT 8", +            "aliases": [ +                "KC_INT8" +            ] +        }, +        "0x008F": { +            "group": "basic", +            "key": "KC_INTERNATIONAL_9", +            "label": "INT 9", +            "aliases": [ +                "KC_INT9" +            ] +        }, +        "0x0090": { +            "group": "basic", +            "key": "KC_LANGUAGE_1", +            "label": "LANG 1", +            "aliases": [ +                "KC_LNG1" +            ] +        }, +        "0x0091": { +            "group": "basic", +            "key": "KC_LANGUAGE_2", +            "label": "LANG 2", +            "aliases": [ +                "KC_LNG2" +            ] +        }, +        "0x0092": { +            "group": "basic", +            "key": "KC_LANGUAGE_3", +            "label": "LANG 3", +            "aliases": [ +                "KC_LNG3" +            ] +        }, +        "0x0093": { +            "group": "basic", +            "key": "KC_LANGUAGE_4", +            "label": "LANG 4", +            "aliases": [ +                "KC_LNG4" +            ] +        }, +        "0x0094": { +            "group": "basic", +            "key": "KC_LANGUAGE_5", +            "label": "LANG 5", +            "aliases": [ +                "KC_LNG5" +            ] +        }, +        "0x0095": { +            "group": "basic", +            "key": "KC_LANGUAGE_6", +            "label": "LANG 6", +            "aliases": [ +                "KC_LNG6" +            ] +        }, +        "0x0096": { +            "group": "basic", +            "key": "KC_LANGUAGE_7", +            "label": "LANG 7", +            "aliases": [ +                "KC_LNG7" +            ] +        }, +        "0x0097": { +            "group": "basic", +            "key": "KC_LANGUAGE_8", +            "label": "LANG 8", +            "aliases": [ +                "KC_LNG8" +            ] +        }, +        "0x0098": { +            "group": "basic", +            "key": "KC_LANGUAGE_9", +            "label": "LANG 9", +            "aliases": [ +                "KC_LNG9" +            ] +        }, +        "0x0099": { +            "group": "basic", +            "key": "KC_ALTERNATE_ERASE", +            "label": "Alternate Erase", +            "aliases": [ +                "KC_ERAS" +            ] +        }, +        "0x009A": { +            "group": "basic", +            "key": "KC_SYSTEM_REQUEST", +            "label": "SysReq/Attention", +            "aliases": [ +                "KC_SYRQ" +            ] +        }, +        "0x009B": { +            "group": "basic", +            "key": "KC_CANCEL", +            "label": "Cancel", +            "aliases": [ +                "KC_CNCL" +            ] +        }, +        "0x009C": { +            "group": "basic", +            "key": "KC_CLEAR", +            "label": "Clear", +            "aliases": [ +                "KC_CLR" +            ] +        }, +        "0x009D": { +            "group": "basic", +            "key": "KC_PRIOR", +            "label": "Prior", +            "aliases": [ +                "KC_PRIR" +            ] +        }, +        "0x009E": { +            "group": "basic", +            "key": "KC_RETURN", +            "label": "Return", +            "aliases": [ +                "KC_RETN" +            ] +        }, +        "0x009F": { +            "group": "basic", +            "key": "KC_SEPARATOR", +            "label": "Separator", +            "aliases": [ +                "KC_SEPR" +            ] +        }, +        "0x00A0": { +            "group": "basic", +            "key": "KC_OUT", +            "label": "Out" +        }, +        "0x00A1": { +            "group": "basic", +            "key": "KC_OPER", +            "label": "Oper" +        }, +        "0x00A2": { +            "group": "basic", +            "key": "KC_CLEAR_AGAIN", +            "label": "Clear/Again", +            "aliases": [ +                "KC_CLAG" +            ] +        }, +        "0x00A3": { +            "group": "basic", +            "key": "KC_CRSEL", +            "label": "CrSel/Props", +            "aliases": [ +                "KC_CRSL" +            ] +        }, +        "0x00A4": { +            "group": "basic", +            "key": "KC_EXSEL", +            "label": "ExSel", +            "aliases": [ +                "KC_EXSL" +            ] +        }, +        "0x00A5": { +            "group": "system", +            "key": "KC_SYSTEM_POWER", +            "label": "System Power Down", +            "aliases": [ +                "KC_PWR" +            ] +        }, +        "0x00A6": { +            "group": "system", +            "key": "KC_SYSTEM_SLEEP", +            "label": "System Sleep", +            "aliases": [ +                "KC_SLEP" +            ] +        }, +        "0x00A7": { +            "group": "system", +            "key": "KC_SYSTEM_WAKE", +            "label": "System Wake", +            "aliases": [ +                "KC_WAKE" +            ] +        }, +        "0x00A8": { +            "group": "media", +            "key": "KC_AUDIO_MUTE", +            "label": "Mute", +            "aliases": [ +                "KC_MUTE" +            ] +        }, +        "0x00A9": { +            "group": "media", +            "key": "KC_AUDIO_VOL_UP", +            "label": "Volume Up", +            "aliases": [ +                "KC_VOLU" +            ] +        }, +        "0x00AA": { +            "group": "media", +            "key": "KC_AUDIO_VOL_DOWN", +            "label": "Volume Down", +            "aliases": [ +                "KC_VOLD" +            ] +        }, +        "0x00AB": { +            "group": "media", +            "key": "KC_MEDIA_NEXT_TRACK", +            "label": "Next", +            "aliases": [ +                "KC_MNXT" +            ] +        }, +        "0x00AC": { +            "group": "media", +            "key": "KC_MEDIA_PREV_TRACK", +            "label": "Previous", +            "aliases": [ +                "KC_MPRV" +            ] +        }, +        "0x00AD": { +            "group": "media", +            "key": "KC_MEDIA_STOP", +            "label": "Stop", +            "aliases": [ +                "KC_MSTP" +            ] +        }, +        "0x00AE": { +            "group": "media", +            "key": "KC_MEDIA_PLAY_PAUSE", +            "label": "Mute", +            "aliases": [ +                "KC_MPLY" +            ] +        }, +        "0x00AF": { +            "group": "media", +            "key": "KC_MEDIA_SELECT", +            "label": "Launch Player", +            "aliases": [ +                "KC_MSEL" +            ] +        }, +        "0x00B0": { +            "group": "media", +            "key": "KC_MEDIA_EJECT", +            "label": "Eject", +            "aliases": [ +                "KC_EJCT" +            ] +        }, +        "0x00B1": { +            "group": "media", +            "key": "KC_MAIL", +            "label": "Launch Mail" +        }, +        "0x00B2": { +            "group": "media", +            "key": "KC_CALCULATOR", +            "label": "Launch Calculator", +            "aliases": [ +                "KC_CALC" +            ] +        }, +        "0x00B3": { +            "group": "media", +            "key": "KC_MY_COMPUTER", +            "label": "Launch My Computer", +            "aliases": [ +                "KC_MYCM" +            ] +        }, +        "0x00B4": { +            "group": "media", +            "key": "KC_WWW_SEARCH", +            "label": "Browser Search", +            "aliases": [ +                "KC_WSCH" +            ] +        }, +        "0x00B5": { +            "group": "media", +            "key": "KC_WWW_HOME", +            "label": "Browser Home", +            "aliases": [ +                "KC_WHOM" +            ] +        }, +        "0x00B6": { +            "group": "media", +            "key": "KC_WWW_BACK", +            "label": "Browser Back", +            "aliases": [ +                "KC_WBAK" +            ] +        }, +        "0x00B7": { +            "group": "media", +            "key": "KC_WWW_FORWARD", +            "label": "Browser Forward", +            "aliases": [ +                "KC_WFWD" +            ] +        }, +        "0x00B8": { +            "group": "media", +            "key": "KC_WWW_STOP", +            "label": "Browser Stop", +            "aliases": [ +                "KC_WSTP" +            ] +        }, +        "0x00B9": { +            "group": "media", +            "key": "KC_WWW_REFRESH", +            "label": "Browser Refresh", +            "aliases": [ +                "KC_WREF" +            ] +        }, +        "0x00BA": { +            "group": "media", +            "key": "KC_WWW_FAVORITES", +            "label": "Browser Favorites", +            "aliases": [ +                "KC_WFAV" +            ] +        }, +        "0x00BB": { +            "group": "media", +            "key": "KC_MEDIA_FAST_FORWARD", +            "label": "Next Track", +            "aliases": [ +                "KC_MFFD" +            ] +        }, +        "0x00BC": { +            "group": "media", +            "key": "KC_MEDIA_REWIND", +            "label": "Previous Track", +            "aliases": [ +                "KC_MRWD" +            ] +        }, +        "0x00BD": { +            "group": "media", +            "key": "KC_BRIGHTNESS_UP", +            "label": "Brightness Up", +            "aliases": [ +                "KC_BRIU" +            ] +        }, +        "0x00BE": { +            "group": "media", +            "key": "KC_BRIGHTNESS_DOWN", +            "label": "Brightness Down", +            "aliases": [ +                "KC_BRID" +            ] +        }, +        "0x00BF": { +            "group": "media", +            "key": "KC_CONTROL_PANEL", +            "label": "Open Control Panel", +            "aliases": [ +                "KC_CPNL" +            ] +        }, +        "0x00C0": { +            "group": "media", +            "key": "KC_ASSISTANT", +            "label": "Launch Assistant", +            "aliases": [ +                "KC_ASST" +            ] +        }, + +        "0x00CD": { +            "group": "mouse", +            "key": "KC_MS_UP", +            "label": "Move cursor up", +            "aliases": [ +                "KC_MS_U" +            ] +        }, +        "0x00CE": { +            "group": "mouse", +            "key": "KC_MS_DOWN", +            "label": "Move cursor down", +            "aliases": [ +                "KC_MS_D" +            ] +        }, +        "0x00CF": { +            "group": "mouse", +            "key": "KC_MS_LEFT", +            "label": "Move cursor left", +            "aliases": [ +                "KC_MS_L" +            ] +        }, +        "0x00D0": { +            "group": "mouse", +            "key": "KC_MS_RIGHT", +            "label": "Move cursor right", +            "aliases": [ +                "KC_MS_R" +            ] +        }, +        "0x00D1": { +            "group": "mouse", +            "key": "KC_MS_BTN1", +            "label": "Press button 1", +            "aliases": [ +                "KC_BTN1" +            ] +        }, +        "0x00D2": { +            "group": "mouse", +            "key": "KC_MS_BTN2", +            "label": "Press button 2", +            "aliases": [ +                "KC_BTN2" +            ] +        }, +        "0x00D3": { +            "group": "mouse", +            "key": "KC_MS_BTN3", +            "label": "Press button 3", +            "aliases": [ +                "KC_BTN3" +            ] +        }, +        "0x00D4": { +            "group": "mouse", +            "key": "KC_MS_BTN4", +            "label": "Press button 4", +            "aliases": [ +                "KC_BTN4" +            ] +        }, +        "0x00D5": { +            "group": "mouse", +            "key": "KC_MS_BTN5", +            "label": "Press button 5", +            "aliases": [ +                "KC_BTN5" +            ] +        }, +        "0x00D6": { +            "group": "mouse", +            "key": "KC_MS_BTN6", +            "label": "Press button 6", +            "aliases": [ +                "KC_BTN6" +            ] +        }, +        "0x00D7": { +            "group": "mouse", +            "key": "KC_MS_BTN7", +            "label": "Press button 7", +            "aliases": [ +                "KC_BTN7" +            ] +        }, +        "0x00D8": { +            "group": "mouse", +            "key": "KC_MS_BTN8", +            "label": "Press button 8", +            "aliases": [ +                "KC_BTN8" +            ] +        }, +        "0x00D9": { +            "group": "mouse", +            "key": "KC_MS_WH_UP", +            "label": "Move wheel up", +            "aliases": [ +                "KC_WH_U" +            ] +        }, +        "0x00DA": { +            "group": "mouse", +            "key": "KC_MS_WH_DOWN", +            "label": "Move wheel down", +            "aliases": [ +                "KC_WH_D" +            ] +        }, +        "0x00DB": { +            "group": "mouse", +            "key": "KC_MS_WH_LEFT", +            "label": "Move wheel left", +            "aliases": [ +                "KC_WH_L" +            ] +        }, +        "0x00DC": { +            "group": "mouse", +            "key": "KC_MS_WH_RIGHT", +            "label": "Move wheel right", +            "aliases": [ +                "KC_WH_R" +            ] +        }, +        "0x00DD": { +            "group": "mouse", +            "key": "KC_MS_ACCEL0", +            "label": "Set speed to 0", +            "aliases": [ +                "KC_ACL0" +            ] +        }, +        "0x00DE": { +            "group": "mouse", +            "key": "KC_MS_ACCEL1", +            "label": "Set speed to 1", +            "aliases": [ +                "KC_ACL1" +            ] +        }, +        "0x00DF": { +            "group": "mouse", +            "key": "KC_MS_ACCEL2", +            "label": "Set speed to 2", +            "aliases": [ +                "KC_ACL2" +            ] +        }, + +        "0x00E0": { +            "group": "modifiers", +            "key": "KC_LEFT_CTRL", +            "label": "Left Control", +            "aliases": [ +                "KC_LCTL" +            ] +        }, +        "0x00E1": { +            "group": "modifiers", +            "key": "KC_LEFT_SHIFT", +            "label": "Left Shift", +            "aliases": [ +                "KC_LSFT" +            ] +        }, +        "0x00E2": { +            "group": "modifiers", +            "key": "KC_LEFT_ALT", +            "label": "Left Alt", +            "aliases": [ +                "KC_LALT", +                "KC_LOPT" +            ] +        }, +        "0x00E3": { +            "group": "modifiers", +            "key": "KC_LEFT_GUI", +            "label": "Left GUI", +            "aliases": [ +                "KC_LGUI", +                "KC_LCMD", +                "KC_LWIN" +            ] +        }, +        "0x00E4": { +            "group": "modifiers", +            "key": "KC_RIGHT_CTRL", +            "label": "Right Control", +            "aliases": [ +                "KC_RCTL" +            ] +        }, +        "0x00E5": { +            "group": "modifiers", +            "key": "KC_RIGHT_SHIFT", +            "label": "Right Shift", +            "aliases": [ +                "KC_RSFT" +            ] +        }, +        "0x00E6": { +            "group": "modifiers", +            "key": "KC_RIGHT_ALT", +            "label": "Right Alt", +            "aliases": [ +                "KC_RALT", +                "KC_ROPT", +                "KC_ALGR" +            ] +        }, +        "0x00E7": { +            "group": "modifiers", +            "key": "KC_RIGHT_GUI", +            "label": "Right GUI", +            "aliases": [ +                "KC_RGUI", +                "KC_RCMD", +                "KC_RWIN" +            ] +        } +    } +}
\ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson new file mode 100644 index 0000000000..0bda7c29f3 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson @@ -0,0 +1,228 @@ +{ +    "keycodes": { +        "0x7400": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_0", +            "aliases": [ +                "JS_0" +            ] +        }, +        "0x7401": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_1", +            "aliases": [ +                "JS_1" +            ] +        }, +        "0x7402": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_2", +            "aliases": [ +                "JS_2" +            ] +        }, +        "0x7403": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_3", +            "aliases": [ +                "JS_3" +            ] +        }, +        "0x7404": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_4", +            "aliases": [ +                "JS_4" +            ] +        }, +        "0x7405": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_5", +            "aliases": [ +                "JS_5" +            ] +        }, +        "0x7406": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_6", +            "aliases": [ +                "JS_6" +            ] +        }, +        "0x7407": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_7", +            "aliases": [ +                "JS_7" +            ] +        }, +        "0x7408": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_8", +            "aliases": [ +                "JS_8" +            ] +        }, +        "0x7409": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_9", +            "aliases": [ +                "JS_9" +            ] +        }, +        "0x740A": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_10", +            "aliases": [ +                "JS_10" +            ] +        }, +        "0x740B": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_11", +            "aliases": [ +                "JS_11" +            ] +        }, +        "0x740C": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_12", +            "aliases": [ +                "JS_12" +            ] +        }, +        "0x740D": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_13", +            "aliases": [ +                "JS_13" +            ] +        }, +        "0x740E": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_14", +            "aliases": [ +                "JS_14" +            ] +        }, +        "0x740F": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_15", +            "aliases": [ +                "JS_15" +            ] +        }, +        "0x7410": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_16", +            "aliases": [ +                "JS_16" +            ] +        }, +        "0x7411": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_17", +            "aliases": [ +                "JS_17" +            ] +        }, +        "0x7412": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_18", +            "aliases": [ +                "JS_18" +            ] +        }, +        "0x7413": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_19", +            "aliases": [ +                "JS_19" +            ] +        }, +        "0x7414": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_20", +            "aliases": [ +                "JS_20" +            ] +        }, +        "0x7415": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_21", +            "aliases": [ +                "JS_21" +            ] +        }, +        "0x7416": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_22", +            "aliases": [ +                "JS_22" +            ] +        }, +        "0x7417": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_23", +            "aliases": [ +                "JS_23" +            ] +        }, +        "0x7418": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_24", +            "aliases": [ +                "JS_24" +            ] +        }, +        "0x7419": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_25", +            "aliases": [ +                "JS_25" +            ] +        }, +        "0x741A": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_26", +            "aliases": [ +                "JS_26" +            ] +        }, +        "0x741B": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_27", +            "aliases": [ +                "JS_27" +            ] +        }, +        "0x741C": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_28", +            "aliases": [ +                "JS_28" +            ] +        }, +        "0x741D": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_29", +            "aliases": [ +                "JS_29" +            ] +        }, +        "0x741E": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_30", +            "aliases": [ +                "JS_30" +            ] +        }, +        "0x741F": { +            "group": "joystick", +            "key": "QK_JOYSTICK_BUTTON_31", +            "aliases": [ +                "JS_31" +            ] +        } +    } +}
\ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_lighting.hjson b/data/constants/keycodes/keycodes_0.0.1_lighting.hjson new file mode 100644 index 0000000000..90ed36c645 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_lighting.hjson @@ -0,0 +1,154 @@ +{ +    "keycodes": { +        "0x7800": { +            "group": "backlight", +            "key": "BL_ON" +        }, +        "0x7801": { +            "group": "backlight", +            "key": "BL_OFF" +        }, +        "0x7802": { +            "group": "backlight", +            "key": "BL_DEC" +        }, +        "0x7803": { +            "group": "backlight", +            "key": "BL_INC" +        }, +        "0x7804": { +            "group": "backlight", +            "key": "BL_TOGG" +        }, +        "0x7805": { +            "group": "backlight", +            "key": "BL_STEP" +        }, +        "0x7806": { +            "group": "backlight", +            "key": "BL_BRTG" +        }, + +        "0x7820": { +            "group": "rgb", +            "key": "RGB_TOG" +        }, +        "0x7821": { +            "group": "rgb", +            "key": "RGB_MODE_FORWARD", +            "aliases": [ +                "RGB_MOD" +            ] +        }, +        "0x7822": { +            "group": "rgb", +            "key": "RGB_MODE_REVERSE", +            "aliases": [ +                "RGB_RMOD" +            ] +        }, +        "0x7823": { +            "group": "rgb", +            "key": "RGB_HUI" +        }, +        "0x7824": { +            "group": "rgb", +            "key": "RGB_HUD" +        }, +        "0x7825": { +            "group": "rgb", +            "key": "RGB_SAI" +        }, +        "0x7826": { +            "group": "rgb", +            "key": "RGB_SAD" +        }, +        "0x7827": { +            "group": "rgb", +            "key": "RGB_VAI" +        }, +        "0x7828": { +            "group": "rgb", +            "key": "RGB_VAD" +        }, +        "0x7829": { +            "group": "rgb", +            "key": "RGB_SPI" +        }, +        "0x782A": { +            "group": "rgb", +            "key": "RGB_SPD" +        }, + +        "0x782B": { +            "group": "rgb", +            "key": "RGB_MODE_PLAIN", +            "aliases": [ +                "RGB_M_P" +            ] +        }, +        "0x782C": { +            "group": "rgb", +            "key": "RGB_MODE_BREATHE", +            "aliases": [ +                "RGB_M_B" +            ] +        }, +        "0x782D": { +            "group": "rgb", +            "key": "RGB_MODE_RAINBOW", +            "aliases": [ +                "RGB_M_R" +            ] +        }, +        "0x782E": { +            "group": "rgb", +            "key": "RGB_MODE_SWIRL", +            "aliases": [ +                "RGB_M_SW" +            ] +        }, +        "0x782F": { +            "group": "rgb", +            "key": "RGB_MODE_SNAKE", +            "aliases": [ +                "RGB_M_SN" +            ] +        }, +        "0x7830": { +            "group": "rgb", +            "key": "RGB_MODE_KNIGHT", +            "aliases": [ +                "RGB_M_K" +            ] +        }, +        "0x7831": { +            "group": "rgb", +            "key": "RGB_MODE_XMAS", +            "aliases": [ +                "RGB_M_X" +            ] +        }, +        "0x7832": { +            "group": "rgb", +            "key": "RGB_MODE_GRADIENT", +            "aliases": [ +                "RGB_M_G" +            ] +        }, +        "0x7833": { +            "group": "rgb", +            "key": "RGB_MODE_RGBTEST", +            "aliases": [ +                "RGB_M_T" +            ] +        }, +        "0x7834": { +            "group": "rgb", +            "key": "RGB_MODE_TWINKLE", +            "aliases": [ +                "RGB_M_TW" +            ] +        } +    } +}
\ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_macro.hjson b/data/constants/keycodes/keycodes_0.0.1_macro.hjson new file mode 100644 index 0000000000..70b9ecf154 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_macro.hjson @@ -0,0 +1,133 @@ +{ +    "keycodes": { + +        "0x7700": { +            "group": "macro", +            "key": "MACRO_0" +        }, +        "0x7701": { +            "group": "macro", +            "key": "MACRO_1" +        }, +        "0x7702": { +            "group": "macro", +            "key": "MACRO_2" +        }, +        "0x7703": { +            "group": "macro", +            "key": "MACRO_3" +        }, +        "0x7704": { +            "group": "macro", +            "key": "MACRO_4" +        }, +        "0x7705": { +            "group": "macro", +            "key": "MACRO_5" +        }, +        "0x7706": { +            "group": "macro", +            "key": "MACRO_6" +        }, +        "0x7707": { +            "group": "macro", +            "key": "MACRO_7" +        }, +        "0x7708": { +            "group": "macro", +            "key": "MACRO_8" +        }, +        "0x7709": { +            "group": "macro", +            "key": "MACRO_9" +        }, +        "0x770A": { +            "group": "macro", +            "key": "MACRO_10" +        }, +        "0x770B": { +            "group": "macro", +            "key": "MACRO_11" +        }, +        "0x770C": { +            "group": "macro", +            "key": "MACRO_12" +        }, +        "0x770D": { +            "group": "macro", +            "key": "MACRO_13" +        }, +        "0x770E": { +            "group": "macro", +            "key": "MACRO_14" +        }, +        "0x770F": { +            "group": "macro", +            "key": "MACRO_15" +        }, +        "0x7710": { +            "group": "macro", +            "key": "MACRO_16" +        }, +        "0x7711": { +            "group": "macro", +            "key": "MACRO_17" +        }, +        "0x7712": { +            "group": "macro", +            "key": "MACRO_18" +        }, +        "0x7713": { +            "group": "macro", +            "key": "MACRO_19" +        }, +        "0x7714": { +            "group": "macro", +            "key": "MACRO_20" +        }, +        "0x7715": { +            "group": "macro", +            "key": "MACRO_21" +        }, +        "0x7716": { +            "group": "macro", +            "key": "MACRO_22" +        }, +        "0x7717": { +            "group": "macro", +            "key": "MACRO_23" +        }, +        "0x7718": { +            "group": "macro", +            "key": "MACRO_24" +        }, +        "0x7719": { +            "group": "macro", +            "key": "MACRO_25" +        }, +        "0x771A": { +            "group": "macro", +            "key": "MACRO_26" +        }, +        "0x771B": { +            "group": "macro", +            "key": "MACRO_27" +        }, +        "0x771C": { +            "group": "macro", +            "key": "MACRO_28" +        }, +        "0x771D": { +            "group": "macro", +            "key": "MACRO_29" +        }, +        "0x771E": { +            "group": "macro", +            "key": "MACRO_30" +        }, +        "0x771F": { +            "group": "macro", +            "key": "MACRO_31" +        } +    } +}
\ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_magic.hjson b/data/constants/keycodes/keycodes_0.0.1_magic.hjson new file mode 100644 index 0000000000..7ee1f2bce9 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_magic.hjson @@ -0,0 +1,249 @@ +{ +    "keycodes": { +        "0x7000": { +            "group": "magic", +            "key": "MAGIC_SWAP_CONTROL_CAPSLOCK", +            "aliases": [ +                "CL_SWAP" +            ] +        }, +        "0x7001": { +            "group": "magic", +            "key": "MAGIC_UNSWAP_CONTROL_CAPSLOCK", +            "aliases": [ +                "CL_NORM" +            ] +        }, +        "0x7002": { +            "group": "magic", +            "key": "MAGIC_TOGGLE_CONTROL_CAPSLOCK", +            "aliases": [ +                "CL_TOGG" +            ] +        }, +        "0x7003": { +            "group": "magic", +            "key": "MAGIC_UNCAPSLOCK_TO_CONTROL", +            "aliases": [ +                "CL_CAPS" +            ] +        }, +        "0x7004": { +            "group": "magic", +            "key": "MAGIC_CAPSLOCK_TO_CONTROL", +            "aliases": [ +                "CL_CTRL" +            ] +        }, +        "0x7005": { +            "group": "magic", +            "key": "MAGIC_SWAP_LALT_LGUI", +            "aliases": [ +                "LAG_SWP" +            ] +        }, +        "0x7006": { +            "group": "magic", +            "key": "MAGIC_UNSWAP_LALT_LGUI", +            "aliases": [ +                "LAG_NRM" +            ] +        }, +        "0x7007": { +            "group": "magic", +            "key": "MAGIC_SWAP_RALT_RGUI", +            "aliases": [ +                "RAG_SWP" +            ] +        }, +        "0x7008": { +            "group": "magic", +            "key": "MAGIC_UNSWAP_RALT_RGUI", +            "aliases": [ +                "RAG_NRM" +            ] +        }, +        "0x7009": { +            "group": "magic", +            "key": "MAGIC_UNNO_GUI", +            "aliases": [ +                "GUI_ON" +            ] +        }, +        "0x700A": { +            "group": "magic", +            "key": "MAGIC_NO_GUI", +            "aliases": [ +                "GUI_OFF" +            ] +        }, +        "0x700B": { +            "group": "magic", +            "key": "MAGIC_TOGGLE_GUI", +            "aliases": [ +                "GUI_TOG" +            ] +        }, +        "0x700C": { +            "group": "magic", +            "key": "MAGIC_SWAP_GRAVE_ESC", +            "aliases": [ +                "GE_SWAP" +            ] +        }, +        "0x700D": { +            "group": "magic", +            "key": "MAGIC_UNSWAP_GRAVE_ESC", +            "aliases": [ +                "GE_NORM" +            ] +        }, +        "0x700E": { +            "group": "magic", +            "key": "MAGIC_SWAP_BACKSLASH_BACKSPACE", +            "aliases": [ +                "BS_SWAP" +            ] +        }, +        "0x700F": { +            "group": "magic", +            "key": "MAGIC_UNSWAP_BACKSLASH_BACKSPACE", +            "aliases": [ +                "BS_NORM" +            ] +        }, +        "0x7010": { +            "group": "magic", +            "key": "MAGIC_TOGGLE_BACKSLASH_BACKSPACE", +            "aliases": [ +                "BS_TOGG" +            ] +        }, +        "0x7011": { +            "group": "magic", +            "key": "MAGIC_HOST_NKRO", +            "aliases": [ +                "NK_ON" +            ] +        }, +        "0x7012": { +            "group": "magic", +            "key": "MAGIC_UNHOST_NKRO", +            "aliases": [ +                "NK_OFF" +            ] +        }, +        "0x7013": { +            "group": "magic", +            "key": "MAGIC_TOGGLE_NKRO", +            "aliases": [ +                "NK_TOGG" +            ] +        }, +        "0x7014": { +            "group": "magic", +            "key": "MAGIC_SWAP_ALT_GUI", +            "aliases": [ +                "AG_SWAP" +            ] +        }, +        "0x7015": { +            "group": "magic", +            "key": "MAGIC_UNSWAP_ALT_GUI", +            "aliases": [ +                "AG_NORM" +            ] +        }, +        "0x7016": { +            "group": "magic", +            "key": "MAGIC_TOGGLE_ALT_GUI", +            "aliases": [ +                "AG_TOGG" +            ] +        }, +        "0x7017": { +            "group": "magic", +            "key": "MAGIC_SWAP_LCTL_LGUI", +            "aliases": [ +                "LCG_SWP" +            ] +        }, +        "0x7018": { +            "group": "magic", +            "key": "MAGIC_UNSWAP_LCTL_LGUI", +            "aliases": [ +                "LCG_NRM" +            ] +        }, +        "0x7019": { +            "group": "magic", +            "key": "MAGIC_SWAP_RCTL_RGUI", +            "aliases": [ +                "RCG_SWP" +            ] +        }, +        "0x701A": { +            "group": "magic", +            "key": "MAGIC_UNSWAP_RCTL_RGUI", +            "aliases": [ +                "RCG_NRM" +            ] +        }, +        "0x701B": { +            "group": "magic", +            "key": "MAGIC_SWAP_CTL_GUI", +            "aliases": [ +                "CG_SWAP" +            ] +        }, +        "0x701C": { +            "group": "magic", +            "key": "MAGIC_UNSWAP_CTL_GUI", +            "aliases": [ +                "CG_NORM" +            ] +        }, +        "0x701D": { +            "group": "magic", +            "key": "MAGIC_TOGGLE_CTL_GUI", +            "aliases": [ +                "CG_TOGG" +            ] +        }, +        "0x701E": { +            "group": "magic", +            "key": "MAGIC_EE_HANDS_LEFT", +            "aliases": [ +                "EH_LEFT" +            ] +        }, +        "0x701F": { +            "group": "magic", +            "key": "MAGIC_EE_HANDS_RIGHT", +            "aliases": [ +                "EH_RGHT" +            ] +        }, +        "0x7020": { +            "group": "magic", +            "key": "MAGIC_SWAP_ESCAPE_CAPSLOCK", +            "aliases": [ +                "EC_SWAP" +            ] +        }, +        "0x7021": { +            "group": "magic", +            "key": "MAGIC_UNSWAP_ESCAPE_CAPSLOCK", +            "aliases": [ +                "EC_NORM" +            ] +        }, +        "0x7022": { +            "group": "magic", +            "key": "MAGIC_TOGGLE_ESCAPE_CAPSLOCK", +            "aliases": [ +                "EC_TOGG" +            ] +        } +    } +}
\ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_midi.hjson b/data/constants/keycodes/keycodes_0.0.1_midi.hjson new file mode 100644 index 0000000000..72d6e38900 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_midi.hjson @@ -0,0 +1,670 @@ +{ +    "keycodes": { +        "0x7100": { +            "group": "midi", +            "key": "MI_ON" +        }, +        "0x7101": { +            "group": "midi", +            "key": "MI_OFF" +        }, +        "0x7102": { +            "group": "midi", +            "key": "MI_TOG" +        }, +        "0x7110": { +            "group": "midi", +            "key": "MI_C" +        }, +        "0x7111": { +            "group": "midi", +            "key": "MI_Cs", +            "aliases": [ +                "MI_Db" +            ] +        }, +        "0x7112": { +            "group": "midi", +            "key": "MI_D" +        }, +        "0x7113": { +            "group": "midi", +            "key": "MI_Ds", +            "aliases": [ +                "MI_Eb" +            ] +        }, +        "0x7114": { +            "group": "midi", +            "key": "MI_E" +        }, +        "0x7115": { +            "group": "midi", +            "key": "MI_F" +        }, +        "0x7116": { +            "group": "midi", +            "key": "MI_Fs", +            "aliases": [ +                "MI_Gb" +            ] +        }, +        "0x7117": { +            "group": "midi", +            "key": "MI_G" +        }, +        "0x7118": { +            "group": "midi", +            "key": "MI_Gs", +            "aliases": [ +                "MI_Ab" +            ] +        }, +        "0x7119": { +            "group": "midi", +            "key": "MI_A" +        }, +        "0x711A": { +            "group": "midi", +            "key": "MI_As", +            "aliases": [ +                "MI_Bb" +            ] +        }, +        "0x711B": { +            "group": "midi", +            "key": "MI_B" +        }, +        "0x7120": { +            "group": "midi", +            "key": "MI_C_1" +        }, +        "0x7121": { +            "group": "midi", +            "key": "MI_Cs_1", +            "aliases": [ +                "MI_Db_1" +            ] +        }, +        "0x7122": { +            "group": "midi", +            "key": "MI_D_1" +        }, +        "0x7123": { +            "group": "midi", +            "key": "MI_Ds_1", +            "aliases": [ +                "MI_Eb_1" +            ] +        }, +        "0x7124": { +            "group": "midi", +            "key": "MI_E_1" +        }, +        "0x7125": { +            "group": "midi", +            "key": "MI_F_1" +        }, +        "0x7126": { +            "group": "midi", +            "key": "MI_Fs_1", +            "aliases": [ +                "MI_Gb_1" +            ] +        }, +        "0x7127": { +            "group": "midi", +            "key": "MI_G_1" +        }, +        "0x7128": { +            "group": "midi", +            "key": "MI_Gs_1", +            "aliases": [ +                "MI_Ab_1" +            ] +        }, +        "0x7129": { +            "group": "midi", +            "key": "MI_A_1" +        }, +        "0x712A": { +            "group": "midi", +            "key": "MI_As_1", +            "aliases": [ +                "MI_Bb_1" +            ] +        }, +        "0x712B": { +            "group": "midi", +            "key": "MI_B_1" +        }, +        "0x7130": { +            "group": "midi", +            "key": "MI_C_2" +        }, +        "0x7131": { +            "group": "midi", +            "key": "MI_Cs_2", +            "aliases": [ +                "MI_Db_2" +            ] +        }, +        "0x7132": { +            "group": "midi", +            "key": "MI_D_2" +        }, +        "0x7133": { +            "group": "midi", +            "key": "MI_Ds_2", +            "aliases": [ +                "MI_Eb_2" +            ] +        }, +        "0x7134": { +            "group": "midi", +            "key": "MI_E_2" +        }, +        "0x7135": { +            "group": "midi", +            "key": "MI_F_2" +        }, +        "0x7136": { +            "group": "midi", +            "key": "MI_Fs_2", +            "aliases": [ +                "MI_Gb_2" +            ] +        }, +        "0x7137": { +            "group": "midi", +            "key": "MI_G_2" +        }, +        "0x7138": { +            "group": "midi", +            "key": "MI_Gs_2", +            "aliases": [ +                "MI_Ab_2" +            ] +        }, +        "0x7139": { +            "group": "midi", +            "key": "MI_A_2" +        }, +        "0x713A": { +            "group": "midi", +            "key": "MI_As_2", +            "aliases": [ +                "MI_Bb_2" +            ] +        }, +        "0x713B": { +            "group": "midi", +            "key": "MI_B_2" +        }, +        "0x7140": { +            "group": "midi", +            "key": "MI_C_3" +        }, +        "0x7141": { +            "group": "midi", +            "key": "MI_Cs_3", +            "aliases": [ +                "MI_Db_3" +            ] +        }, +        "0x7142": { +            "group": "midi", +            "key": "MI_D_3" +        }, +        "0x7143": { +            "group": "midi", +            "key": "MI_Ds_3", +            "aliases": [ +                "MI_Eb_3" +            ] +        }, +        "0x7144": { +            "group": "midi", +            "key": "MI_E_3" +        }, +        "0x7145": { +            "group": "midi", +            "key": "MI_F_3" +        }, +        "0x7146": { +            "group": "midi", +            "key": "MI_Fs_3", +            "aliases": [ +                "MI_Gb_3" +            ] +        }, +        "0x7147": { +            "group": "midi", +            "key": "MI_G_3" +        }, +        "0x7148": { +            "group": "midi", +            "key": "MI_Gs_3", +            "aliases": [ +                "MI_Ab_3" +            ] +        }, +        "0x7149": { +            "group": "midi", +            "key": "MI_A_3" +        }, +        "0x714A": { +            "group": "midi", +            "key": "MI_As_3", +            "aliases": [ +                "MI_Bb_3" +            ] +        }, +        "0x714B": { +            "group": "midi", +            "key": "MI_B_3" +        }, +        "0x7150": { +            "group": "midi", +            "key": "MI_C_4" +        }, +        "0x7151": { +            "group": "midi", +            "key": "MI_Cs_4", +            "aliases": [ +                "MI_Db_4" +            ] +        }, +        "0x7152": { +            "group": "midi", +            "key": "MI_D_4" +        }, +        "0x7153": { +            "group": "midi", +            "key": "MI_Ds_4", +            "aliases": [ +                "MI_Eb_4" +            ] +        }, +        "0x7154": { +            "group": "midi", +            "key": "MI_E_4" +        }, +        "0x7155": { +            "group": "midi", +            "key": "MI_F_4" +        }, +        "0x7156": { +            "group": "midi", +            "key": "MI_Fs_4", +            "aliases": [ +                "MI_Gb_4" +            ] +        }, +        "0x7157": { +            "group": "midi", +            "key": "MI_G_4" +        }, +        "0x7158": { +            "group": "midi", +            "key": "MI_Gs_4", +            "aliases": [ +                "MI_Ab_4" +            ] +        }, +        "0x7159": { +            "group": "midi", +            "key": "MI_A_4" +        }, +        "0x715A": { +            "group": "midi", +            "key": "MI_As_4", +            "aliases": [ +                "MI_Bb_4" +            ] +        }, +        "0x715B": { +            "group": "midi", +            "key": "MI_B_4" +        }, +        "0x7160": { +            "group": "midi", +            "key": "MI_C_5" +        }, +        "0x7161": { +            "group": "midi", +            "key": "MI_Cs_5", +            "aliases": [ +                "MI_Db_5" +            ] +        }, +        "0x7162": { +            "group": "midi", +            "key": "MI_D_5" +        }, +        "0x7163": { +            "group": "midi", +            "key": "MI_Ds_5", +            "aliases": [ +                "MI_Eb_5" +            ] +        }, +        "0x7164": { +            "group": "midi", +            "key": "MI_E_5" +        }, +        "0x7165": { +            "group": "midi", +            "key": "MI_F_5" +        }, +        "0x7166": { +            "group": "midi", +            "key": "MI_Fs_5", +            "aliases": [ +                "MI_Gb_5" +            ] +        }, +        "0x7167": { +            "group": "midi", +            "key": "MI_G_5" +        }, +        "0x7168": { +            "group": "midi", +            "key": "MI_Gs_5", +            "aliases": [ +                "MI_Ab_5" +            ] +        }, +        "0x7169": { +            "group": "midi", +            "key": "MI_A_5" +        }, +        "0x716A": { +            "group": "midi", +            "key": "MI_As_5", +            "aliases": [ +                "MI_Bb_5" +            ] +        }, +        "0x716B": { +            "group": "midi", +            "key": "MI_B_5" +        }, +        "0x7170": { +            "group": "midi", +            "key": "MI_OCT_N2" +        }, +        "0x7171": { +            "group": "midi", +            "key": "MI_OCT_N1" +        }, +        "0x7172": { +            "group": "midi", +            "key": "MI_OCT_0" +        }, +        "0x7173": { +            "group": "midi", +            "key": "MI_OCT_1" +        }, +        "0x7174": { +            "group": "midi", +            "key": "MI_OCT_2" +        }, +        "0x7175": { +            "group": "midi", +            "key": "MI_OCT_3" +        }, +        "0x7176": { +            "group": "midi", +            "key": "MI_OCT_4" +        }, +        "0x7177": { +            "group": "midi", +            "key": "MI_OCT_5" +        }, +        "0x7178": { +            "group": "midi", +            "key": "MI_OCT_6" +        }, +        "0x7179": { +            "group": "midi", +            "key": "MI_OCT_7" +        }, +        "0x717A": { +            "group": "midi", +            "key": "MI_OCTD" +        }, +        "0x717B": { +            "group": "midi", +            "key": "MI_OCTU" +        }, +        "0x7180": { +            "group": "midi", +            "key": "MI_TRNS_N6" +        }, +        "0x7181": { +            "group": "midi", +            "key": "MI_TRNS_N5" +        }, +        "0x7182": { +            "group": "midi", +            "key": "MI_TRNS_N4" +        }, +        "0x7183": { +            "group": "midi", +            "key": "MI_TRNS_N3" +        }, +        "0x7184": { +            "group": "midi", +            "key": "MI_TRNS_N2" +        }, +        "0x7185": { +            "group": "midi", +            "key": "MI_TRNS_N1" +        }, +        "0x7186": { +            "group": "midi", +            "key": "MI_TRNS_0" +        }, +        "0x7187": { +            "group": "midi", +            "key": "MI_TRNS_1" +        }, +        "0x7188": { +            "group": "midi", +            "key": "MI_TRNS_2" +        }, +        "0x7189": { +            "group": "midi", +            "key": "MI_TRNS_3" +        }, +        "0x718A": { +            "group": "midi", +            "key": "MI_TRNS_4" +        }, +        "0x718B": { +            "group": "midi", +            "key": "MI_TRNS_5" +        }, +        "0x718C": { +            "group": "midi", +            "key": "MI_TRNS_6" +        }, +        "0x718D": { +            "group": "midi", +            "key": "MI_TRNSD" +        }, +        "0x718E": { +            "group": "midi", +            "key": "MI_TRNSU" +        }, +        "0x7190": { +            "group": "midi", +            "key": "MI_VEL_0" +        }, +        "0x7191": { +            "group": "midi", +            "key": "MI_VEL_1" +        }, +        "0x7192": { +            "group": "midi", +            "key": "MI_VEL_2" +        }, +        "0x7193": { +            "group": "midi", +            "key": "MI_VEL_3" +        }, +        "0x7194": { +            "group": "midi", +            "key": "MI_VEL_4" +        }, +        "0x7195": { +            "group": "midi", +            "key": "MI_VEL_5" +        }, +        "0x7196": { +            "group": "midi", +            "key": "MI_VEL_6" +        }, +        "0x7197": { +            "group": "midi", +            "key": "MI_VEL_7" +        }, +        "0x7198": { +            "group": "midi", +            "key": "MI_VEL_8" +        }, +        "0x7199": { +            "group": "midi", +            "key": "MI_VEL_9" +        }, +        "0x719A": { +            "group": "midi", +            "key": "MI_VEL_10" +        }, +        "0x719B": { +            "group": "midi", +            "key": "MI_VELD" +        }, +        "0x719C": { +            "group": "midi", +            "key": "MI_VELU" +        }, +        "0x71A0": { +            "group": "midi", +            "key": "MI_CH1" +        }, +        "0x71A1": { +            "group": "midi", +            "key": "MI_CH2" +        }, +        "0x71A2": { +            "group": "midi", +            "key": "MI_CH3" +        }, +        "0x71A3": { +            "group": "midi", +            "key": "MI_CH4" +        }, +        "0x71A4": { +            "group": "midi", +            "key": "MI_CH5" +        }, +        "0x71A5": { +            "group": "midi", +            "key": "MI_CH6" +        }, +        "0x71A6": { +            "group": "midi", +            "key": "MI_CH7" +        }, +        "0x71A7": { +            "group": "midi", +            "key": "MI_CH8" +        }, +        "0x71A8": { +            "group": "midi", +            "key": "MI_CH9" +        }, +        "0x71A9": { +            "group": "midi", +            "key": "MI_CH10" +        }, +        "0x71AA": { +            "group": "midi", +            "key": "MI_CH11" +        }, +        "0x71AB": { +            "group": "midi", +            "key": "MI_CH12" +        }, +        "0x71AC": { +            "group": "midi", +            "key": "MI_CH13" +        }, +        "0x71AD": { +            "group": "midi", +            "key": "MI_CH14" +        }, +        "0x71AE": { +            "group": "midi", +            "key": "MI_CH15" +        }, +        "0x71AF": { +            "group": "midi", +            "key": "MI_CH16" +        }, +        "0x71B0": { +            "group": "midi", +            "key": "MI_CHD" +        }, +        "0x71B1": { +            "group": "midi", +            "key": "MI_CHU" +        }, +        "0x71C0": { +            "group": "midi", +            "key": "MI_ALLOFF" +        }, +        "0x71C1": { +            "group": "midi", +            "key": "MI_SUS" +        }, +        "0x71C2": { +            "group": "midi", +            "key": "MI_PORT" +        }, +        "0x71C3": { +            "group": "midi", +            "key": "MI_SOST" +        }, +        "0x71C4": { +            "group": "midi", +            "key": "MI_SOFT" +        }, +        "0x71C5": { +            "group": "midi", +            "key": "MI_LEG" +        }, +        "0x71C6": { +            "group": "midi", +            "key": "MI_MOD" +        }, +        "0x71C7": { +            "group": "midi", +            "key": "MI_MODSD" +        }, +        "0x71C8": { +            "group": "midi", +            "key": "MI_MODSU" +        }, +        "0x71C9": { +            "group": "midi", +            "key": "MI_BENDD" +        }, +        "0x71CA": { +            "group": "midi", +            "key": "MI_BENDU" +        } +    } +} diff --git a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson new file mode 100644 index 0000000000..645bcd6a39 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson @@ -0,0 +1,228 @@ +{ +    "keycodes": { +        "0x7440": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_1", +            "aliases": [ +                "PB_1" +            ] +        }, +        "0x7441": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_2", +            "aliases": [ +                "PB_2" +            ] +        }, +        "0x7442": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_3", +            "aliases": [ +                "PB_3" +            ] +        }, +        "0x7443": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_4", +            "aliases": [ +                "PB_4" +            ] +        }, +        "0x7444": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_5", +            "aliases": [ +                "PB_5" +            ] +        }, +        "0x7445": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_6", +            "aliases": [ +                "PB_6" +            ] +        }, +        "0x7446": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_7", +            "aliases": [ +                "PB_7" +            ] +        }, +        "0x7447": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_8", +            "aliases": [ +                "PB_8" +            ] +        }, +        "0x7448": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_9", +            "aliases": [ +                "PB_9" +            ] +        }, +        "0x7449": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_10", +            "aliases": [ +                "PB_10" +            ] +        }, +        "0x744A": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_11", +            "aliases": [ +                "PB_11" +            ] +        }, +        "0x744B": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_12", +            "aliases": [ +                "PB_12" +            ] +        }, +        "0x744C": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_13", +            "aliases": [ +                "PB_13" +            ] +        }, +        "0x744D": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_14", +            "aliases": [ +                "PB_14" +            ] +        }, +        "0x744E": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_15", +            "aliases": [ +                "PB_15" +            ] +        }, +        "0x744F": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_16", +            "aliases": [ +                "PB_16" +            ] +        }, +        "0x7450": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_17", +            "aliases": [ +                "PB_17" +            ] +        }, +        "0x7451": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_18", +            "aliases": [ +                "PB_18" +            ] +        }, +        "0x7452": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_19", +            "aliases": [ +                "PB_19" +            ] +        }, +        "0x7453": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_20", +            "aliases": [ +                "PB_20" +            ] +        }, +        "0x7454": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_21", +            "aliases": [ +                "PB_21" +            ] +        }, +        "0x7455": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_22", +            "aliases": [ +                "PB_22" +            ] +        }, +        "0x7456": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_23", +            "aliases": [ +                "PB_23" +            ] +        }, +        "0x7457": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_24", +            "aliases": [ +                "PB_24" +            ] +        }, +        "0x7458": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_25", +            "aliases": [ +                "PB_25" +            ] +        }, +        "0x7459": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_26", +            "aliases": [ +                "PB_26" +            ] +        }, +        "0x745A": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_27", +            "aliases": [ +                "PB_27" +            ] +        }, +        "0x745B": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_28", +            "aliases": [ +                "PB_28" +            ] +        }, +        "0x745C": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_29", +            "aliases": [ +                "PB_29" +            ] +        }, +        "0x745D": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_30", +            "aliases": [ +                "PB_30" +            ] +        }, +        "0x745E": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_31", +            "aliases": [ +                "PB_31" +            ] +        }, +        "0x745F": { +            "group": "programmable_button", +            "key": "QK_PROGRAMMABLE_BUTTON_32", +            "aliases": [ +                "PB_32" +            ] +        } +    } +}
\ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_quantum.hjson b/data/constants/keycodes/keycodes_0.0.1_quantum.hjson new file mode 100644 index 0000000000..ceb9d4d16c --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_quantum.hjson @@ -0,0 +1,464 @@ +{ +    "keycodes": { +        "0x7C00": { +            "group": "quantum", +            "key": "QK_BOOTLOADER", +            "aliases": [ +                "QK_BOOT" +            ] +        }, +        "0x7C01": { +            "group": "quantum", +            "key": "QK_REBOOT", +            "aliases": [ +                "QK_RBT" +            ] +        }, +        "0x7C02": { +            "group": "quantum", +            "key": "QK_DEBUG_TOGGLE", +            "aliases": [ +                "DB_TOGG" +            ] +        }, +        "0x7C03": { +            "group": "quantum", +            "key": "QK_CLEAR_EEPROM", +            "aliases": [ +                "EE_CLR" +            ] +        }, +        "0x7C04": { +            "group": "quantum", +            "key": "QK_MAKE" +        }, + +        "0x7C10": { +            "group": "quantum", +            "key": "QK_AUTO_SHIFT_DOWN", +            "aliases": [ +                "AS_DOWN" +            ] +        }, +        "0x7C11": { +            "group": "quantum", +            "key": "QK_AUTO_SHIFT_UP", +            "aliases": [ +                "AS_UP" +            ] +        }, +        "0x7C12": { +            "group": "quantum", +            "key": "QK_AUTO_SHIFT_REPORT", +            "aliases": [ +                "AS_RPT" +            ] +        }, +        "0x7C13": { +            "group": "quantum", +            "key": "QK_AUTO_SHIFT_ON", +            "aliases": [ +                "AS_ON" +            ] +        }, +        "0x7C14": { +            "group": "quantum", +            "key": "QK_AUTO_SHIFT_OFF", +            "aliases": [ +                "AS_OFF" +            ] +        }, +        "0x7C15": { +            "group": "quantum", +            "key": "QK_AUTO_SHIFT_TOGGLE", +            "aliases": [ +                "AS_TOGG" +            ] +        }, + +        "0x7C16": { +            "group": "quantum", +            "key": "QK_GRAVE_ESCAPE", +            "aliases": [ +                "QK_GESC" +            ] +        }, + +        "0x7C17": { +            "group": "quantum", +            "key": "QK_VELOCIKEY_TOGGLE", +            "aliases": [ +                "VK_TOGG" +            ] +        }, + +        "0x7C18": { +            "group": "quantum", +            "key": "QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN", +            "aliases": [ +                "SC_LCPO" +            ] +        }, +        "0x7C19": { +            "group": "quantum", +            "key": "QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE", +            "aliases": [ +                "SC_RCPC" +            ] +        }, +        "0x7C1A": { +            "group": "quantum", +            "key": "QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN", +            "aliases": [ +                "SC_LSPO" +            ] +        }, +        "0x7C1B": { +            "group": "quantum", +            "key": "QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE", +            "aliases": [ +                "SC_RSPC" +            ] +        }, +        "0x7C1C": { +            "group": "quantum", +            "key": "QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN", +            "aliases": [ +                "SC_LAPO" +            ] +        }, +        "0x7C1D": { +            "group": "quantum", +            "key": "QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE", +            "aliases": [ +                "SC_RAPC" +            ] +        }, +        "0x7C1E": { +            "group": "quantum", +            "key": "QK_SPACE_CADET_RIGHT_SHIFT_ENTER", +            "aliases": [ +                "SC_SENT" +            ] +        }, + +        "0x7C20": { +            "group": "quantum", +            "key": "OUT_AUTO" +        }, +        "0x7C21": { +            "group": "quantum", +            "key": "OUT_USB" +        }, +        "0x7C22": { +            "group": "quantum", +            "key": "OUT_BT" +        }, + +        "0x7C30": { +            "group": "quantum", +            "key": "QK_UNICODE_MODE_NEXT", +            "aliases": [ +                "UC_NEXT" +            ] +        }, +        "0x7C31": { +            "group": "quantum", +            "key": "QK_UNICODE_MODE_PREVIOUS", +            "aliases": [ +                "UC_PREV" +            ] +        }, +        "0x7C32": { +            "group": "quantum", +            "key": "QK_UNICODE_MODE_MACOS", +            "aliases": [ +                "UC_MAC" +            ] +        }, +        "0x7C33": { +            "group": "quantum", +            "key": "QK_UNICODE_MODE_LINUX", +            "aliases": [ +                "UC_LINX" +            ] +        }, +        "0x7C34": { +            "group": "quantum", +            "key": "QK_UNICODE_MODE_WINDOWS", +            "aliases": [ +                "UC_WIN" +            ] +        }, +        "0x7C35": { +            "group": "quantum", +            "key": "QK_UNICODE_MODE_BSD", +            "aliases": [ +                "UC_BSD" +            ] +        }, +        "0x7C36": { +            "group": "quantum", +            "key": "QK_UNICODE_MODE_WINCOMPOSE", +            "aliases": [ +                "UC_WINC" +            ] +        }, +        "0x7C37": { +            "group": "quantum", +            "key": "QK_UNICODE_MODE_EMACS", +            "aliases": [ +                "UC_EMAC" +            ] +        }, + +        "0x7C40": { +            "group": "quantum", +            "key": "HPT_ON" +        }, +        "0x7C41": { +            "group": "quantum", +            "key": "HPT_OFF" +        }, +        "0x7C42": { +            "group": "quantum", +            "key": "HPT_TOG" +        }, +        "0x7C43": { +            "group": "quantum", +            "key": "HPT_RST" +        }, +        "0x7C44": { +            "group": "quantum", +            "key": "HPT_FBK" +        }, +        "0x7C45": { +            "group": "quantum", +            "key": "HPT_BUZ" +        }, +        "0x7C46": { +            "group": "quantum", +            "key": "HPT_MODI" +        }, +        "0x7C47": { +            "group": "quantum", +            "key": "HPT_MODD" +        }, +        "0x7C48": { +            "group": "quantum", +            "key": "HPT_CONT" +        }, +        "0x7C49": { +            "group": "quantum", +            "key": "HPT_CONI" +        }, +        "0x7C4A": { +            "group": "quantum", +            "key": "HPT_COND" +        }, +        "0x7C4B": { +            "group": "quantum", +            "key": "HPT_DWLI" +        }, +        "0x7C4C": { +            "group": "quantum", +            "key": "HPT_DWLD" +        }, + +        "0x7C50": { +            "group": "quantum", +            "key": "QK_COMBO_ON", +            "aliases": [ +                "CM_ON" +            ] +        }, +        "0x7C51": { +            "group": "quantum", +            "key": "QK_COMBO_OFF", +            "aliases": [ +                "CM_OFF" +            ] +        }, +        "0x7C52": { +            "group": "quantum", +            "key": "QK_COMBO_TOGGLE", +            "aliases": [ +                "CM_TOGG" +            ] +        }, + +        "0x7C53": { +            "group": "quantum", +            "key": "QK_DYNAMIC_MACRO_RECORD_START_1", +            "aliases": [ +                "DM_REC1" +            ] +        }, +        "0x7C54": { +            "group": "quantum", +            "key": "QK_DYNAMIC_MACRO_RECORD_START_2", +            "aliases": [ +                "DM_REC2" +            ] +        }, +        "0x7C55": { +            "group": "quantum", +            "key": "QK_DYNAMIC_MACRO_RECORD_STOP", +            "aliases": [ +                "DM_RSTP" +            ] +        }, +        "0x7C56": { +            "group": "quantum", +            "key": "QK_DYNAMIC_MACRO_PLAY_1", +            "aliases": [ +                "DM_PLY1" +            ] +        }, +        "0x7C57": { +            "group": "quantum", +            "key": "QK_DYNAMIC_MACRO_PLAY_2", +            "aliases": [ +                "DM_PLY2" +            ] +        }, + +        "0x7C58": { +            "group": "quantum", +            "key": "QK_LEADER", +            "aliases": [ +                "QK_LEAD" +            ] +        }, + +        "0x7C59": { +            "group": "quantum", +            "key": "QK_LOCK" +        }, + +        "0x7C5A": { +            "group": "quantum", +            "key": "QK_ONE_SHOT_ON", +            "aliases": [ +                "OS_ON" +            ] +        }, +        "0x7C5B": { +            "group": "quantum", +            "key": "QK_ONE_SHOT_OFF", +            "aliases": [ +                "OS_OFF" +            ] +        }, +        "0x7C5C": { +            "group": "quantum", +            "key": "QK_ONE_SHOT_TOGGLE", +            "aliases": [ +                "OS_TOGG" +            ] +        }, + +        "0x7C5D": { +            "group": "quantum", +            "key": "QK_KEY_OVERRIDE_TOGGLE", +            "aliases": [ +                "KO_TOGG" +            ] +        }, +        "0x7C5E": { +            "group": "quantum", +            "key": "QK_KEY_OVERRIDE_ON", +            "aliases": [ +                "KO_ON" +            ] +        }, +        "0x7C5F": { +            "group": "quantum", +            "key": "QK_KEY_OVERRIDE_OFF", +            "aliases": [ +                "KO_OFF" +            ] +        }, + +        "0x7C60": { +            "group": "quantum", +            "key": "QK_SECURE_LOCK", +            "aliases": [ +                "SE_LOCK" +            ] +        }, +        "0x7C61": { +            "group": "quantum", +            "key": "QK_SECURE_UNLOCK", +            "aliases": [ +                "SE_UNLK" +            ] +        }, +        "0x7C62": { +            "group": "quantum", +            "key": "QK_SECURE_TOGGLE", +            "aliases": [ +                "SE_TOGG" +            ] +        }, +        "0x7C63": { +            "group": "quantum", +            "key": "QK_SECURE_REQUEST", +            "aliases": [ +                "SE_REQ" +            ] +        }, + +        "0x7C70": { +            "group": "quantum", +            "key": "DT_PRNT" +        }, +        "0x7C71": { +            "group": "quantum", +            "key": "DT_UP" +        }, +        "0x7C72": { +            "group": "quantum", +            "key": "DT_DOWN" +        }, + +        "0x7C73": { +            "group": "quantum", +            "key": "PRINT_ON" +        }, +        "0x7C74": { +            "group": "quantum", +            "key": "PRINT_OFF" +        }, + +        "0x7C75": { +            "group": "quantum", +            "key": "QK_CAPS_WORD_TOGGLE", +            "aliases": [ +                "CW_TOGG" +            ] +        }, + +        "0x7C76": { +            "group": "quantum", +            "key": "QK_AUTOCORRECT_ON", +            "aliases": [ +                "AC_ON" +            ] +        }, +        "0x7C77": { +            "group": "quantum", +            "key": "QK_AUTOCORRECT_OFF", +            "aliases": [ +                "AC_OFF" +            ] +        }, +        "0x7C78": { +            "group": "quantum", +            "key": "QK_AUTOCORRECT_TOGGLE", +            "aliases": [ +                "AC_TOGG" +            ] +        } +    } +}
\ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson b/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson new file mode 100644 index 0000000000..039d09b2fa --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson @@ -0,0 +1,40 @@ +{ +    "keycodes": { +        "0x7200": { +            "group": "sequencer", +            "key": "SQ_ON" +        }, +        "0x7201": { +            "group": "sequencer", +            "key": "SQ_OFF" +        }, +        "0x7202": { +            "group": "sequencer", +            "key": "SQ_TOG" +        }, +        "0x7203": { +            "group": "sequencer", +            "key": "SQ_TMPD" +        }, +        "0x7204": { +            "group": "sequencer", +            "key": "SQ_TMPU" +        }, +        "0x7205": { +            "group": "sequencer", +            "key": "SQ_RESD" +        }, +        "0x7206": { +            "group": "sequencer", +            "key": "SQ_RESU" +        }, +        "0x7207": { +            "group": "sequencer", +            "key": "SQ_SALL" +        }, +        "0x7208": { +            "group": "sequencer", +            "key": "SQ_SCLR" +        } +    } +}
\ No newline at end of file diff --git a/data/constants/keycodes/keycodes_0.0.1_steno.hjson b/data/constants/keycodes/keycodes_0.0.1_steno.hjson new file mode 100644 index 0000000000..cd19fdcde5 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_steno.hjson @@ -0,0 +1,20 @@ +{ +    "keycodes": { +        "0x74F0": { +            "group": "steno", +            "key": "QK_STENO_BOLT" +        }, +        "0x74F1": { +            "group": "steno", +            "key": "QK_STENO_GEMINI" +        }, +        "0x74F2": { +            "group": "steno", +            "key": "QK_STENO_COMB" +        }, +        "0x74FC": { +            "group": "steno", +            "key": "QK_STENO_COMB_MAX" +        } +    } +} diff --git a/data/constants/keycodes/keycodes_0.0.1_swap_hands.hjson b/data/constants/keycodes/keycodes_0.0.1_swap_hands.hjson new file mode 100644 index 0000000000..c800baef35 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.1_swap_hands.hjson @@ -0,0 +1,32 @@ +{ +    "keycodes": { +        "0x56F0": { +            "group": "swap_hands", +            "key": "SH_TG" +        }, +        "0x56F1": { +            "group": "swap_hands", +            "key": "SH_TT" +        }, +        "0x56F2": { +            "group": "swap_hands", +            "key": "SH_MON" +        }, +        "0x56F3": { +            "group": "swap_hands", +            "key": "SH_MOFF" +        }, +        "0x56F4": { +            "group": "swap_hands", +            "key": "SH_OFF" +        }, +        "0x56F5": { +            "group": "swap_hands", +            "key": "SH_ON" +        }, +        "0x56F6": { +            "group": "swap_hands", +            "key": "SH_OS" +        } +    } +} diff --git a/data/schemas/keycodes.jsonschema b/data/schemas/keycodes.jsonschema new file mode 100644 index 0000000000..77a8347b3b --- /dev/null +++ b/data/schemas/keycodes.jsonschema @@ -0,0 +1,57 @@ +{ +    "$schema": "https://json-schema.org/draft/2020-12/schema#", +    "$id": "qmk.keycodes.v1", +    "title": "Keycode Information", +    "type": "object", +    "definitions": { +        "define": { +            "type": "string", +            "minLength": 2, +            "maxLength": 50, +            "pattern": "^[A-Zs_0-9]*$" +        }, +        "hex_number_4d": { +            "type": "string", +            "pattern": "^0x[0-9A-F]{4}$" +        } +    }, +    "properties": { +        "ranges": { +            "type": "object", +            "propertyNames": { +                "type": "string" +            }, +            "additionalProperties": { +                "type": "object", +                "required": [ +                    "define" +                ], +                "properties": { +                    "define": {"$ref": "#/definitions/define"} +                } +            } +        }, +        "keycodes": { +            "type": "object", +            "propertyNames": { +                "$ref": "#/definitions/hex_number_4d" +            }, +            "additionalProperties": { +                "type": "object", +                "required": [ +                    "key" +                ], +                "properties": { +                    "key": {"$ref": "#/definitions/define"}, +                    "aliases": { +                        "type": "array", +                        "minItems": 1, +                        "items": { +                            "type": "string" +                        } +                    } +                } +            } +        } +    } +} diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index cf5b5ad87e..9190af4e50 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -56,6 +56,7 @@ subcommands = [      'qmk.cli.generate.info_json',      'qmk.cli.generate.keyboard_c',      'qmk.cli.generate.keyboard_h', +    'qmk.cli.generate.keycodes',      'qmk.cli.generate.rgb_breathe_table',      'qmk.cli.generate.rules_mk',      'qmk.cli.generate.version_h', diff --git a/lib/python/qmk/cli/generate/api.py b/lib/python/qmk/cli/generate/api.py index 8d8ca3cd41..0f29cd2327 100755 --- a/lib/python/qmk/cli/generate/api.py +++ b/lib/python/qmk/cli/generate/api.py @@ -11,12 +11,23 @@ from qmk.info import info_json  from qmk.json_encoders import InfoJSONEncoder  from qmk.json_schema import json_load  from qmk.keyboard import find_readme, list_keyboards +from qmk.keycodes import load_spec, list_versions  DATA_PATH = Path('data')  TEMPLATE_PATH = DATA_PATH / 'templates/api/'  BUILD_API_PATH = Path('.build/api_data/') +def _resolve_keycode_specs(output_folder): +    """To make it easier for consumers, publish pre-merged spec files +    """ +    for version in list_versions(): +        overall = load_spec(version) + +        output_file = output_folder / f'constants/keycodes_{version}.json' +        output_file.write_text(json.dumps(overall, indent=4), encoding='utf-8') + +  def _filtered_keyboard_list():      """Perform basic filtering of list_keyboards      """ @@ -95,6 +106,9 @@ def generate_api(cli):          'usb': usb_list,      } +    # Feature specific handling +    _resolve_keycode_specs(v1_dir) +      # Write the global JSON files      keyboard_all_json = json.dumps({'last_updated': current_datetime(), 'keyboards': kb_all}, cls=InfoJSONEncoder)      usb_json = json.dumps({'last_updated': current_datetime(), 'usb': usb_list}, cls=InfoJSONEncoder) diff --git a/lib/python/qmk/cli/generate/keycodes.py b/lib/python/qmk/cli/generate/keycodes.py new file mode 100644 index 0000000000..29b7db3c80 --- /dev/null +++ b/lib/python/qmk/cli/generate/keycodes.py @@ -0,0 +1,88 @@ +"""Used by the make system to generate keycodes.h from keycodes_{version}.json +""" +from milc import cli + +from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE +from qmk.commands import dump_lines +from qmk.path import normpath +from qmk.keycodes import load_spec + + +def _generate_ranges(lines, keycodes): +    lines.append('') +    lines.append('enum qk_keycode_ranges {') +    lines.append('// Ranges') +    for key, value in keycodes["ranges"].items(): +        lo, mask = map(lambda x: int(x, 16), key.split("/")) +        hi = lo + mask +        define = value.get("define") +        lines.append(f'    {define.ljust(30)} = 0x{lo:04X},') +        lines.append(f'    {(define + "_MAX").ljust(30)} = 0x{hi:04X},') +    lines.append('};') + + +def _generate_defines(lines, keycodes): +    lines.append('') +    lines.append('enum qk_keycode_defines {') +    lines.append('// Keycodes') +    for key, value in keycodes["keycodes"].items(): +        lines.append(f'    {value.get("key")} = {key},') + +    lines.append('') +    lines.append('// Alias') +    for key, value in keycodes["keycodes"].items(): +        temp = value.get("key") +        for alias in value.get("aliases", []): +            lines.append(f'    {alias.ljust(10)} = {temp},') + +    lines.append('};') + + +def _generate_helpers(lines, keycodes): +    lines.append('') +    lines.append('// Range Helpers') +    for value in keycodes["ranges"].values(): +        define = value.get("define") +        lines.append(f'#define IS_{define}(code) ((code) >= {define} && (code) <= {define + "_MAX"})') + +    # extract min/max +    temp = {} +    for key, value in keycodes["keycodes"].items(): +        group = value.get('group', None) +        if not group: +            continue +        if group not in temp: +            temp[group] = [0xFFFF, 0] +        key = int(key, 16) +        if key < temp[group][0]: +            temp[group][0] = key +        if key > temp[group][1]: +            temp[group][1] = key + +    lines.append('') +    lines.append('// Group Helpers') +    for group, codes in temp.items(): +        lo = keycodes["keycodes"][f'0x{codes[0]:04X}']['key'] +        hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key'] +        lines.append(f'#define IS_{ group.upper() }_KEYCODE(code) ((code) >= {lo} && (code) <= {hi})') + + [email protected]('-v', '--version', arg_only=True, required=True, help='Version of keycodes to generate.') [email protected]('-o', '--output', arg_only=True, type=normpath, help='File to write to') [email protected]('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") [email protected]('Used by the make system to generate keycodes.h from keycodes_{version}.json', hidden=True) +def generate_keycodes(cli): +    """Generates the keycodes.h file. +    """ + +    # Build the keycodes.h file. +    keycodes_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '// clang-format off'] + +    keycodes = load_spec(cli.args.version) + +    _generate_ranges(keycodes_h_lines, keycodes) +    _generate_defines(keycodes_h_lines, keycodes) +    _generate_helpers(keycodes_h_lines, keycodes) + +    # Show the results +    dump_lines(cli.args.output, keycodes_h_lines, cli.args.quiet) diff --git a/lib/python/qmk/keycodes.py b/lib/python/qmk/keycodes.py new file mode 100644 index 0000000000..cf1ee0767a --- /dev/null +++ b/lib/python/qmk/keycodes.py @@ -0,0 +1,57 @@ +from pathlib import Path + +from qmk.json_schema import deep_update, json_load, validate + +CONSTANTS_PATH = Path('data/constants/keycodes/') + + +def _validate(spec): +    # first throw it to the jsonschema +    validate(spec, 'qmk.keycodes.v1') + +    # no duplicate keycodes +    keycodes = [] +    for value in spec['keycodes'].values(): +        keycodes.append(value['key']) +        keycodes.extend(value.get('aliases', [])) +    duplicates = set([x for x in keycodes if keycodes.count(x) > 1]) +    if duplicates: +        raise ValueError(f'Keycode spec contains duplicate keycodes! ({",".join(duplicates)})') + + +def load_spec(version): +    """Build keycode data from the requested spec file +    """ +    if version == 'latest': +        version = list_versions()[0] + +    file = CONSTANTS_PATH / f'keycodes_{version}.hjson' +    if not file.exists(): +        raise ValueError(f'Requested keycode spec ({version}) is invalid!') + +    # Load base +    spec = json_load(file) + +    # Merge in fragments +    fragments = CONSTANTS_PATH.glob(f'keycodes_{version}_*.hjson') +    for file in fragments: +        deep_update(spec, json_load(file)) + +    # Sort? +    spec['keycodes'] = dict(sorted(spec['keycodes'].items())) + +    # Validate? +    _validate(spec) + +    return spec + + +def list_versions(): +    """Return available versions - sorted newest first +    """ +    ret = [] +    for file in CONSTANTS_PATH.glob('keycodes_[0-9].[0-9].[0-9].hjson'): +        ret.append(file.stem.split('_')[1]) + +    ret.sort(reverse=True) +    return ret diff --git a/quantum/action_code.h b/quantum/action_code.h index 14cfd025f1..58d929016d 100644 --- a/quantum/action_code.h +++ b/quantum/action_code.h @@ -179,6 +179,9 @@ enum mods_bit {      MOD_RALT = 0x14,      MOD_RGUI = 0x18,  }; +#define MOD_HYPR (MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI) +#define MOD_MEH (MOD_LCTL | MOD_LSFT | MOD_LALT) +  enum mods_codes {      MODS_ONESHOT    = 0x00,      MODS_TAP_TOGGLE = 0x01, diff --git a/quantum/keycode.h b/quantum/keycode.h index 2e9a85ee66..45736e92f1 100644 --- a/quantum/keycode.h +++ b/quantum/keycode.h @@ -26,16 +26,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  /* FIXME: Add doxygen comments here */ -#define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED)  #define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF) -#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL) -#define IS_MOD(code) (KC_LEFT_CTRL <= (code) && (code) <= KC_RIGHT_GUI) +#define IS_KEY(code) IS_BASIC_KEYCODE(code) +#define IS_MOD(code) IS_MODIFIERS_KEYCODE(code) -#define IS_SPECIAL(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF)) -#define IS_SYSTEM(code) (KC_PWR <= (code) && (code) <= KC_WAKE) -#define IS_CONSUMER(code) (KC_MUTE <= (code) && (code) <= KC_ASST) +#define IS_SYSTEM(code) IS_SYSTEM_KEYCODE(code) +#define IS_CONSUMER(code) IS_MEDIA_KEYCODE(code) -#define IS_MOUSEKEY(code) (KC_MS_UP <= (code) && (code) <= KC_MS_ACCEL2) +#define IS_MOUSEKEY(code) IS_MOUSE_KEYCODE(code)  #define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT)  #define IS_MOUSEKEY_BUTTON(code) (KC_MS_BTN1 <= (code) && (code) <= KC_MS_BTN8)  #define IS_MOUSEKEY_WHEEL(code) (KC_MS_WH_UP <= (code) && (code) <= KC_MS_WH_RIGHT) @@ -62,486 +60,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  // clang-format off -/* - * Short names for ease of definition of keymap - */ -/* Transparent */ -#define KC_TRANSPARENT 0x01 -#define KC_TRNS KC_TRANSPARENT - -/* Punctuation */ -#define KC_ENT  KC_ENTER -#define KC_ESC  KC_ESCAPE -#define KC_BSPC KC_BACKSPACE -#define KC_SPC  KC_SPACE -#define KC_MINS KC_MINUS -#define KC_EQL  KC_EQUAL -#define KC_LBRC KC_LEFT_BRACKET -#define KC_RBRC KC_RIGHT_BRACKET -#define KC_BSLS KC_BACKSLASH -#define KC_NUHS KC_NONUS_HASH -#define KC_SCLN KC_SEMICOLON -#define KC_QUOT KC_QUOTE -#define KC_GRV  KC_GRAVE -#define KC_COMM KC_COMMA -#define KC_SLSH KC_SLASH -#define KC_NUBS KC_NONUS_BACKSLASH - -/* Lock Keys */ -#define KC_CAPS KC_CAPS_LOCK -#define KC_SCRL KC_SCROLL_LOCK -#define KC_NUM  KC_NUM_LOCK -#define KC_LCAP KC_LOCKING_CAPS_LOCK -#define KC_LNUM KC_LOCKING_NUM_LOCK -#define KC_LSCR KC_LOCKING_SCROLL_LOCK - -/* Commands */ -#define KC_PSCR KC_PRINT_SCREEN -#define KC_PAUS KC_PAUSE -#define KC_BRK  KC_PAUSE -#define KC_INS  KC_INSERT -#define KC_PGUP KC_PAGE_UP -#define KC_DEL  KC_DELETE -#define KC_PGDN KC_PAGE_DOWN -#define KC_RGHT KC_RIGHT -#define KC_APP  KC_APPLICATION -#define KC_EXEC KC_EXECUTE -#define KC_SLCT KC_SELECT -#define KC_AGIN KC_AGAIN -#define KC_PSTE KC_PASTE -#define KC_ERAS KC_ALTERNATE_ERASE -#define KC_SYRQ KC_SYSTEM_REQUEST -#define KC_CNCL KC_CANCEL -#define KC_CLR  KC_CLEAR -#define KC_PRIR KC_PRIOR -#define KC_RETN KC_RETURN -#define KC_SEPR KC_SEPARATOR -#define KC_CLAG KC_CLEAR_AGAIN -#define KC_CRSL KC_CRSEL -#define KC_EXSL KC_EXSEL - -/* Keypad */ -#define KC_PSLS KC_KP_SLASH -#define KC_PAST KC_KP_ASTERISK -#define KC_PMNS KC_KP_MINUS -#define KC_PPLS KC_KP_PLUS -#define KC_PENT KC_KP_ENTER -#define KC_P1   KC_KP_1 -#define KC_P2   KC_KP_2 -#define KC_P3   KC_KP_3 -#define KC_P4   KC_KP_4 -#define KC_P5   KC_KP_5 -#define KC_P6   KC_KP_6 -#define KC_P7   KC_KP_7 -#define KC_P8   KC_KP_8 -#define KC_P9   KC_KP_9 -#define KC_P0   KC_KP_0 -#define KC_PDOT KC_KP_DOT -#define KC_PEQL KC_KP_EQUAL -#define KC_PCMM KC_KP_COMMA - -/* Language Specific */ -#define KC_INT1 KC_INTERNATIONAL_1 -#define KC_INT2 KC_INTERNATIONAL_2 -#define KC_INT3 KC_INTERNATIONAL_3 -#define KC_INT4 KC_INTERNATIONAL_4 -#define KC_INT5 KC_INTERNATIONAL_5 -#define KC_INT6 KC_INTERNATIONAL_6 -#define KC_INT7 KC_INTERNATIONAL_7 -#define KC_INT8 KC_INTERNATIONAL_8 -#define KC_INT9 KC_INTERNATIONAL_9 -#define KC_LNG1 KC_LANGUAGE_1 -#define KC_LNG2 KC_LANGUAGE_2 -#define KC_LNG3 KC_LANGUAGE_3 -#define KC_LNG4 KC_LANGUAGE_4 -#define KC_LNG5 KC_LANGUAGE_5 -#define KC_LNG6 KC_LANGUAGE_6 -#define KC_LNG7 KC_LANGUAGE_7 -#define KC_LNG8 KC_LANGUAGE_8 -#define KC_LNG9 KC_LANGUAGE_9 - -/* Modifiers */ -#define KC_LCTL KC_LEFT_CTRL -#define KC_LSFT KC_LEFT_SHIFT -#define KC_LALT KC_LEFT_ALT -#define KC_LOPT KC_LEFT_ALT -#define KC_LGUI KC_LEFT_GUI -#define KC_LCMD KC_LEFT_GUI -#define KC_LWIN KC_LEFT_GUI -#define KC_RCTL KC_RIGHT_CTRL -#define KC_RSFT KC_RIGHT_SHIFT -#define KC_RALT KC_RIGHT_ALT -#define KC_ALGR KC_RIGHT_ALT -#define KC_ROPT KC_RIGHT_ALT -#define KC_RGUI KC_RIGHT_GUI -#define KC_RCMD KC_RIGHT_GUI -#define KC_RWIN KC_RIGHT_GUI - -/* Generic Desktop Page (0x01) */ -#define KC_PWR  KC_SYSTEM_POWER -#define KC_SLEP KC_SYSTEM_SLEEP -#define KC_WAKE KC_SYSTEM_WAKE - -/* Consumer Page (0x0C) */ -#define KC_MUTE KC_AUDIO_MUTE -#define KC_VOLU KC_AUDIO_VOL_UP -#define KC_VOLD KC_AUDIO_VOL_DOWN -#define KC_MNXT KC_MEDIA_NEXT_TRACK -#define KC_MPRV KC_MEDIA_PREV_TRACK -#define KC_MSTP KC_MEDIA_STOP -#define KC_MPLY KC_MEDIA_PLAY_PAUSE -#define KC_MSEL KC_MEDIA_SELECT -#define KC_EJCT KC_MEDIA_EJECT -#define KC_CALC KC_CALCULATOR -#define KC_MYCM KC_MY_COMPUTER -#define KC_WSCH KC_WWW_SEARCH -#define KC_WHOM KC_WWW_HOME -#define KC_WBAK KC_WWW_BACK -#define KC_WFWD KC_WWW_FORWARD -#define KC_WSTP KC_WWW_STOP -#define KC_WREF KC_WWW_REFRESH -#define KC_WFAV KC_WWW_FAVORITES -#define KC_MFFD KC_MEDIA_FAST_FORWARD -#define KC_MRWD KC_MEDIA_REWIND -#define KC_BRIU KC_BRIGHTNESS_UP -#define KC_BRID KC_BRIGHTNESS_DOWN -#define KC_CPNL KC_CONTROL_PANEL -#define KC_ASST KC_ASSISTANT - -/* System Specific */ -#define KC_BRMU KC_PAUSE -#define KC_BRMD KC_SCROLL_LOCK - -/* Mouse Keys */ -#define KC_MS_U KC_MS_UP -#define KC_MS_D KC_MS_DOWN -#define KC_MS_L KC_MS_LEFT -#define KC_MS_R KC_MS_RIGHT -#define KC_BTN1 KC_MS_BTN1 -#define KC_BTN2 KC_MS_BTN2 -#define KC_BTN3 KC_MS_BTN3 -#define KC_BTN4 KC_MS_BTN4 -#define KC_BTN5 KC_MS_BTN5 -#define KC_BTN6 KC_MS_BTN6 -#define KC_BTN7 KC_MS_BTN7 -#define KC_BTN8 KC_MS_BTN8 -#define KC_WH_U KC_MS_WH_UP -#define KC_WH_D KC_MS_WH_DOWN -#define KC_WH_L KC_MS_WH_LEFT -#define KC_WH_R KC_MS_WH_RIGHT -#define KC_ACL0 KC_MS_ACCEL0 -#define KC_ACL1 KC_MS_ACCEL1 -#define KC_ACL2 KC_MS_ACCEL2 - -// clang-format on - -/* Keyboard/Keypad Page (0x07) */ -enum hid_keyboard_keypad_usage { -    KC_NO = 0x00, -    KC_ROLL_OVER, -    KC_POST_FAIL, -    KC_UNDEFINED, -    KC_A, -    KC_B, -    KC_C, -    KC_D, -    KC_E, -    KC_F, -    KC_G, -    KC_H, -    KC_I, -    KC_J, -    KC_K, -    KC_L, -    KC_M, // 0x10 -    KC_N, -    KC_O, -    KC_P, -    KC_Q, -    KC_R, -    KC_S, -    KC_T, -    KC_U, -    KC_V, -    KC_W, -    KC_X, -    KC_Y, -    KC_Z, -    KC_1, -    KC_2, -    KC_3, // 0x20 -    KC_4, -    KC_5, -    KC_6, -    KC_7, -    KC_8, -    KC_9, -    KC_0, -    KC_ENTER, -    KC_ESCAPE, -    KC_BACKSPACE, -    KC_TAB, -    KC_SPACE, -    KC_MINUS, -    KC_EQUAL, -    KC_LEFT_BRACKET, -    KC_RIGHT_BRACKET, // 0x30 -    KC_BACKSLASH, -    KC_NONUS_HASH, -    KC_SEMICOLON, -    KC_QUOTE, -    KC_GRAVE, -    KC_COMMA, -    KC_DOT, -    KC_SLASH, -    KC_CAPS_LOCK, -    KC_F1, -    KC_F2, -    KC_F3, -    KC_F4, -    KC_F5, -    KC_F6, -    KC_F7, // 0x40 -    KC_F8, -    KC_F9, -    KC_F10, -    KC_F11, -    KC_F12, -    KC_PRINT_SCREEN, -    KC_SCROLL_LOCK, -    KC_PAUSE, -    KC_INSERT, -    KC_HOME, -    KC_PAGE_UP, -    KC_DELETE, -    KC_END, -    KC_PAGE_DOWN, -    KC_RIGHT, -    KC_LEFT, // 0x50 -    KC_DOWN, -    KC_UP, -    KC_NUM_LOCK, -    KC_KP_SLASH, -    KC_KP_ASTERISK, -    KC_KP_MINUS, -    KC_KP_PLUS, -    KC_KP_ENTER, -    KC_KP_1, -    KC_KP_2, -    KC_KP_3, -    KC_KP_4, -    KC_KP_5, -    KC_KP_6, -    KC_KP_7, -    KC_KP_8, // 0x60 -    KC_KP_9, -    KC_KP_0, -    KC_KP_DOT, -    KC_NONUS_BACKSLASH, -    KC_APPLICATION, -    KC_KB_POWER, -    KC_KP_EQUAL, -    KC_F13, -    KC_F14, -    KC_F15, -    KC_F16, -    KC_F17, -    KC_F18, -    KC_F19, -    KC_F20, -    KC_F21, // 0x70 -    KC_F22, -    KC_F23, -    KC_F24, -    KC_EXECUTE, -    KC_HELP, -    KC_MENU, -    KC_SELECT, -    KC_STOP, -    KC_AGAIN, -    KC_UNDO, -    KC_CUT, -    KC_COPY, -    KC_PASTE, -    KC_FIND, -    KC_KB_MUTE, -    KC_KB_VOLUME_UP, // 0x80 -    KC_KB_VOLUME_DOWN, -    KC_LOCKING_CAPS_LOCK, -    KC_LOCKING_NUM_LOCK, -    KC_LOCKING_SCROLL_LOCK, -    KC_KP_COMMA, -    KC_KP_EQUAL_AS400, -    KC_INTERNATIONAL_1, -    KC_INTERNATIONAL_2, -    KC_INTERNATIONAL_3, -    KC_INTERNATIONAL_4, -    KC_INTERNATIONAL_5, -    KC_INTERNATIONAL_6, -    KC_INTERNATIONAL_7, -    KC_INTERNATIONAL_8, -    KC_INTERNATIONAL_9, -    KC_LANGUAGE_1, // 0x90 -    KC_LANGUAGE_2, -    KC_LANGUAGE_3, -    KC_LANGUAGE_4, -    KC_LANGUAGE_5, -    KC_LANGUAGE_6, -    KC_LANGUAGE_7, -    KC_LANGUAGE_8, -    KC_LANGUAGE_9, -    KC_ALTERNATE_ERASE, -    KC_SYSTEM_REQUEST, -    KC_CANCEL, -    KC_CLEAR, -    KC_PRIOR, -    KC_RETURN, -    KC_SEPARATOR, -    KC_OUT, // 0xA0 -    KC_OPER, -    KC_CLEAR_AGAIN, -    KC_CRSEL, -    KC_EXSEL, - -#if 0 -  // *************************************************************** -  // These keycodes are present in the HID spec, but are           * -  // nonfunctional on modern OSes. QMK uses this range (0xA5-0xDF) * -  // for the media and function keys instead - see below.          * -  // *************************************************************** - -  KC_KP_00                = 0xB0, -  KC_KP_000, -  KC_THOUSANDS_SEPARATOR, -  KC_DECIMAL_SEPARATOR, -  KC_CURRENCY_UNIT, -  KC_CURRENCY_SUB_UNIT, -  KC_KP_LEFT_PARENTHESIS, -  KC_KP_RIGHT_PARENTHESIS, -  KC_KP_LEFT_BRACE, -  KC_KP_RIGHT_BRACE, -  KC_KP_TAB, -  KC_KP_BACKSPACE, -  KC_KP_A, -  KC_KP_B, -  KC_KP_C, -  KC_KP_D, -  KC_KP_E,                //0xC0 -  KC_KP_F, -  KC_KP_XOR, -  KC_KP_HAT, -  KC_KP_PERCENT, -  KC_KP_LESS_THAN, -  KC_KP_GREATER_THAN, -  KC_KP_AND, -  KC_KP_LAZY_AND, -  KC_KP_OR, -  KC_KP_LAZY_OR, -  KC_KP_COLON, -  KC_KP_HASH, -  KC_KP_SPACE, -  KC_KP_AT, -  KC_KP_EXCLAMATION, -  KC_KP_MEM_STORE,        //0xD0 -  KC_KP_MEM_RECALL, -  KC_KP_MEM_CLEAR, -  KC_KP_MEM_ADD, -  KC_KP_MEM_SUB, -  KC_KP_MEM_MUL, -  KC_KP_MEM_DIV, -  KC_KP_PLUS_MINUS, -  KC_KP_CLEAR, -  KC_KP_CLEAR_ENTRY, -  KC_KP_BINARY, -  KC_KP_OCTAL, -  KC_KP_DECIMAL, -  KC_KP_HEXADECIMAL, -#endif - -    /* Modifiers */ -    KC_LEFT_CTRL = 0xE0, -    KC_LEFT_SHIFT, -    KC_LEFT_ALT, -    KC_LEFT_GUI, -    KC_RIGHT_CTRL, -    KC_RIGHT_SHIFT, -    KC_RIGHT_ALT, -    KC_RIGHT_GUI - -    // ********************************************** -    // * 0xF0-0xFF are unallocated in the HID spec. * -    // * QMK uses these for Mouse Keys - see below. * -    // ********************************************** -}; - -/* Media and Function keys */ -enum internal_special_keycodes { -    /* Generic Desktop Page (0x01) */ -    KC_SYSTEM_POWER = 0xA5, -    KC_SYSTEM_SLEEP, -    KC_SYSTEM_WAKE, - -    /* Consumer Page (0x0C) */ -    KC_AUDIO_MUTE, -    KC_AUDIO_VOL_UP, -    KC_AUDIO_VOL_DOWN, -    KC_MEDIA_NEXT_TRACK, -    KC_MEDIA_PREV_TRACK, -    KC_MEDIA_STOP, -    KC_MEDIA_PLAY_PAUSE, -    KC_MEDIA_SELECT, -    KC_MEDIA_EJECT, // 0xB0 -    KC_MAIL, -    KC_CALCULATOR, -    KC_MY_COMPUTER, -    KC_WWW_SEARCH, -    KC_WWW_HOME, -    KC_WWW_BACK, -    KC_WWW_FORWARD, -    KC_WWW_STOP, -    KC_WWW_REFRESH, -    KC_WWW_FAVORITES, -    KC_MEDIA_FAST_FORWARD, -    KC_MEDIA_REWIND, -    KC_BRIGHTNESS_UP, -    KC_BRIGHTNESS_DOWN, -    KC_CONTROL_PANEL, -    KC_ASSISTANT // 0xC0 -}; - -enum mouse_keys { -/* Mouse Buttons */ -#ifdef VIA_ENABLE -    KC_MS_UP = 0xF0, -#else -    KC_MS_UP = 0xCD, -#endif -    KC_MS_DOWN, -    KC_MS_LEFT, -    KC_MS_RIGHT, -    KC_MS_BTN1, -    KC_MS_BTN2, -    KC_MS_BTN3, -    KC_MS_BTN4, -    KC_MS_BTN5, -#ifdef VIA_ENABLE -    KC_MS_BTN6 = KC_MS_BTN5, -    KC_MS_BTN7 = KC_MS_BTN5, -    KC_MS_BTN8 = KC_MS_BTN5, -#else -    KC_MS_BTN6, -    KC_MS_BTN7, -    KC_MS_BTN8, -#endif - -    /* Mouse Wheel */ -    KC_MS_WH_UP, -    KC_MS_WH_DOWN, -    KC_MS_WH_LEFT, -    KC_MS_WH_RIGHT, - -    /* Acceleration */ -    KC_MS_ACCEL0, -    KC_MS_ACCEL1, -    KC_MS_ACCEL2 // 0xDF, or 0xFF if via enabled -}; +// TODO: dd keycodes +#include "keycodes.h" diff --git a/quantum/keycodes.h b/quantum/keycodes.h new file mode 100644 index 0000000000..6772bb6a4a --- /dev/null +++ b/quantum/keycodes.h @@ -0,0 +1,1115 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +/******************************************************************************* +  88888888888 888      d8b                .d888 d8b 888               d8b +      888     888      Y8P               d88P"  Y8P 888               Y8P +      888     888                        888        888 +      888     88888b.  888 .d8888b       888888 888 888  .d88b.       888 .d8888b +      888     888 "88b 888 88K           888    888 888 d8P  Y8b      888 88K +      888     888  888 888 "Y8888b.      888    888 888 88888888      888 "Y8888b. +      888     888  888 888      X88      888    888 888 Y8b.          888      X88 +      888     888  888 888  88888P'      888    888 888  "Y8888       888  88888P' +                                                        888                 888 +                                                        888                 888 +                                                        888                 888 +     .d88b.   .d88b.  88888b.   .d88b.  888d888 8888b.  888888 .d88b.   .d88888 +    d88P"88b d8P  Y8b 888 "88b d8P  Y8b 888P"      "88b 888   d8P  Y8b d88" 888 +    888  888 88888888 888  888 88888888 888    .d888888 888   88888888 888  888 +    Y88b 888 Y8b.     888  888 Y8b.     888    888  888 Y88b. Y8b.     Y88b 888 +     "Y88888  "Y8888  888  888  "Y8888  888    "Y888888  "Y888 "Y8888   "Y88888 +         888 +    Y8b d88P +     "Y88P" +*******************************************************************************/ + +#pragma once +// clang-format off + +enum qk_keycode_ranges { +// Ranges +    QK_BASIC                       = 0x0000, +    QK_BASIC_MAX                   = 0x00FF, +    QK_MODS                        = 0x0100, +    QK_MODS_MAX                    = 0x1FFF, +    QK_MOD_TAP                     = 0x2000, +    QK_MOD_TAP_MAX                 = 0x3FFF, +    QK_LAYER_TAP                   = 0x4000, +    QK_LAYER_TAP_MAX               = 0x4FFF, +    QK_LAYER_MOD                   = 0x5000, +    QK_LAYER_MOD_MAX               = 0x51FF, +    QK_TO                          = 0x5200, +    QK_TO_MAX                      = 0x521F, +    QK_MOMENTARY                   = 0x5220, +    QK_MOMENTARY_MAX               = 0x523F, +    QK_DEF_LAYER                   = 0x5240, +    QK_DEF_LAYER_MAX               = 0x525F, +    QK_TOGGLE_LAYER                = 0x5260, +    QK_TOGGLE_LAYER_MAX            = 0x527F, +    QK_ONE_SHOT_LAYER              = 0x5280, +    QK_ONE_SHOT_LAYER_MAX          = 0x529F, +    QK_ONE_SHOT_MOD                = 0x52A0, +    QK_ONE_SHOT_MOD_MAX            = 0x52BF, +    QK_LAYER_TAP_TOGGLE            = 0x52C0, +    QK_LAYER_TAP_TOGGLE_MAX        = 0x52DF, +    QK_SWAP_HANDS                  = 0x5600, +    QK_SWAP_HANDS_MAX              = 0x56FF, +    QK_TAP_DANCE                   = 0x5700, +    QK_TAP_DANCE_MAX               = 0x57FF, +    QK_MAGIC                       = 0x7000, +    QK_MAGIC_MAX                   = 0x70FF, +    QK_MIDI                        = 0x7100, +    QK_MIDI_MAX                    = 0x71FF, +    QK_SEQUENCER                   = 0x7200, +    QK_SEQUENCER_MAX               = 0x73FF, +    QK_JOYSTICK                    = 0x7400, +    QK_JOYSTICK_MAX                = 0x743F, +    QK_PROGRAMMABLE_BUTTON         = 0x7440, +    QK_PROGRAMMABLE_BUTTON_MAX     = 0x747F, +    QK_AUDIO                       = 0x7480, +    QK_AUDIO_MAX                   = 0x74BF, +    QK_STENO                       = 0x74C0, +    QK_STENO_MAX                   = 0x74FF, +    QK_MACRO                       = 0x7700, +    QK_MACRO_MAX                   = 0x777F, +    QK_LIGHTING                    = 0x7800, +    QK_LIGHTING_MAX                = 0x78FF, +    QK_QUANTUM                     = 0x7C00, +    QK_QUANTUM_MAX                 = 0x7DFF, +    QK_KB                          = 0x7E00, +    QK_KB_MAX                      = 0x7EFF, +    QK_USER                        = 0x7F00, +    QK_USER_MAX                    = 0x7FFF, +    QK_UNICODE                     = 0x8000, +    QK_UNICODE_MAX                 = 0xFFFF, +}; + +enum qk_keycode_defines { +// Keycodes +    KC_NO = 0x0000, +    KC_TRANSPARENT = 0x0001, +    KC_A = 0x0004, +    KC_B = 0x0005, +    KC_C = 0x0006, +    KC_D = 0x0007, +    KC_E = 0x0008, +    KC_F = 0x0009, +    KC_G = 0x000A, +    KC_H = 0x000B, +    KC_I = 0x000C, +    KC_J = 0x000D, +    KC_K = 0x000E, +    KC_L = 0x000F, +    KC_M = 0x0010, +    KC_N = 0x0011, +    KC_O = 0x0012, +    KC_P = 0x0013, +    KC_Q = 0x0014, +    KC_R = 0x0015, +    KC_S = 0x0016, +    KC_T = 0x0017, +    KC_U = 0x0018, +    KC_V = 0x0019, +    KC_W = 0x001A, +    KC_X = 0x001B, +    KC_Y = 0x001C, +    KC_Z = 0x001D, +    KC_1 = 0x001E, +    KC_2 = 0x001F, +    KC_3 = 0x0020, +    KC_4 = 0x0021, +    KC_5 = 0x0022, +    KC_6 = 0x0023, +    KC_7 = 0x0024, +    KC_8 = 0x0025, +    KC_9 = 0x0026, +    KC_0 = 0x0027, +    KC_ENTER = 0x0028, +    KC_ESCAPE = 0x0029, +    KC_BACKSPACE = 0x002A, +    KC_TAB = 0x002B, +    KC_SPACE = 0x002C, +    KC_MINUS = 0x002D, +    KC_EQUAL = 0x002E, +    KC_LEFT_BRACKET = 0x002F, +    KC_RIGHT_BRACKET = 0x0030, +    KC_BACKSLASH = 0x0031, +    KC_NONUS_HASH = 0x0032, +    KC_SEMICOLON = 0x0033, +    KC_QUOTE = 0x0034, +    KC_GRAVE = 0x0035, +    KC_COMMA = 0x0036, +    KC_DOT = 0x0037, +    KC_SLASH = 0x0038, +    KC_CAPS_LOCK = 0x0039, +    KC_F1 = 0x003A, +    KC_F2 = 0x003B, +    KC_F3 = 0x003C, +    KC_F4 = 0x003D, +    KC_F5 = 0x003E, +    KC_F6 = 0x003F, +    KC_F7 = 0x0040, +    KC_F8 = 0x0041, +    KC_F9 = 0x0042, +    KC_F10 = 0x0043, +    KC_F11 = 0x0044, +    KC_F12 = 0x0045, +    KC_PRINT_SCREEN = 0x0046, +    KC_SCROLL_LOCK = 0x0047, +    KC_PAUSE = 0x0048, +    KC_INSERT = 0x0049, +    KC_HOME = 0x004A, +    KC_PAGE_UP = 0x004B, +    KC_DELETE = 0x004C, +    KC_END = 0x004D, +    KC_PAGE_DOWN = 0x004E, +    KC_RIGHT = 0x004F, +    KC_LEFT = 0x0050, +    KC_DOWN = 0x0051, +    KC_UP = 0x0052, +    KC_NUM_LOCK = 0x0053, +    KC_KP_SLASH = 0x0054, +    KC_KP_ASTERISK = 0x0055, +    KC_KP_MINUS = 0x0056, +    KC_KP_PLUS = 0x0057, +    KC_KP_ENTER = 0x0058, +    KC_KP_1 = 0x0059, +    KC_KP_2 = 0x005A, +    KC_KP_3 = 0x005B, +    KC_KP_4 = 0x005C, +    KC_KP_5 = 0x005D, +    KC_KP_6 = 0x005E, +    KC_KP_7 = 0x005F, +    KC_KP_8 = 0x0060, +    KC_KP_9 = 0x0061, +    KC_KP_0 = 0x0062, +    KC_KP_DOT = 0x0063, +    KC_NONUS_BACKSLASH = 0x0064, +    KC_APPLICATION = 0x0065, +    KC_KB_POWER = 0x0066, +    KC_KP_EQUAL = 0x0067, +    KC_F13 = 0x0068, +    KC_F14 = 0x0069, +    KC_F15 = 0x006A, +    KC_F16 = 0x006B, +    KC_F17 = 0x006C, +    KC_F18 = 0x006D, +    KC_F19 = 0x006E, +    KC_F20 = 0x006F, +    KC_F21 = 0x0070, +    KC_F22 = 0x0071, +    KC_F23 = 0x0072, +    KC_F24 = 0x0073, +    KC_EXECUTE = 0x0074, +    KC_HELP = 0x0075, +    KC_MENU = 0x0076, +    KC_SELECT = 0x0077, +    KC_STOP = 0x0078, +    KC_AGAIN = 0x0079, +    KC_UNDO = 0x007A, +    KC_CUT = 0x007B, +    KC_COPY = 0x007C, +    KC_PASTE = 0x007D, +    KC_FIND = 0x007E, +    KC_KB_MUTE = 0x007F, +    KC_KB_VOLUME_UP = 0x0080, +    KC_KB_VOLUME_DOWN = 0x0081, +    KC_LOCKING_CAPS_LOCK = 0x0082, +    KC_LOCKING_NUM_LOCK = 0x0083, +    KC_LOCKING_SCROLL_LOCK = 0x0084, +    KC_KP_COMMA = 0x0085, +    KC_KP_EQUAL_AS400 = 0x0086, +    KC_INTERNATIONAL_1 = 0x0087, +    KC_INTERNATIONAL_2 = 0x0088, +    KC_INTERNATIONAL_3 = 0x0089, +    KC_INTERNATIONAL_4 = 0x008A, +    KC_INTERNATIONAL_5 = 0x008B, +    KC_INTERNATIONAL_6 = 0x008C, +    KC_INTERNATIONAL_7 = 0x008D, +    KC_INTERNATIONAL_8 = 0x008E, +    KC_INTERNATIONAL_9 = 0x008F, +    KC_LANGUAGE_1 = 0x0090, +    KC_LANGUAGE_2 = 0x0091, +    KC_LANGUAGE_3 = 0x0092, +    KC_LANGUAGE_4 = 0x0093, +    KC_LANGUAGE_5 = 0x0094, +    KC_LANGUAGE_6 = 0x0095, +    KC_LANGUAGE_7 = 0x0096, +    KC_LANGUAGE_8 = 0x0097, +    KC_LANGUAGE_9 = 0x0098, +    KC_ALTERNATE_ERASE = 0x0099, +    KC_SYSTEM_REQUEST = 0x009A, +    KC_CANCEL = 0x009B, +    KC_CLEAR = 0x009C, +    KC_PRIOR = 0x009D, +    KC_RETURN = 0x009E, +    KC_SEPARATOR = 0x009F, +    KC_OUT = 0x00A0, +    KC_OPER = 0x00A1, +    KC_CLEAR_AGAIN = 0x00A2, +    KC_CRSEL = 0x00A3, +    KC_EXSEL = 0x00A4, +    KC_SYSTEM_POWER = 0x00A5, +    KC_SYSTEM_SLEEP = 0x00A6, +    KC_SYSTEM_WAKE = 0x00A7, +    KC_AUDIO_MUTE = 0x00A8, +    KC_AUDIO_VOL_UP = 0x00A9, +    KC_AUDIO_VOL_DOWN = 0x00AA, +    KC_MEDIA_NEXT_TRACK = 0x00AB, +    KC_MEDIA_PREV_TRACK = 0x00AC, +    KC_MEDIA_STOP = 0x00AD, +    KC_MEDIA_PLAY_PAUSE = 0x00AE, +    KC_MEDIA_SELECT = 0x00AF, +    KC_MEDIA_EJECT = 0x00B0, +    KC_MAIL = 0x00B1, +    KC_CALCULATOR = 0x00B2, +    KC_MY_COMPUTER = 0x00B3, +    KC_WWW_SEARCH = 0x00B4, +    KC_WWW_HOME = 0x00B5, +    KC_WWW_BACK = 0x00B6, +    KC_WWW_FORWARD = 0x00B7, +    KC_WWW_STOP = 0x00B8, +    KC_WWW_REFRESH = 0x00B9, +    KC_WWW_FAVORITES = 0x00BA, +    KC_MEDIA_FAST_FORWARD = 0x00BB, +    KC_MEDIA_REWIND = 0x00BC, +    KC_BRIGHTNESS_UP = 0x00BD, +    KC_BRIGHTNESS_DOWN = 0x00BE, +    KC_CONTROL_PANEL = 0x00BF, +    KC_ASSISTANT = 0x00C0, +    KC_MS_UP = 0x00CD, +    KC_MS_DOWN = 0x00CE, +    KC_MS_LEFT = 0x00CF, +    KC_MS_RIGHT = 0x00D0, +    KC_MS_BTN1 = 0x00D1, +    KC_MS_BTN2 = 0x00D2, +    KC_MS_BTN3 = 0x00D3, +    KC_MS_BTN4 = 0x00D4, +    KC_MS_BTN5 = 0x00D5, +    KC_MS_BTN6 = 0x00D6, +    KC_MS_BTN7 = 0x00D7, +    KC_MS_BTN8 = 0x00D8, +    KC_MS_WH_UP = 0x00D9, +    KC_MS_WH_DOWN = 0x00DA, +    KC_MS_WH_LEFT = 0x00DB, +    KC_MS_WH_RIGHT = 0x00DC, +    KC_MS_ACCEL0 = 0x00DD, +    KC_MS_ACCEL1 = 0x00DE, +    KC_MS_ACCEL2 = 0x00DF, +    KC_LEFT_CTRL = 0x00E0, +    KC_LEFT_SHIFT = 0x00E1, +    KC_LEFT_ALT = 0x00E2, +    KC_LEFT_GUI = 0x00E3, +    KC_RIGHT_CTRL = 0x00E4, +    KC_RIGHT_SHIFT = 0x00E5, +    KC_RIGHT_ALT = 0x00E6, +    KC_RIGHT_GUI = 0x00E7, +    SH_TG = 0x56F0, +    SH_TT = 0x56F1, +    SH_MON = 0x56F2, +    SH_MOFF = 0x56F3, +    SH_OFF = 0x56F4, +    SH_ON = 0x56F5, +    SH_OS = 0x56F6, +    MAGIC_SWAP_CONTROL_CAPSLOCK = 0x7000, +    MAGIC_UNSWAP_CONTROL_CAPSLOCK = 0x7001, +    MAGIC_TOGGLE_CONTROL_CAPSLOCK = 0x7002, +    MAGIC_UNCAPSLOCK_TO_CONTROL = 0x7003, +    MAGIC_CAPSLOCK_TO_CONTROL = 0x7004, +    MAGIC_SWAP_LALT_LGUI = 0x7005, +    MAGIC_UNSWAP_LALT_LGUI = 0x7006, +    MAGIC_SWAP_RALT_RGUI = 0x7007, +    MAGIC_UNSWAP_RALT_RGUI = 0x7008, +    MAGIC_UNNO_GUI = 0x7009, +    MAGIC_NO_GUI = 0x700A, +    MAGIC_TOGGLE_GUI = 0x700B, +    MAGIC_SWAP_GRAVE_ESC = 0x700C, +    MAGIC_UNSWAP_GRAVE_ESC = 0x700D, +    MAGIC_SWAP_BACKSLASH_BACKSPACE = 0x700E, +    MAGIC_UNSWAP_BACKSLASH_BACKSPACE = 0x700F, +    MAGIC_TOGGLE_BACKSLASH_BACKSPACE = 0x7010, +    MAGIC_HOST_NKRO = 0x7011, +    MAGIC_UNHOST_NKRO = 0x7012, +    MAGIC_TOGGLE_NKRO = 0x7013, +    MAGIC_SWAP_ALT_GUI = 0x7014, +    MAGIC_UNSWAP_ALT_GUI = 0x7015, +    MAGIC_TOGGLE_ALT_GUI = 0x7016, +    MAGIC_SWAP_LCTL_LGUI = 0x7017, +    MAGIC_UNSWAP_LCTL_LGUI = 0x7018, +    MAGIC_SWAP_RCTL_RGUI = 0x7019, +    MAGIC_UNSWAP_RCTL_RGUI = 0x701A, +    MAGIC_SWAP_CTL_GUI = 0x701B, +    MAGIC_UNSWAP_CTL_GUI = 0x701C, +    MAGIC_TOGGLE_CTL_GUI = 0x701D, +    MAGIC_EE_HANDS_LEFT = 0x701E, +    MAGIC_EE_HANDS_RIGHT = 0x701F, +    MAGIC_SWAP_ESCAPE_CAPSLOCK = 0x7020, +    MAGIC_UNSWAP_ESCAPE_CAPSLOCK = 0x7021, +    MAGIC_TOGGLE_ESCAPE_CAPSLOCK = 0x7022, +    MI_ON = 0x7100, +    MI_OFF = 0x7101, +    MI_TOG = 0x7102, +    MI_C = 0x7110, +    MI_Cs = 0x7111, +    MI_D = 0x7112, +    MI_Ds = 0x7113, +    MI_E = 0x7114, +    MI_F = 0x7115, +    MI_Fs = 0x7116, +    MI_G = 0x7117, +    MI_Gs = 0x7118, +    MI_A = 0x7119, +    MI_As = 0x711A, +    MI_B = 0x711B, +    MI_C_1 = 0x7120, +    MI_Cs_1 = 0x7121, +    MI_D_1 = 0x7122, +    MI_Ds_1 = 0x7123, +    MI_E_1 = 0x7124, +    MI_F_1 = 0x7125, +    MI_Fs_1 = 0x7126, +    MI_G_1 = 0x7127, +    MI_Gs_1 = 0x7128, +    MI_A_1 = 0x7129, +    MI_As_1 = 0x712A, +    MI_B_1 = 0x712B, +    MI_C_2 = 0x7130, +    MI_Cs_2 = 0x7131, +    MI_D_2 = 0x7132, +    MI_Ds_2 = 0x7133, +    MI_E_2 = 0x7134, +    MI_F_2 = 0x7135, +    MI_Fs_2 = 0x7136, +    MI_G_2 = 0x7137, +    MI_Gs_2 = 0x7138, +    MI_A_2 = 0x7139, +    MI_As_2 = 0x713A, +    MI_B_2 = 0x713B, +    MI_C_3 = 0x7140, +    MI_Cs_3 = 0x7141, +    MI_D_3 = 0x7142, +    MI_Ds_3 = 0x7143, +    MI_E_3 = 0x7144, +    MI_F_3 = 0x7145, +    MI_Fs_3 = 0x7146, +    MI_G_3 = 0x7147, +    MI_Gs_3 = 0x7148, +    MI_A_3 = 0x7149, +    MI_As_3 = 0x714A, +    MI_B_3 = 0x714B, +    MI_C_4 = 0x7150, +    MI_Cs_4 = 0x7151, +    MI_D_4 = 0x7152, +    MI_Ds_4 = 0x7153, +    MI_E_4 = 0x7154, +    MI_F_4 = 0x7155, +    MI_Fs_4 = 0x7156, +    MI_G_4 = 0x7157, +    MI_Gs_4 = 0x7158, +    MI_A_4 = 0x7159, +    MI_As_4 = 0x715A, +    MI_B_4 = 0x715B, +    MI_C_5 = 0x7160, +    MI_Cs_5 = 0x7161, +    MI_D_5 = 0x7162, +    MI_Ds_5 = 0x7163, +    MI_E_5 = 0x7164, +    MI_F_5 = 0x7165, +    MI_Fs_5 = 0x7166, +    MI_G_5 = 0x7167, +    MI_Gs_5 = 0x7168, +    MI_A_5 = 0x7169, +    MI_As_5 = 0x716A, +    MI_B_5 = 0x716B, +    MI_OCT_N2 = 0x7170, +    MI_OCT_N1 = 0x7171, +    MI_OCT_0 = 0x7172, +    MI_OCT_1 = 0x7173, +    MI_OCT_2 = 0x7174, +    MI_OCT_3 = 0x7175, +    MI_OCT_4 = 0x7176, +    MI_OCT_5 = 0x7177, +    MI_OCT_6 = 0x7178, +    MI_OCT_7 = 0x7179, +    MI_OCTD = 0x717A, +    MI_OCTU = 0x717B, +    MI_TRNS_N6 = 0x7180, +    MI_TRNS_N5 = 0x7181, +    MI_TRNS_N4 = 0x7182, +    MI_TRNS_N3 = 0x7183, +    MI_TRNS_N2 = 0x7184, +    MI_TRNS_N1 = 0x7185, +    MI_TRNS_0 = 0x7186, +    MI_TRNS_1 = 0x7187, +    MI_TRNS_2 = 0x7188, +    MI_TRNS_3 = 0x7189, +    MI_TRNS_4 = 0x718A, +    MI_TRNS_5 = 0x718B, +    MI_TRNS_6 = 0x718C, +    MI_TRNSD = 0x718D, +    MI_TRNSU = 0x718E, +    MI_VEL_0 = 0x7190, +    MI_VEL_1 = 0x7191, +    MI_VEL_2 = 0x7192, +    MI_VEL_3 = 0x7193, +    MI_VEL_4 = 0x7194, +    MI_VEL_5 = 0x7195, +    MI_VEL_6 = 0x7196, +    MI_VEL_7 = 0x7197, +    MI_VEL_8 = 0x7198, +    MI_VEL_9 = 0x7199, +    MI_VEL_10 = 0x719A, +    MI_VELD = 0x719B, +    MI_VELU = 0x719C, +    MI_CH1 = 0x71A0, +    MI_CH2 = 0x71A1, +    MI_CH3 = 0x71A2, +    MI_CH4 = 0x71A3, +    MI_CH5 = 0x71A4, +    MI_CH6 = 0x71A5, +    MI_CH7 = 0x71A6, +    MI_CH8 = 0x71A7, +    MI_CH9 = 0x71A8, +    MI_CH10 = 0x71A9, +    MI_CH11 = 0x71AA, +    MI_CH12 = 0x71AB, +    MI_CH13 = 0x71AC, +    MI_CH14 = 0x71AD, +    MI_CH15 = 0x71AE, +    MI_CH16 = 0x71AF, +    MI_CHD = 0x71B0, +    MI_CHU = 0x71B1, +    MI_ALLOFF = 0x71C0, +    MI_SUS = 0x71C1, +    MI_PORT = 0x71C2, +    MI_SOST = 0x71C3, +    MI_SOFT = 0x71C4, +    MI_LEG = 0x71C5, +    MI_MOD = 0x71C6, +    MI_MODSD = 0x71C7, +    MI_MODSU = 0x71C8, +    MI_BENDD = 0x71C9, +    MI_BENDU = 0x71CA, +    SQ_ON = 0x7200, +    SQ_OFF = 0x7201, +    SQ_TOG = 0x7202, +    SQ_TMPD = 0x7203, +    SQ_TMPU = 0x7204, +    SQ_RESD = 0x7205, +    SQ_RESU = 0x7206, +    SQ_SALL = 0x7207, +    SQ_SCLR = 0x7208, +    QK_JOYSTICK_BUTTON_0 = 0x7400, +    QK_JOYSTICK_BUTTON_1 = 0x7401, +    QK_JOYSTICK_BUTTON_2 = 0x7402, +    QK_JOYSTICK_BUTTON_3 = 0x7403, +    QK_JOYSTICK_BUTTON_4 = 0x7404, +    QK_JOYSTICK_BUTTON_5 = 0x7405, +    QK_JOYSTICK_BUTTON_6 = 0x7406, +    QK_JOYSTICK_BUTTON_7 = 0x7407, +    QK_JOYSTICK_BUTTON_8 = 0x7408, +    QK_JOYSTICK_BUTTON_9 = 0x7409, +    QK_JOYSTICK_BUTTON_10 = 0x740A, +    QK_JOYSTICK_BUTTON_11 = 0x740B, +    QK_JOYSTICK_BUTTON_12 = 0x740C, +    QK_JOYSTICK_BUTTON_13 = 0x740D, +    QK_JOYSTICK_BUTTON_14 = 0x740E, +    QK_JOYSTICK_BUTTON_15 = 0x740F, +    QK_JOYSTICK_BUTTON_16 = 0x7410, +    QK_JOYSTICK_BUTTON_17 = 0x7411, +    QK_JOYSTICK_BUTTON_18 = 0x7412, +    QK_JOYSTICK_BUTTON_19 = 0x7413, +    QK_JOYSTICK_BUTTON_20 = 0x7414, +    QK_JOYSTICK_BUTTON_21 = 0x7415, +    QK_JOYSTICK_BUTTON_22 = 0x7416, +    QK_JOYSTICK_BUTTON_23 = 0x7417, +    QK_JOYSTICK_BUTTON_24 = 0x7418, +    QK_JOYSTICK_BUTTON_25 = 0x7419, +    QK_JOYSTICK_BUTTON_26 = 0x741A, +    QK_JOYSTICK_BUTTON_27 = 0x741B, +    QK_JOYSTICK_BUTTON_28 = 0x741C, +    QK_JOYSTICK_BUTTON_29 = 0x741D, +    QK_JOYSTICK_BUTTON_30 = 0x741E, +    QK_JOYSTICK_BUTTON_31 = 0x741F, +    QK_PROGRAMMABLE_BUTTON_1 = 0x7440, +    QK_PROGRAMMABLE_BUTTON_2 = 0x7441, +    QK_PROGRAMMABLE_BUTTON_3 = 0x7442, +    QK_PROGRAMMABLE_BUTTON_4 = 0x7443, +    QK_PROGRAMMABLE_BUTTON_5 = 0x7444, +    QK_PROGRAMMABLE_BUTTON_6 = 0x7445, +    QK_PROGRAMMABLE_BUTTON_7 = 0x7446, +    QK_PROGRAMMABLE_BUTTON_8 = 0x7447, +    QK_PROGRAMMABLE_BUTTON_9 = 0x7448, +    QK_PROGRAMMABLE_BUTTON_10 = 0x7449, +    QK_PROGRAMMABLE_BUTTON_11 = 0x744A, +    QK_PROGRAMMABLE_BUTTON_12 = 0x744B, +    QK_PROGRAMMABLE_BUTTON_13 = 0x744C, +    QK_PROGRAMMABLE_BUTTON_14 = 0x744D, +    QK_PROGRAMMABLE_BUTTON_15 = 0x744E, +    QK_PROGRAMMABLE_BUTTON_16 = 0x744F, +    QK_PROGRAMMABLE_BUTTON_17 = 0x7450, +    QK_PROGRAMMABLE_BUTTON_18 = 0x7451, +    QK_PROGRAMMABLE_BUTTON_19 = 0x7452, +    QK_PROGRAMMABLE_BUTTON_20 = 0x7453, +    QK_PROGRAMMABLE_BUTTON_21 = 0x7454, +    QK_PROGRAMMABLE_BUTTON_22 = 0x7455, +    QK_PROGRAMMABLE_BUTTON_23 = 0x7456, +    QK_PROGRAMMABLE_BUTTON_24 = 0x7457, +    QK_PROGRAMMABLE_BUTTON_25 = 0x7458, +    QK_PROGRAMMABLE_BUTTON_26 = 0x7459, +    QK_PROGRAMMABLE_BUTTON_27 = 0x745A, +    QK_PROGRAMMABLE_BUTTON_28 = 0x745B, +    QK_PROGRAMMABLE_BUTTON_29 = 0x745C, +    QK_PROGRAMMABLE_BUTTON_30 = 0x745D, +    QK_PROGRAMMABLE_BUTTON_31 = 0x745E, +    QK_PROGRAMMABLE_BUTTON_32 = 0x745F, +    AU_ON = 0x7480, +    AU_OFF = 0x7481, +    AU_TOG = 0x7482, +    CLICKY_TOGGLE = 0x748A, +    CLICKY_ENABLE = 0x748B, +    CLICKY_DISABLE = 0x748C, +    CLICKY_UP = 0x748D, +    CLICKY_DOWN = 0x748E, +    CLICKY_RESET = 0x748F, +    MU_ON = 0x7490, +    MU_OFF = 0x7491, +    MU_TOG = 0x7492, +    MU_MOD = 0x7493, +    MUV_IN = 0x7494, +    MUV_DE = 0x7495, +    QK_STENO_BOLT = 0x74F0, +    QK_STENO_GEMINI = 0x74F1, +    QK_STENO_COMB = 0x74F2, +    QK_STENO_COMB_MAX = 0x74FC, +    MACRO_0 = 0x7700, +    MACRO_1 = 0x7701, +    MACRO_2 = 0x7702, +    MACRO_3 = 0x7703, +    MACRO_4 = 0x7704, +    MACRO_5 = 0x7705, +    MACRO_6 = 0x7706, +    MACRO_7 = 0x7707, +    MACRO_8 = 0x7708, +    MACRO_9 = 0x7709, +    MACRO_10 = 0x770A, +    MACRO_11 = 0x770B, +    MACRO_12 = 0x770C, +    MACRO_13 = 0x770D, +    MACRO_14 = 0x770E, +    MACRO_15 = 0x770F, +    MACRO_16 = 0x7710, +    MACRO_17 = 0x7711, +    MACRO_18 = 0x7712, +    MACRO_19 = 0x7713, +    MACRO_20 = 0x7714, +    MACRO_21 = 0x7715, +    MACRO_22 = 0x7716, +    MACRO_23 = 0x7717, +    MACRO_24 = 0x7718, +    MACRO_25 = 0x7719, +    MACRO_26 = 0x771A, +    MACRO_27 = 0x771B, +    MACRO_28 = 0x771C, +    MACRO_29 = 0x771D, +    MACRO_30 = 0x771E, +    MACRO_31 = 0x771F, +    BL_ON = 0x7800, +    BL_OFF = 0x7801, +    BL_DEC = 0x7802, +    BL_INC = 0x7803, +    BL_TOGG = 0x7804, +    BL_STEP = 0x7805, +    BL_BRTG = 0x7806, +    RGB_TOG = 0x7820, +    RGB_MODE_FORWARD = 0x7821, +    RGB_MODE_REVERSE = 0x7822, +    RGB_HUI = 0x7823, +    RGB_HUD = 0x7824, +    RGB_SAI = 0x7825, +    RGB_SAD = 0x7826, +    RGB_VAI = 0x7827, +    RGB_VAD = 0x7828, +    RGB_SPI = 0x7829, +    RGB_SPD = 0x782A, +    RGB_MODE_PLAIN = 0x782B, +    RGB_MODE_BREATHE = 0x782C, +    RGB_MODE_RAINBOW = 0x782D, +    RGB_MODE_SWIRL = 0x782E, +    RGB_MODE_SNAKE = 0x782F, +    RGB_MODE_KNIGHT = 0x7830, +    RGB_MODE_XMAS = 0x7831, +    RGB_MODE_GRADIENT = 0x7832, +    RGB_MODE_RGBTEST = 0x7833, +    RGB_MODE_TWINKLE = 0x7834, +    QK_BOOTLOADER = 0x7C00, +    QK_REBOOT = 0x7C01, +    QK_DEBUG_TOGGLE = 0x7C02, +    QK_CLEAR_EEPROM = 0x7C03, +    QK_MAKE = 0x7C04, +    QK_AUTO_SHIFT_DOWN = 0x7C10, +    QK_AUTO_SHIFT_UP = 0x7C11, +    QK_AUTO_SHIFT_REPORT = 0x7C12, +    QK_AUTO_SHIFT_ON = 0x7C13, +    QK_AUTO_SHIFT_OFF = 0x7C14, +    QK_AUTO_SHIFT_TOGGLE = 0x7C15, +    QK_GRAVE_ESCAPE = 0x7C16, +    QK_VELOCIKEY_TOGGLE = 0x7C17, +    QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN = 0x7C18, +    QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE = 0x7C19, +    QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN = 0x7C1A, +    QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE = 0x7C1B, +    QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN = 0x7C1C, +    QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE = 0x7C1D, +    QK_SPACE_CADET_RIGHT_SHIFT_ENTER = 0x7C1E, +    OUT_AUTO = 0x7C20, +    OUT_USB = 0x7C21, +    OUT_BT = 0x7C22, +    QK_UNICODE_MODE_NEXT = 0x7C30, +    QK_UNICODE_MODE_PREVIOUS = 0x7C31, +    QK_UNICODE_MODE_MACOS = 0x7C32, +    QK_UNICODE_MODE_LINUX = 0x7C33, +    QK_UNICODE_MODE_WINDOWS = 0x7C34, +    QK_UNICODE_MODE_BSD = 0x7C35, +    QK_UNICODE_MODE_WINCOMPOSE = 0x7C36, +    QK_UNICODE_MODE_EMACS = 0x7C37, +    HPT_ON = 0x7C40, +    HPT_OFF = 0x7C41, +    HPT_TOG = 0x7C42, +    HPT_RST = 0x7C43, +    HPT_FBK = 0x7C44, +    HPT_BUZ = 0x7C45, +    HPT_MODI = 0x7C46, +    HPT_MODD = 0x7C47, +    HPT_CONT = 0x7C48, +    HPT_CONI = 0x7C49, +    HPT_COND = 0x7C4A, +    HPT_DWLI = 0x7C4B, +    HPT_DWLD = 0x7C4C, +    QK_COMBO_ON = 0x7C50, +    QK_COMBO_OFF = 0x7C51, +    QK_COMBO_TOGGLE = 0x7C52, +    QK_DYNAMIC_MACRO_RECORD_START_1 = 0x7C53, +    QK_DYNAMIC_MACRO_RECORD_START_2 = 0x7C54, +    QK_DYNAMIC_MACRO_RECORD_STOP = 0x7C55, +    QK_DYNAMIC_MACRO_PLAY_1 = 0x7C56, +    QK_DYNAMIC_MACRO_PLAY_2 = 0x7C57, +    QK_LEADER = 0x7C58, +    QK_LOCK = 0x7C59, +    QK_ONE_SHOT_ON = 0x7C5A, +    QK_ONE_SHOT_OFF = 0x7C5B, +    QK_ONE_SHOT_TOGGLE = 0x7C5C, +    QK_KEY_OVERRIDE_TOGGLE = 0x7C5D, +    QK_KEY_OVERRIDE_ON = 0x7C5E, +    QK_KEY_OVERRIDE_OFF = 0x7C5F, +    QK_SECURE_LOCK = 0x7C60, +    QK_SECURE_UNLOCK = 0x7C61, +    QK_SECURE_TOGGLE = 0x7C62, +    QK_SECURE_REQUEST = 0x7C63, +    DT_PRNT = 0x7C70, +    DT_UP = 0x7C71, +    DT_DOWN = 0x7C72, +    PRINT_ON = 0x7C73, +    PRINT_OFF = 0x7C74, +    QK_CAPS_WORD_TOGGLE = 0x7C75, +    QK_AUTOCORRECT_ON = 0x7C76, +    QK_AUTOCORRECT_OFF = 0x7C77, +    QK_AUTOCORRECT_TOGGLE = 0x7C78, +    SAFE_RANGE = 0x7E00, + +// Alias +    XXXXXXX    = KC_NO, +    _______    = KC_TRANSPARENT, +    KC_TRNS    = KC_TRANSPARENT, +    KC_ENT     = KC_ENTER, +    KC_ESC     = KC_ESCAPE, +    KC_BSPC    = KC_BACKSPACE, +    KC_SPC     = KC_SPACE, +    KC_MINS    = KC_MINUS, +    KC_EQL     = KC_EQUAL, +    KC_LBRC    = KC_LEFT_BRACKET, +    KC_RBRC    = KC_RIGHT_BRACKET, +    KC_BSLS    = KC_BACKSLASH, +    KC_NUHS    = KC_NONUS_HASH, +    KC_SCLN    = KC_SEMICOLON, +    KC_QUOT    = KC_QUOTE, +    KC_GRV     = KC_GRAVE, +    KC_COMM    = KC_COMMA, +    KC_SLSH    = KC_SLASH, +    KC_CAPS    = KC_CAPS_LOCK, +    KC_PSCR    = KC_PRINT_SCREEN, +    KC_SCRL    = KC_SCROLL_LOCK, +    KC_BRMD    = KC_SCROLL_LOCK, +    KC_PAUS    = KC_PAUSE, +    KC_BRK     = KC_PAUSE, +    KC_BRMU    = KC_PAUSE, +    KC_INS     = KC_INSERT, +    KC_PGUP    = KC_PAGE_UP, +    KC_DEL     = KC_DELETE, +    KC_PGDN    = KC_PAGE_DOWN, +    KC_RGHT    = KC_RIGHT, +    KC_NUM     = KC_NUM_LOCK, +    KC_PSLS    = KC_KP_SLASH, +    KC_PAST    = KC_KP_ASTERISK, +    KC_PMNS    = KC_KP_MINUS, +    KC_PPLS    = KC_KP_PLUS, +    KC_PENT    = KC_KP_ENTER, +    KC_P1      = KC_KP_1, +    KC_P2      = KC_KP_2, +    KC_P3      = KC_KP_3, +    KC_P4      = KC_KP_4, +    KC_P5      = KC_KP_5, +    KC_P6      = KC_KP_6, +    KC_P7      = KC_KP_7, +    KC_P8      = KC_KP_8, +    KC_P9      = KC_KP_9, +    KC_P0      = KC_KP_0, +    KC_PDOT    = KC_KP_DOT, +    KC_NUBS    = KC_NONUS_BACKSLASH, +    KC_APP     = KC_APPLICATION, +    KC_PEQL    = KC_KP_EQUAL, +    KC_EXEC    = KC_EXECUTE, +    KC_SLCT    = KC_SELECT, +    KC_AGIN    = KC_AGAIN, +    KC_PSTE    = KC_PASTE, +    KC_LCAP    = KC_LOCKING_CAPS_LOCK, +    KC_LNUM    = KC_LOCKING_NUM_LOCK, +    KC_LSCR    = KC_LOCKING_SCROLL_LOCK, +    KC_PCMM    = KC_KP_COMMA, +    KC_INT1    = KC_INTERNATIONAL_1, +    KC_INT2    = KC_INTERNATIONAL_2, +    KC_INT3    = KC_INTERNATIONAL_3, +    KC_INT4    = KC_INTERNATIONAL_4, +    KC_INT5    = KC_INTERNATIONAL_5, +    KC_INT6    = KC_INTERNATIONAL_6, +    KC_INT7    = KC_INTERNATIONAL_7, +    KC_INT8    = KC_INTERNATIONAL_8, +    KC_INT9    = KC_INTERNATIONAL_9, +    KC_LNG1    = KC_LANGUAGE_1, +    KC_LNG2    = KC_LANGUAGE_2, +    KC_LNG3    = KC_LANGUAGE_3, +    KC_LNG4    = KC_LANGUAGE_4, +    KC_LNG5    = KC_LANGUAGE_5, +    KC_LNG6    = KC_LANGUAGE_6, +    KC_LNG7    = KC_LANGUAGE_7, +    KC_LNG8    = KC_LANGUAGE_8, +    KC_LNG9    = KC_LANGUAGE_9, +    KC_ERAS    = KC_ALTERNATE_ERASE, +    KC_SYRQ    = KC_SYSTEM_REQUEST, +    KC_CNCL    = KC_CANCEL, +    KC_CLR     = KC_CLEAR, +    KC_PRIR    = KC_PRIOR, +    KC_RETN    = KC_RETURN, +    KC_SEPR    = KC_SEPARATOR, +    KC_CLAG    = KC_CLEAR_AGAIN, +    KC_CRSL    = KC_CRSEL, +    KC_EXSL    = KC_EXSEL, +    KC_PWR     = KC_SYSTEM_POWER, +    KC_SLEP    = KC_SYSTEM_SLEEP, +    KC_WAKE    = KC_SYSTEM_WAKE, +    KC_MUTE    = KC_AUDIO_MUTE, +    KC_VOLU    = KC_AUDIO_VOL_UP, +    KC_VOLD    = KC_AUDIO_VOL_DOWN, +    KC_MNXT    = KC_MEDIA_NEXT_TRACK, +    KC_MPRV    = KC_MEDIA_PREV_TRACK, +    KC_MSTP    = KC_MEDIA_STOP, +    KC_MPLY    = KC_MEDIA_PLAY_PAUSE, +    KC_MSEL    = KC_MEDIA_SELECT, +    KC_EJCT    = KC_MEDIA_EJECT, +    KC_CALC    = KC_CALCULATOR, +    KC_MYCM    = KC_MY_COMPUTER, +    KC_WSCH    = KC_WWW_SEARCH, +    KC_WHOM    = KC_WWW_HOME, +    KC_WBAK    = KC_WWW_BACK, +    KC_WFWD    = KC_WWW_FORWARD, +    KC_WSTP    = KC_WWW_STOP, +    KC_WREF    = KC_WWW_REFRESH, +    KC_WFAV    = KC_WWW_FAVORITES, +    KC_MFFD    = KC_MEDIA_FAST_FORWARD, +    KC_MRWD    = KC_MEDIA_REWIND, +    KC_BRIU    = KC_BRIGHTNESS_UP, +    KC_BRID    = KC_BRIGHTNESS_DOWN, +    KC_CPNL    = KC_CONTROL_PANEL, +    KC_ASST    = KC_ASSISTANT, +    KC_MS_U    = KC_MS_UP, +    KC_MS_D    = KC_MS_DOWN, +    KC_MS_L    = KC_MS_LEFT, +    KC_MS_R    = KC_MS_RIGHT, +    KC_BTN1    = KC_MS_BTN1, +    KC_BTN2    = KC_MS_BTN2, +    KC_BTN3    = KC_MS_BTN3, +    KC_BTN4    = KC_MS_BTN4, +    KC_BTN5    = KC_MS_BTN5, +    KC_BTN6    = KC_MS_BTN6, +    KC_BTN7    = KC_MS_BTN7, +    KC_BTN8    = KC_MS_BTN8, +    KC_WH_U    = KC_MS_WH_UP, +    KC_WH_D    = KC_MS_WH_DOWN, +    KC_WH_L    = KC_MS_WH_LEFT, +    KC_WH_R    = KC_MS_WH_RIGHT, +    KC_ACL0    = KC_MS_ACCEL0, +    KC_ACL1    = KC_MS_ACCEL1, +    KC_ACL2    = KC_MS_ACCEL2, +    KC_LCTL    = KC_LEFT_CTRL, +    KC_LSFT    = KC_LEFT_SHIFT, +    KC_LALT    = KC_LEFT_ALT, +    KC_LOPT    = KC_LEFT_ALT, +    KC_LGUI    = KC_LEFT_GUI, +    KC_LCMD    = KC_LEFT_GUI, +    KC_LWIN    = KC_LEFT_GUI, +    KC_RCTL    = KC_RIGHT_CTRL, +    KC_RSFT    = KC_RIGHT_SHIFT, +    KC_RALT    = KC_RIGHT_ALT, +    KC_ROPT    = KC_RIGHT_ALT, +    KC_ALGR    = KC_RIGHT_ALT, +    KC_RGUI    = KC_RIGHT_GUI, +    KC_RCMD    = KC_RIGHT_GUI, +    KC_RWIN    = KC_RIGHT_GUI, +    CL_SWAP    = MAGIC_SWAP_CONTROL_CAPSLOCK, +    CL_NORM    = MAGIC_UNSWAP_CONTROL_CAPSLOCK, +    CL_TOGG    = MAGIC_TOGGLE_CONTROL_CAPSLOCK, +    CL_CAPS    = MAGIC_UNCAPSLOCK_TO_CONTROL, +    CL_CTRL    = MAGIC_CAPSLOCK_TO_CONTROL, +    LAG_SWP    = MAGIC_SWAP_LALT_LGUI, +    LAG_NRM    = MAGIC_UNSWAP_LALT_LGUI, +    RAG_SWP    = MAGIC_SWAP_RALT_RGUI, +    RAG_NRM    = MAGIC_UNSWAP_RALT_RGUI, +    GUI_ON     = MAGIC_UNNO_GUI, +    GUI_OFF    = MAGIC_NO_GUI, +    GUI_TOG    = MAGIC_TOGGLE_GUI, +    GE_SWAP    = MAGIC_SWAP_GRAVE_ESC, +    GE_NORM    = MAGIC_UNSWAP_GRAVE_ESC, +    BS_SWAP    = MAGIC_SWAP_BACKSLASH_BACKSPACE, +    BS_NORM    = MAGIC_UNSWAP_BACKSLASH_BACKSPACE, +    BS_TOGG    = MAGIC_TOGGLE_BACKSLASH_BACKSPACE, +    NK_ON      = MAGIC_HOST_NKRO, +    NK_OFF     = MAGIC_UNHOST_NKRO, +    NK_TOGG    = MAGIC_TOGGLE_NKRO, +    AG_SWAP    = MAGIC_SWAP_ALT_GUI, +    AG_NORM    = MAGIC_UNSWAP_ALT_GUI, +    AG_TOGG    = MAGIC_TOGGLE_ALT_GUI, +    LCG_SWP    = MAGIC_SWAP_LCTL_LGUI, +    LCG_NRM    = MAGIC_UNSWAP_LCTL_LGUI, +    RCG_SWP    = MAGIC_SWAP_RCTL_RGUI, +    RCG_NRM    = MAGIC_UNSWAP_RCTL_RGUI, +    CG_SWAP    = MAGIC_SWAP_CTL_GUI, +    CG_NORM    = MAGIC_UNSWAP_CTL_GUI, +    CG_TOGG    = MAGIC_TOGGLE_CTL_GUI, +    EH_LEFT    = MAGIC_EE_HANDS_LEFT, +    EH_RGHT    = MAGIC_EE_HANDS_RIGHT, +    EC_SWAP    = MAGIC_SWAP_ESCAPE_CAPSLOCK, +    EC_NORM    = MAGIC_UNSWAP_ESCAPE_CAPSLOCK, +    EC_TOGG    = MAGIC_TOGGLE_ESCAPE_CAPSLOCK, +    MI_Db      = MI_Cs, +    MI_Eb      = MI_Ds, +    MI_Gb      = MI_Fs, +    MI_Ab      = MI_Gs, +    MI_Bb      = MI_As, +    MI_Db_1    = MI_Cs_1, +    MI_Eb_1    = MI_Ds_1, +    MI_Gb_1    = MI_Fs_1, +    MI_Ab_1    = MI_Gs_1, +    MI_Bb_1    = MI_As_1, +    MI_Db_2    = MI_Cs_2, +    MI_Eb_2    = MI_Ds_2, +    MI_Gb_2    = MI_Fs_2, +    MI_Ab_2    = MI_Gs_2, +    MI_Bb_2    = MI_As_2, +    MI_Db_3    = MI_Cs_3, +    MI_Eb_3    = MI_Ds_3, +    MI_Gb_3    = MI_Fs_3, +    MI_Ab_3    = MI_Gs_3, +    MI_Bb_3    = MI_As_3, +    MI_Db_4    = MI_Cs_4, +    MI_Eb_4    = MI_Ds_4, +    MI_Gb_4    = MI_Fs_4, +    MI_Ab_4    = MI_Gs_4, +    MI_Bb_4    = MI_As_4, +    MI_Db_5    = MI_Cs_5, +    MI_Eb_5    = MI_Ds_5, +    MI_Gb_5    = MI_Fs_5, +    MI_Ab_5    = MI_Gs_5, +    MI_Bb_5    = MI_As_5, +    JS_0       = QK_JOYSTICK_BUTTON_0, +    JS_1       = QK_JOYSTICK_BUTTON_1, +    JS_2       = QK_JOYSTICK_BUTTON_2, +    JS_3       = QK_JOYSTICK_BUTTON_3, +    JS_4       = QK_JOYSTICK_BUTTON_4, +    JS_5       = QK_JOYSTICK_BUTTON_5, +    JS_6       = QK_JOYSTICK_BUTTON_6, +    JS_7       = QK_JOYSTICK_BUTTON_7, +    JS_8       = QK_JOYSTICK_BUTTON_8, +    JS_9       = QK_JOYSTICK_BUTTON_9, +    JS_10      = QK_JOYSTICK_BUTTON_10, +    JS_11      = QK_JOYSTICK_BUTTON_11, +    JS_12      = QK_JOYSTICK_BUTTON_12, +    JS_13      = QK_JOYSTICK_BUTTON_13, +    JS_14      = QK_JOYSTICK_BUTTON_14, +    JS_15      = QK_JOYSTICK_BUTTON_15, +    JS_16      = QK_JOYSTICK_BUTTON_16, +    JS_17      = QK_JOYSTICK_BUTTON_17, +    JS_18      = QK_JOYSTICK_BUTTON_18, +    JS_19      = QK_JOYSTICK_BUTTON_19, +    JS_20      = QK_JOYSTICK_BUTTON_20, +    JS_21      = QK_JOYSTICK_BUTTON_21, +    JS_22      = QK_JOYSTICK_BUTTON_22, +    JS_23      = QK_JOYSTICK_BUTTON_23, +    JS_24      = QK_JOYSTICK_BUTTON_24, +    JS_25      = QK_JOYSTICK_BUTTON_25, +    JS_26      = QK_JOYSTICK_BUTTON_26, +    JS_27      = QK_JOYSTICK_BUTTON_27, +    JS_28      = QK_JOYSTICK_BUTTON_28, +    JS_29      = QK_JOYSTICK_BUTTON_29, +    JS_30      = QK_JOYSTICK_BUTTON_30, +    JS_31      = QK_JOYSTICK_BUTTON_31, +    PB_1       = QK_PROGRAMMABLE_BUTTON_1, +    PB_2       = QK_PROGRAMMABLE_BUTTON_2, +    PB_3       = QK_PROGRAMMABLE_BUTTON_3, +    PB_4       = QK_PROGRAMMABLE_BUTTON_4, +    PB_5       = QK_PROGRAMMABLE_BUTTON_5, +    PB_6       = QK_PROGRAMMABLE_BUTTON_6, +    PB_7       = QK_PROGRAMMABLE_BUTTON_7, +    PB_8       = QK_PROGRAMMABLE_BUTTON_8, +    PB_9       = QK_PROGRAMMABLE_BUTTON_9, +    PB_10      = QK_PROGRAMMABLE_BUTTON_10, +    PB_11      = QK_PROGRAMMABLE_BUTTON_11, +    PB_12      = QK_PROGRAMMABLE_BUTTON_12, +    PB_13      = QK_PROGRAMMABLE_BUTTON_13, +    PB_14      = QK_PROGRAMMABLE_BUTTON_14, +    PB_15      = QK_PROGRAMMABLE_BUTTON_15, +    PB_16      = QK_PROGRAMMABLE_BUTTON_16, +    PB_17      = QK_PROGRAMMABLE_BUTTON_17, +    PB_18      = QK_PROGRAMMABLE_BUTTON_18, +    PB_19      = QK_PROGRAMMABLE_BUTTON_19, +    PB_20      = QK_PROGRAMMABLE_BUTTON_20, +    PB_21      = QK_PROGRAMMABLE_BUTTON_21, +    PB_22      = QK_PROGRAMMABLE_BUTTON_22, +    PB_23      = QK_PROGRAMMABLE_BUTTON_23, +    PB_24      = QK_PROGRAMMABLE_BUTTON_24, +    PB_25      = QK_PROGRAMMABLE_BUTTON_25, +    PB_26      = QK_PROGRAMMABLE_BUTTON_26, +    PB_27      = QK_PROGRAMMABLE_BUTTON_27, +    PB_28      = QK_PROGRAMMABLE_BUTTON_28, +    PB_29      = QK_PROGRAMMABLE_BUTTON_29, +    PB_30      = QK_PROGRAMMABLE_BUTTON_30, +    PB_31      = QK_PROGRAMMABLE_BUTTON_31, +    PB_32      = QK_PROGRAMMABLE_BUTTON_32, +    CK_TOGG    = CLICKY_TOGGLE, +    CK_ON      = CLICKY_ENABLE, +    CK_OFF     = CLICKY_DISABLE, +    CK_UP      = CLICKY_UP, +    CK_DOWN    = CLICKY_DOWN, +    CK_RST     = CLICKY_RESET, +    RGB_MOD    = RGB_MODE_FORWARD, +    RGB_RMOD   = RGB_MODE_REVERSE, +    RGB_M_P    = RGB_MODE_PLAIN, +    RGB_M_B    = RGB_MODE_BREATHE, +    RGB_M_R    = RGB_MODE_RAINBOW, +    RGB_M_SW   = RGB_MODE_SWIRL, +    RGB_M_SN   = RGB_MODE_SNAKE, +    RGB_M_K    = RGB_MODE_KNIGHT, +    RGB_M_X    = RGB_MODE_XMAS, +    RGB_M_G    = RGB_MODE_GRADIENT, +    RGB_M_T    = RGB_MODE_RGBTEST, +    RGB_M_TW   = RGB_MODE_TWINKLE, +    QK_BOOT    = QK_BOOTLOADER, +    QK_RBT     = QK_REBOOT, +    DB_TOGG    = QK_DEBUG_TOGGLE, +    EE_CLR     = QK_CLEAR_EEPROM, +    AS_DOWN    = QK_AUTO_SHIFT_DOWN, +    AS_UP      = QK_AUTO_SHIFT_UP, +    AS_RPT     = QK_AUTO_SHIFT_REPORT, +    AS_ON      = QK_AUTO_SHIFT_ON, +    AS_OFF     = QK_AUTO_SHIFT_OFF, +    AS_TOGG    = QK_AUTO_SHIFT_TOGGLE, +    QK_GESC    = QK_GRAVE_ESCAPE, +    VK_TOGG    = QK_VELOCIKEY_TOGGLE, +    SC_LCPO    = QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN, +    SC_RCPC    = QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE, +    SC_LSPO    = QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN, +    SC_RSPC    = QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE, +    SC_LAPO    = QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN, +    SC_RAPC    = QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE, +    SC_SENT    = QK_SPACE_CADET_RIGHT_SHIFT_ENTER, +    UC_NEXT    = QK_UNICODE_MODE_NEXT, +    UC_PREV    = QK_UNICODE_MODE_PREVIOUS, +    UC_MAC     = QK_UNICODE_MODE_MACOS, +    UC_LINX    = QK_UNICODE_MODE_LINUX, +    UC_WIN     = QK_UNICODE_MODE_WINDOWS, +    UC_BSD     = QK_UNICODE_MODE_BSD, +    UC_WINC    = QK_UNICODE_MODE_WINCOMPOSE, +    UC_EMAC    = QK_UNICODE_MODE_EMACS, +    CM_ON      = QK_COMBO_ON, +    CM_OFF     = QK_COMBO_OFF, +    CM_TOGG    = QK_COMBO_TOGGLE, +    DM_REC1    = QK_DYNAMIC_MACRO_RECORD_START_1, +    DM_REC2    = QK_DYNAMIC_MACRO_RECORD_START_2, +    DM_RSTP    = QK_DYNAMIC_MACRO_RECORD_STOP, +    DM_PLY1    = QK_DYNAMIC_MACRO_PLAY_1, +    DM_PLY2    = QK_DYNAMIC_MACRO_PLAY_2, +    QK_LEAD    = QK_LEADER, +    OS_ON      = QK_ONE_SHOT_ON, +    OS_OFF     = QK_ONE_SHOT_OFF, +    OS_TOGG    = QK_ONE_SHOT_TOGGLE, +    KO_TOGG    = QK_KEY_OVERRIDE_TOGGLE, +    KO_ON      = QK_KEY_OVERRIDE_ON, +    KO_OFF     = QK_KEY_OVERRIDE_OFF, +    SE_LOCK    = QK_SECURE_LOCK, +    SE_UNLK    = QK_SECURE_UNLOCK, +    SE_TOGG    = QK_SECURE_TOGGLE, +    SE_REQ     = QK_SECURE_REQUEST, +    CW_TOGG    = QK_CAPS_WORD_TOGGLE, +    AC_ON      = QK_AUTOCORRECT_ON, +    AC_OFF     = QK_AUTOCORRECT_OFF, +    AC_TOGG    = QK_AUTOCORRECT_TOGGLE, +}; + +// Range Helpers +#define IS_QK_BASIC(code) ((code) >= QK_BASIC && (code) <= QK_BASIC_MAX) +#define IS_QK_MODS(code) ((code) >= QK_MODS && (code) <= QK_MODS_MAX) +#define IS_QK_MOD_TAP(code) ((code) >= QK_MOD_TAP && (code) <= QK_MOD_TAP_MAX) +#define IS_QK_LAYER_TAP(code) ((code) >= QK_LAYER_TAP && (code) <= QK_LAYER_TAP_MAX) +#define IS_QK_LAYER_MOD(code) ((code) >= QK_LAYER_MOD && (code) <= QK_LAYER_MOD_MAX) +#define IS_QK_TO(code) ((code) >= QK_TO && (code) <= QK_TO_MAX) +#define IS_QK_MOMENTARY(code) ((code) >= QK_MOMENTARY && (code) <= QK_MOMENTARY_MAX) +#define IS_QK_DEF_LAYER(code) ((code) >= QK_DEF_LAYER && (code) <= QK_DEF_LAYER_MAX) +#define IS_QK_TOGGLE_LAYER(code) ((code) >= QK_TOGGLE_LAYER && (code) <= QK_TOGGLE_LAYER_MAX) +#define IS_QK_ONE_SHOT_LAYER(code) ((code) >= QK_ONE_SHOT_LAYER && (code) <= QK_ONE_SHOT_LAYER_MAX) +#define IS_QK_ONE_SHOT_MOD(code) ((code) >= QK_ONE_SHOT_MOD && (code) <= QK_ONE_SHOT_MOD_MAX) +#define IS_QK_LAYER_TAP_TOGGLE(code) ((code) >= QK_LAYER_TAP_TOGGLE && (code) <= QK_LAYER_TAP_TOGGLE_MAX) +#define IS_QK_SWAP_HANDS(code) ((code) >= QK_SWAP_HANDS && (code) <= QK_SWAP_HANDS_MAX) +#define IS_QK_TAP_DANCE(code) ((code) >= QK_TAP_DANCE && (code) <= QK_TAP_DANCE_MAX) +#define IS_QK_MAGIC(code) ((code) >= QK_MAGIC && (code) <= QK_MAGIC_MAX) +#define IS_QK_MIDI(code) ((code) >= QK_MIDI && (code) <= QK_MIDI_MAX) +#define IS_QK_SEQUENCER(code) ((code) >= QK_SEQUENCER && (code) <= QK_SEQUENCER_MAX) +#define IS_QK_JOYSTICK(code) ((code) >= QK_JOYSTICK && (code) <= QK_JOYSTICK_MAX) +#define IS_QK_PROGRAMMABLE_BUTTON(code) ((code) >= QK_PROGRAMMABLE_BUTTON && (code) <= QK_PROGRAMMABLE_BUTTON_MAX) +#define IS_QK_AUDIO(code) ((code) >= QK_AUDIO && (code) <= QK_AUDIO_MAX) +#define IS_QK_STENO(code) ((code) >= QK_STENO && (code) <= QK_STENO_MAX) +#define IS_QK_MACRO(code) ((code) >= QK_MACRO && (code) <= QK_MACRO_MAX) +#define IS_QK_LIGHTING(code) ((code) >= QK_LIGHTING && (code) <= QK_LIGHTING_MAX) +#define IS_QK_QUANTUM(code) ((code) >= QK_QUANTUM && (code) <= QK_QUANTUM_MAX) +#define IS_QK_KB(code) ((code) >= QK_KB && (code) <= QK_KB_MAX) +#define IS_QK_USER(code) ((code) >= QK_USER && (code) <= QK_USER_MAX) +#define IS_QK_UNICODE(code) ((code) >= QK_UNICODE && (code) <= QK_UNICODE_MAX) + +// Group Helpers +#define IS_INTERNAL_KEYCODE(code) ((code) >= KC_NO && (code) <= KC_TRANSPARENT) +#define IS_BASIC_KEYCODE(code) ((code) >= KC_A && (code) <= KC_EXSEL) +#define IS_SYSTEM_KEYCODE(code) ((code) >= KC_SYSTEM_POWER && (code) <= KC_SYSTEM_WAKE) +#define IS_MEDIA_KEYCODE(code) ((code) >= KC_AUDIO_MUTE && (code) <= KC_ASSISTANT) +#define IS_MOUSE_KEYCODE(code) ((code) >= KC_MS_UP && (code) <= KC_MS_ACCEL2) +#define IS_MODIFIERS_KEYCODE(code) ((code) >= KC_LEFT_CTRL && (code) <= KC_RIGHT_GUI) +#define IS_SWAP_HANDS_KEYCODE(code) ((code) >= SH_TG && (code) <= SH_OS) +#define IS_MAGIC_KEYCODE(code) ((code) >= MAGIC_SWAP_CONTROL_CAPSLOCK && (code) <= MAGIC_TOGGLE_ESCAPE_CAPSLOCK) +#define IS_MIDI_KEYCODE(code) ((code) >= MI_ON && (code) <= MI_BENDU) +#define IS_SEQUENCER_KEYCODE(code) ((code) >= SQ_ON && (code) <= SQ_SCLR) +#define IS_JOYSTICK_KEYCODE(code) ((code) >= QK_JOYSTICK_BUTTON_0 && (code) <= QK_JOYSTICK_BUTTON_31) +#define IS_PROGRAMMABLE_BUTTON_KEYCODE(code) ((code) >= QK_PROGRAMMABLE_BUTTON_1 && (code) <= QK_PROGRAMMABLE_BUTTON_32) +#define IS_AUDIO_KEYCODE(code) ((code) >= AU_ON && (code) <= MUV_DE) +#define IS_STENO_KEYCODE(code) ((code) >= QK_STENO_BOLT && (code) <= QK_STENO_COMB_MAX) +#define IS_MACRO_KEYCODE(code) ((code) >= MACRO_0 && (code) <= MACRO_31) +#define IS_BACKLIGHT_KEYCODE(code) ((code) >= BL_ON && (code) <= BL_BRTG) +#define IS_RGB_KEYCODE(code) ((code) >= RGB_TOG && (code) <= RGB_MODE_TWINKLE) +#define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_AUTOCORRECT_TOGGLE) + diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 50e581cd87..a5997711f2 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -109,7 +109,7 @@ action_t action_for_keycode(uint16_t keycode) {              break;          case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX:;              // OSM(mod) - One-shot mod -            mod         = mod_config(keycode & 0xFF); +            mod         = mod_config(keycode & 0x1F);              action.code = ACTION_MODS_ONESHOT(mod);              break;  #endif @@ -118,8 +118,8 @@ action_t action_for_keycode(uint16_t keycode) {              action.code = ACTION_LAYER_TAP_TOGGLE(keycode & 0xFF);              break;          case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: -            mod          = mod_config(keycode & 0xF); -            action_layer = (keycode >> 4) & 0xF; +            mod          = mod_config(keycode & 0x1F); +            action_layer = (keycode >> 5) & 0xF;              action.code  = ACTION_LAYER_MODS(action_layer, mod);              break;  #endif diff --git a/quantum/process_keycode/process_joystick.c b/quantum/process_keycode/process_joystick.c index c4c6fb59a8..43067b81db 100644 --- a/quantum/process_keycode/process_joystick.c +++ b/quantum/process_keycode/process_joystick.c @@ -19,11 +19,11 @@  bool process_joystick(uint16_t keycode, keyrecord_t *record) {      switch (keycode) { -        case QK_JOYSTICK_BUTTON_MIN ... QK_JOYSTICK_BUTTON_MAX: +        case QK_JOYSTICK ... QK_JOYSTICK_MAX:              if (record->event.pressed) { -                register_joystick_button(keycode - QK_JOYSTICK_BUTTON_MIN); +                register_joystick_button(keycode - QK_JOYSTICK);              } else { -                unregister_joystick_button(keycode - QK_JOYSTICK_BUTTON_MIN); +                unregister_joystick_button(keycode - QK_JOYSTICK);              }              return false;      } diff --git a/quantum/process_keycode/process_magic.c b/quantum/process_keycode/process_magic.c index 50816c5261..72332b20d7 100644 --- a/quantum/process_keycode/process_magic.c +++ b/quantum/process_keycode/process_magic.c @@ -40,158 +40,152 @@ float cg_swap_song[][2] = CG_SWAP_SONG;  bool process_magic(uint16_t keycode, keyrecord_t *record) {      // skip anything that isn't a keyup      if (record->event.pressed) { -        switch (keycode) { -            case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_TOGGLE_ALT_GUI: -            case MAGIC_SWAP_LCTL_LGUI ... MAGIC_EE_HANDS_RIGHT: -            case MAGIC_TOGGLE_GUI: -            case MAGIC_TOGGLE_CONTROL_CAPSLOCK: -            case MAGIC_TOGGLE_BACKSLASH_BACKSPACE: -            case MAGIC_SWAP_ESCAPE_CAPSLOCK ... MAGIC_TOGGLE_ESCAPE_CAPSLOCK: -                /* keymap config */ -                keymap_config.raw = eeconfig_read_keymap(); -                switch (keycode) { -                    case MAGIC_SWAP_CONTROL_CAPSLOCK: -                        keymap_config.swap_control_capslock = true; -                        break; -                    case MAGIC_SWAP_ESCAPE_CAPSLOCK: -                        keymap_config.swap_escape_capslock = true; -                        break; -                    case MAGIC_CAPSLOCK_TO_CONTROL: -                        keymap_config.capslock_to_control = true; -                        break; -                    case MAGIC_SWAP_LALT_LGUI: -                        keymap_config.swap_lalt_lgui = true; -                        break; -                    case MAGIC_SWAP_RALT_RGUI: -                        keymap_config.swap_ralt_rgui = true; -                        break; -                    case MAGIC_SWAP_LCTL_LGUI: -                        keymap_config.swap_lctl_lgui = true; -                        break; -                    case MAGIC_SWAP_RCTL_RGUI: -                        keymap_config.swap_rctl_rgui = true; -                        break; -                    case MAGIC_NO_GUI: -                        keymap_config.no_gui = true; -                        break; -                    case MAGIC_SWAP_GRAVE_ESC: -                        keymap_config.swap_grave_esc = true; -                        break; -                    case MAGIC_SWAP_BACKSLASH_BACKSPACE: -                        keymap_config.swap_backslash_backspace = true; -                        break; -                    case MAGIC_HOST_NKRO: -                        clear_keyboard(); // clear first buffer to prevent stuck keys -                        keymap_config.nkro = true; -                        break; -                    case MAGIC_SWAP_ALT_GUI: -                        keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = true; +        if (IS_MAGIC_KEYCODE(keycode)) { +            /* keymap config */ +            keymap_config.raw = eeconfig_read_keymap(); +            switch (keycode) { +                case MAGIC_SWAP_CONTROL_CAPSLOCK: +                    keymap_config.swap_control_capslock = true; +                    break; +                case MAGIC_SWAP_ESCAPE_CAPSLOCK: +                    keymap_config.swap_escape_capslock = true; +                    break; +                case MAGIC_CAPSLOCK_TO_CONTROL: +                    keymap_config.capslock_to_control = true; +                    break; +                case MAGIC_SWAP_LALT_LGUI: +                    keymap_config.swap_lalt_lgui = true; +                    break; +                case MAGIC_SWAP_RALT_RGUI: +                    keymap_config.swap_ralt_rgui = true; +                    break; +                case MAGIC_SWAP_LCTL_LGUI: +                    keymap_config.swap_lctl_lgui = true; +                    break; +                case MAGIC_SWAP_RCTL_RGUI: +                    keymap_config.swap_rctl_rgui = true; +                    break; +                case MAGIC_NO_GUI: +                    keymap_config.no_gui = true; +                    break; +                case MAGIC_SWAP_GRAVE_ESC: +                    keymap_config.swap_grave_esc = true; +                    break; +                case MAGIC_SWAP_BACKSLASH_BACKSPACE: +                    keymap_config.swap_backslash_backspace = true; +                    break; +                case MAGIC_HOST_NKRO: +                    clear_keyboard(); // clear first buffer to prevent stuck keys +                    keymap_config.nkro = true; +                    break; +                case MAGIC_SWAP_ALT_GUI: +                    keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = true;  #ifdef AUDIO_ENABLE -                        PLAY_SONG(ag_swap_song); +                    PLAY_SONG(ag_swap_song);  #endif -                        break; -                    case MAGIC_SWAP_CTL_GUI: -                        keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = true; +                    break; +                case MAGIC_SWAP_CTL_GUI: +                    keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = true;  #ifdef AUDIO_ENABLE -                        PLAY_SONG(cg_swap_song); +                    PLAY_SONG(cg_swap_song);  #endif -                        break; -                    case MAGIC_UNSWAP_CONTROL_CAPSLOCK: -                        keymap_config.swap_control_capslock = false; -                        break; -                    case MAGIC_UNSWAP_ESCAPE_CAPSLOCK: -                        keymap_config.swap_escape_capslock = false; -                        break; -                    case MAGIC_UNCAPSLOCK_TO_CONTROL: -                        keymap_config.capslock_to_control = false; -                        break; -                    case MAGIC_UNSWAP_LALT_LGUI: -                        keymap_config.swap_lalt_lgui = false; -                        break; -                    case MAGIC_UNSWAP_RALT_RGUI: -                        keymap_config.swap_ralt_rgui = false; -                        break; -                    case MAGIC_UNSWAP_LCTL_LGUI: -                        keymap_config.swap_lctl_lgui = false; -                        break; -                    case MAGIC_UNSWAP_RCTL_RGUI: -                        keymap_config.swap_rctl_rgui = false; -                        break; -                    case MAGIC_UNNO_GUI: -                        keymap_config.no_gui = false; -                        break; -                    case MAGIC_UNSWAP_GRAVE_ESC: -                        keymap_config.swap_grave_esc = false; -                        break; -                    case MAGIC_UNSWAP_BACKSLASH_BACKSPACE: -                        keymap_config.swap_backslash_backspace = false; -                        break; -                    case MAGIC_UNHOST_NKRO: -                        clear_keyboard(); // clear first buffer to prevent stuck keys -                        keymap_config.nkro = false; -                        break; -                    case MAGIC_UNSWAP_ALT_GUI: -                        keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = false; +                    break; +                case MAGIC_UNSWAP_CONTROL_CAPSLOCK: +                    keymap_config.swap_control_capslock = false; +                    break; +                case MAGIC_UNSWAP_ESCAPE_CAPSLOCK: +                    keymap_config.swap_escape_capslock = false; +                    break; +                case MAGIC_UNCAPSLOCK_TO_CONTROL: +                    keymap_config.capslock_to_control = false; +                    break; +                case MAGIC_UNSWAP_LALT_LGUI: +                    keymap_config.swap_lalt_lgui = false; +                    break; +                case MAGIC_UNSWAP_RALT_RGUI: +                    keymap_config.swap_ralt_rgui = false; +                    break; +                case MAGIC_UNSWAP_LCTL_LGUI: +                    keymap_config.swap_lctl_lgui = false; +                    break; +                case MAGIC_UNSWAP_RCTL_RGUI: +                    keymap_config.swap_rctl_rgui = false; +                    break; +                case MAGIC_UNNO_GUI: +                    keymap_config.no_gui = false; +                    break; +                case MAGIC_UNSWAP_GRAVE_ESC: +                    keymap_config.swap_grave_esc = false; +                    break; +                case MAGIC_UNSWAP_BACKSLASH_BACKSPACE: +                    keymap_config.swap_backslash_backspace = false; +                    break; +                case MAGIC_UNHOST_NKRO: +                    clear_keyboard(); // clear first buffer to prevent stuck keys +                    keymap_config.nkro = false; +                    break; +                case MAGIC_UNSWAP_ALT_GUI: +                    keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = false;  #ifdef AUDIO_ENABLE -                        PLAY_SONG(ag_norm_song); +                    PLAY_SONG(ag_norm_song);  #endif -                        break; -                    case MAGIC_UNSWAP_CTL_GUI: -                        keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = false; +                    break; +                case MAGIC_UNSWAP_CTL_GUI: +                    keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = false;  #ifdef AUDIO_ENABLE -                        PLAY_SONG(cg_norm_song); +                    PLAY_SONG(cg_norm_song);  #endif -                        break; -                    case MAGIC_TOGGLE_ALT_GUI: -                        keymap_config.swap_lalt_lgui = !keymap_config.swap_lalt_lgui; -                        keymap_config.swap_ralt_rgui = keymap_config.swap_lalt_lgui; +                    break; +                case MAGIC_TOGGLE_ALT_GUI: +                    keymap_config.swap_lalt_lgui = !keymap_config.swap_lalt_lgui; +                    keymap_config.swap_ralt_rgui = keymap_config.swap_lalt_lgui;  #ifdef AUDIO_ENABLE -                        if (keymap_config.swap_ralt_rgui) { -                            PLAY_SONG(ag_swap_song); -                        } else { -                            PLAY_SONG(ag_norm_song); -                        } +                    if (keymap_config.swap_ralt_rgui) { +                        PLAY_SONG(ag_swap_song); +                    } else { +                        PLAY_SONG(ag_norm_song); +                    }  #endif -                        break; -                    case MAGIC_TOGGLE_CTL_GUI: -                        keymap_config.swap_lctl_lgui = !keymap_config.swap_lctl_lgui; -                        keymap_config.swap_rctl_rgui = keymap_config.swap_lctl_lgui; +                    break; +                case MAGIC_TOGGLE_CTL_GUI: +                    keymap_config.swap_lctl_lgui = !keymap_config.swap_lctl_lgui; +                    keymap_config.swap_rctl_rgui = keymap_config.swap_lctl_lgui;  #ifdef AUDIO_ENABLE -                        if (keymap_config.swap_rctl_rgui) { -                            PLAY_SONG(cg_swap_song); -                        } else { -                            PLAY_SONG(cg_norm_song); -                        } +                    if (keymap_config.swap_rctl_rgui) { +                        PLAY_SONG(cg_swap_song); +                    } else { +                        PLAY_SONG(cg_norm_song); +                    }  #endif -                        break; -                    case MAGIC_TOGGLE_BACKSLASH_BACKSPACE: -                        keymap_config.swap_backslash_backspace = !keymap_config.swap_backslash_backspace; -                        break; -                    case MAGIC_TOGGLE_NKRO: -                        clear_keyboard(); // clear first buffer to prevent stuck keys -                        keymap_config.nkro = !keymap_config.nkro; -                        break; -                    case MAGIC_EE_HANDS_LEFT: -                        eeconfig_update_handedness(true); -                        break; -                    case MAGIC_EE_HANDS_RIGHT: -                        eeconfig_update_handedness(false); -                        break; -                    case MAGIC_TOGGLE_GUI: -                        keymap_config.no_gui = !keymap_config.no_gui; -                        break; -                    case MAGIC_TOGGLE_CONTROL_CAPSLOCK: -                        keymap_config.swap_control_capslock = !keymap_config.swap_control_capslock; -                        break; -                    case MAGIC_TOGGLE_ESCAPE_CAPSLOCK: -                        keymap_config.swap_escape_capslock = !keymap_config.swap_escape_capslock; -                        break; -                } +                    break; +                case MAGIC_TOGGLE_BACKSLASH_BACKSPACE: +                    keymap_config.swap_backslash_backspace = !keymap_config.swap_backslash_backspace; +                    break; +                case MAGIC_TOGGLE_NKRO: +                    clear_keyboard(); // clear first buffer to prevent stuck keys +                    keymap_config.nkro = !keymap_config.nkro; +                    break; +                case MAGIC_EE_HANDS_LEFT: +                    eeconfig_update_handedness(true); +                    break; +                case MAGIC_EE_HANDS_RIGHT: +                    eeconfig_update_handedness(false); +                    break; +                case MAGIC_TOGGLE_GUI: +                    keymap_config.no_gui = !keymap_config.no_gui; +                    break; +                case MAGIC_TOGGLE_CONTROL_CAPSLOCK: +                    keymap_config.swap_control_capslock = !keymap_config.swap_control_capslock; +                    break; +                case MAGIC_TOGGLE_ESCAPE_CAPSLOCK: +                    keymap_config.swap_escape_capslock = !keymap_config.swap_escape_capslock; +                    break; +            } -                eeconfig_update_keymap(keymap_config.raw); -                clear_keyboard(); // clear to prevent stuck keys +            eeconfig_update_keymap(keymap_config.raw); +            clear_keyboard(); // clear to prevent stuck keys -                return false; +            return false;          }      } diff --git a/quantum/process_keycode/process_programmable_button.c b/quantum/process_keycode/process_programmable_button.c index d6a14e120c..03034edb61 100644 --- a/quantum/process_keycode/process_programmable_button.c +++ b/quantum/process_keycode/process_programmable_button.c @@ -19,8 +19,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "programmable_button.h"  bool process_programmable_button(uint16_t keycode, keyrecord_t *record) { -    if (keycode >= QK_PROGRAMMABLE_BUTTON_MIN && keycode <= QK_PROGRAMMABLE_BUTTON_MAX) { -        uint8_t button = keycode - QK_PROGRAMMABLE_BUTTON_MIN + 1; +    if (IS_QK_PROGRAMMABLE_BUTTON(keycode)) { +        uint8_t button = keycode - QK_PROGRAMMABLE_BUTTON + 1;          if (record->event.pressed) {              programmable_button_register(button);          } else { diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 2df733fe1f..ec69fadbab 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -16,610 +16,28 @@  #pragma once -#include "sequencer.h" - -// Fillers to make layering more clear -#define _______ KC_TRANSPARENT -#define XXXXXXX KC_NO - -enum quantum_keycodes { -    // Ranges used in shortcuts - not to be used directly -    QK_BASIC                = 0x0000, -    QK_BASIC_MAX            = 0x00FF, -    QK_MODS                 = 0x0100, -    QK_LCTL                 = 0x0100, -    QK_LSFT                 = 0x0200, -    QK_LALT                 = 0x0400, -    QK_LGUI                 = 0x0800, -    QK_RMODS_MIN            = 0x1000, -    QK_RCTL                 = 0x1100, -    QK_RSFT                 = 0x1200, -    QK_RALT                 = 0x1400, -    QK_RGUI                 = 0x1800, -    QK_MODS_MAX             = 0x1FFF, -    QK_LAYER_TAP            = 0x4000, -    QK_LAYER_TAP_MAX        = 0x4FFF, -    QK_TO                   = 0x5000, -    QK_TO_MAX               = 0x50FF, -    QK_MOMENTARY            = 0x5100, -    QK_MOMENTARY_MAX        = 0x51FF, -    QK_DEF_LAYER            = 0x5200, -    QK_DEF_LAYER_MAX        = 0x52FF, -    QK_TOGGLE_LAYER         = 0x5300, -    QK_TOGGLE_LAYER_MAX     = 0x53FF, -    QK_ONE_SHOT_LAYER       = 0x5400, -    QK_ONE_SHOT_LAYER_MAX   = 0x54FF, -    QK_ONE_SHOT_MOD         = 0x5500, -    QK_ONE_SHOT_MOD_MAX     = 0x55FF, -    QK_SWAP_HANDS           = 0x5600, -    QK_SWAP_HANDS_MAX       = 0x56FF, -    QK_TAP_DANCE            = 0x5700, -    QK_TAP_DANCE_MAX        = 0x57FF, -    QK_LAYER_TAP_TOGGLE     = 0x5800, -    QK_LAYER_TAP_TOGGLE_MAX = 0x58FF, -    QK_LAYER_MOD            = 0x5900, -    QK_LAYER_MOD_MAX        = 0x59FF, -    QK_STENO                = 0x5A00, -    QK_STENO_BOLT           = 0x5A30, -    QK_STENO_GEMINI         = 0x5A31, -    QK_STENO_COMB           = 0x5A32, -    QK_STENO_COMB_MAX       = 0x5A3C, -    QK_STENO_MAX            = 0x5A3F, -    // 0x5C00 - 0x5FFF are reserved, see below -    QK_MOD_TAP             = 0x6000, -    QK_MOD_TAP_MAX         = 0x7FFF, -    QK_UNICODE             = 0x8000, -    QK_UNICODE_MAX         = 0xFFFF, -    QK_UNICODEMAP          = 0x8000, -    QK_UNICODEMAP_MAX      = 0xBFFF, -    QK_UNICODEMAP_PAIR     = 0xC000, -    QK_UNICODEMAP_PAIR_MAX = 0xFFFF, - -    // Loose keycodes - to be used directly -    QK_BOOTLOADER = 0x5C00, -    QK_DEBUG_TOGGLE, // 5C01 - -    // Magic -    MAGIC_SWAP_CONTROL_CAPSLOCK,      // 5C02 -    MAGIC_CAPSLOCK_TO_CONTROL,        // 5C03 -    MAGIC_SWAP_LALT_LGUI,             // 5C04 -    MAGIC_SWAP_RALT_RGUI,             // 5C05 -    MAGIC_NO_GUI,                     // 5C06 -    MAGIC_SWAP_GRAVE_ESC,             // 5C07 -    MAGIC_SWAP_BACKSLASH_BACKSPACE,   // 5C08 -    MAGIC_HOST_NKRO,                  // 5C09 -    MAGIC_SWAP_ALT_GUI,               // 5C0A -    MAGIC_UNSWAP_CONTROL_CAPSLOCK,    // 5C0B -    MAGIC_UNCAPSLOCK_TO_CONTROL,      // 5C0C -    MAGIC_UNSWAP_LALT_LGUI,           // 5C0D -    MAGIC_UNSWAP_RALT_RGUI,           // 5C0E -    MAGIC_UNNO_GUI,                   // 5C0F -    MAGIC_UNSWAP_GRAVE_ESC,           // 5C10 -    MAGIC_UNSWAP_BACKSLASH_BACKSPACE, // 5C11 -    MAGIC_UNHOST_NKRO,                // 5C12 -    MAGIC_UNSWAP_ALT_GUI,             // 5C13 -    MAGIC_TOGGLE_NKRO,                // 5C14 -    MAGIC_TOGGLE_ALT_GUI,             // 5C15 - -    // Grave Escape -    QK_GRAVE_ESCAPE, // 5C16 - -    // Auto Shift -    QK_AUTO_SHIFT_UP,     // 5C17 -    QK_AUTO_SHIFT_DOWN,   // 5C18 -    QK_AUTO_SHIFT_REPORT, // 5C19 -    QK_AUTO_SHIFT_TOGGLE, // 5C1A -    QK_AUTO_SHIFT_ON,     // 5C1B -    QK_AUTO_SHIFT_OFF,    // 5C1C - -    // Audio -    AU_ON,  // 5C1D -    AU_OFF, // 5C1E -    AU_TOG, // 5C1F - -    // Audio Clicky -    CLICKY_TOGGLE,  // 5C20 -    CLICKY_ENABLE,  // 5C21 -    CLICKY_DISABLE, // 5C22 -    CLICKY_UP,      // 5C23 -    CLICKY_DOWN,    // 5C24 -    CLICKY_RESET,   // 5C25 - -    // Music mode -    MU_ON,  // 5C26 -    MU_OFF, // 5C27 -    MU_TOG, // 5C28 -    MU_MOD, // 5C29 -    MUV_IN, // 5C2A -    MUV_DE, // 5C2B - -    // MIDI -    MI_ON,  // 5C2C -    MI_OFF, // 5C2D -    MI_TOG, // 5C2E - -    MI_C,  // 5C2F -    MI_Cs, // 5C30 -    MI_Db = MI_Cs, -    MI_D,  // 5C31 -    MI_Ds, // 5C32 -    MI_Eb = MI_Ds, -    MI_E,  // 5C33 -    MI_F,  // 5C34 -    MI_Fs, // 5C35 -    MI_Gb = MI_Fs, -    MI_G,  // 5C36 -    MI_Gs, // 5C37 -    MI_Ab = MI_Gs, -    MI_A,  // 5C38 -    MI_As, // 5C39 -    MI_Bb = MI_As, -    MI_B, // 5C3A - -    MI_C_1,  // 5C3B -    MI_Cs_1, // 5C3C -    MI_Db_1 = MI_Cs_1, -    MI_D_1,  // 5C3D -    MI_Ds_1, // 5C3E -    MI_Eb_1 = MI_Ds_1, -    MI_E_1,  // 5C3F -    MI_F_1,  // 5C40 -    MI_Fs_1, // 5C41 -    MI_Gb_1 = MI_Fs_1, -    MI_G_1,  // 5C42 -    MI_Gs_1, // 5C43 -    MI_Ab_1 = MI_Gs_1, -    MI_A_1,  // 5C44 -    MI_As_1, // 5C45 -    MI_Bb_1 = MI_As_1, -    MI_B_1, // 5C46 - -    MI_C_2,  // 5C47 -    MI_Cs_2, // 5C48 -    MI_Db_2 = MI_Cs_2, -    MI_D_2,  // 5C49 -    MI_Ds_2, // 5C4A -    MI_Eb_2 = MI_Ds_2, -    MI_E_2,  // 5C4B -    MI_F_2,  // 5C4C -    MI_Fs_2, // 5C4D -    MI_Gb_2 = MI_Fs_2, -    MI_G_2,  // 5C4E -    MI_Gs_2, // 5C4F -    MI_Ab_2 = MI_Gs_2, -    MI_A_2,  // 5C50 -    MI_As_2, // 5C51 -    MI_Bb_2 = MI_As_2, -    MI_B_2, // 5C52 - -    MI_C_3,  // 5C53 -    MI_Cs_3, // 5C54 -    MI_Db_3 = MI_Cs_3, -    MI_D_3,  // 5C55 -    MI_Ds_3, // 5C56 -    MI_Eb_3 = MI_Ds_3, -    MI_E_3,  // 5C57 -    MI_F_3,  // 5C58 -    MI_Fs_3, // 5C59 -    MI_Gb_3 = MI_Fs_3, -    MI_G_3,  // 5C5A -    MI_Gs_3, // 5C5B -    MI_Ab_3 = MI_Gs_3, -    MI_A_3,  // 5C5C -    MI_As_3, // 5C5D -    MI_Bb_3 = MI_As_3, -    MI_B_3, // 5C5E - -    MI_C_4,  // 5C5F -    MI_Cs_4, // 5C60 -    MI_Db_4 = MI_Cs_4, -    MI_D_4,  // 5C61 -    MI_Ds_4, // 5C62 -    MI_Eb_4 = MI_Ds_4, -    MI_E_4,  // 5C63 -    MI_F_4,  // 5C64 -    MI_Fs_4, // 5C65 -    MI_Gb_4 = MI_Fs_4, -    MI_G_4,  // 5C66 -    MI_Gs_4, // 5C67 -    MI_Ab_4 = MI_Gs_4, -    MI_A_4,  // 5C68 -    MI_As_4, // 5C69 -    MI_Bb_4 = MI_As_4, -    MI_B_4, // 5C6A - -    MI_C_5,  // 5C6B -    MI_Cs_5, // 5C6C -    MI_Db_5 = MI_Cs_5, -    MI_D_5,  // 5C6D -    MI_Ds_5, // 5C6E -    MI_Eb_5 = MI_Ds_5, -    MI_E_5,  // 5C6F -    MI_F_5,  // 5C70 -    MI_Fs_5, // 5C71 -    MI_Gb_5 = MI_Fs_5, -    MI_G_5,  // 5C72 -    MI_Gs_5, // 5C73 -    MI_Ab_5 = MI_Gs_5, -    MI_A_5,  // 5C74 -    MI_As_5, // 5C75 -    MI_Bb_5 = MI_As_5, -    MI_B_5, // 5C76 - -    MI_OCT_N2, // 5C77 -    MI_OCT_N1, // 5C78 -    MI_OCT_0,  // 5C79 -    MI_OCT_1,  // 5C7A -    MI_OCT_2,  // 5C7B -    MI_OCT_3,  // 5C7C -    MI_OCT_4,  // 5C7D -    MI_OCT_5,  // 5C7E -    MI_OCT_6,  // 5C7F -    MI_OCT_7,  // 5C80 -    MI_OCTD,   // 5C81 -    MI_OCTU,   // 5C82 - -    MI_TRNS_N6, // 5C83 -    MI_TRNS_N5, // 5C84 -    MI_TRNS_N4, // 5C85 -    MI_TRNS_N3, // 5C86 -    MI_TRNS_N2, // 5C87 -    MI_TRNS_N1, // 5C88 -    MI_TRNS_0,  // 5C89 -    MI_TRNS_1,  // 5C8A -    MI_TRNS_2,  // 5C8B -    MI_TRNS_3,  // 5C8C -    MI_TRNS_4,  // 5C8D -    MI_TRNS_5,  // 5C8E -    MI_TRNS_6,  // 5C8F -    MI_TRNSD,   // 5C90 -    MI_TRNSU,   // 5C91 - -    MI_VEL_0, // 5C92 -#ifdef VIA_ENABLE -    MI_VEL_1 = MI_VEL_0, -#else -    MI_VEL_1, // 5C93 -#endif -    MI_VEL_2,  // 5C94 -    MI_VEL_3,  // 5C95 -    MI_VEL_4,  // 5C96 -    MI_VEL_5,  // 5C97 -    MI_VEL_6,  // 5C98 -    MI_VEL_7,  // 5C99 -    MI_VEL_8,  // 5C9A -    MI_VEL_9,  // 5C9B -    MI_VEL_10, // 5C9C -    MI_VELD,   // 5C9D -    MI_VELU,   // 5C9E - -    MI_CH1,  // 5C9F -    MI_CH2,  // 5CA0 -    MI_CH3,  // 5CA1 -    MI_CH4,  // 5CA2 -    MI_CH5,  // 5CA3 -    MI_CH6,  // 5CA4 -    MI_CH7,  // 5CA5 -    MI_CH8,  // 5CA6 -    MI_CH9,  // 5CA7 -    MI_CH10, // 5CA8 -    MI_CH11, // 5CA9 -    MI_CH12, // 5CAA -    MI_CH13, // 5CAB -    MI_CH14, // 5CAC -    MI_CH15, // 5CAD -    MI_CH16, // 5CAE -    MI_CHD,  // 5CAF -    MI_CHU,  // 5CB0 - -    MI_ALLOFF, // 5CB1 - -    MI_SUS,  // 5CB2 -    MI_PORT, // 5CB3 -    MI_SOST, // 5CB4 -    MI_SOFT, // 5CB5 -    MI_LEG,  // 5CB6 - -    MI_MOD,   // 5CB7 -    MI_MODSD, // 5CB8 -    MI_MODSU, // 5CB9 - -    MI_BENDD, // 5CBA -    MI_BENDU, // 5CBB - -    // Backlight -    BL_ON,   // 5CBC -    BL_OFF,  // 5CBD -    BL_DEC,  // 5CBE -    BL_INC,  // 5CBF -    BL_TOGG, // 5CC0 -    BL_STEP, // 5CC1 -    BL_BRTG, // 5CC2 - -    // RGB underglow/matrix -    RGB_TOG,           // 5CC3 -    RGB_MODE_FORWARD,  // 5CC4 -    RGB_MODE_REVERSE,  // 5CC5 -    RGB_HUI,           // 5CC6 -    RGB_HUD,           // 5CC7 -    RGB_SAI,           // 5CC8 -    RGB_SAD,           // 5CC9 -    RGB_VAI,           // 5CCA -    RGB_VAD,           // 5CCB -    RGB_SPI,           // 5CCC -    RGB_SPD,           // 5CCD -    RGB_MODE_PLAIN,    // 5CCE -    RGB_MODE_BREATHE,  // 5CCF -    RGB_MODE_RAINBOW,  // 5CD0 -    RGB_MODE_SWIRL,    // 5CD1 -    RGB_MODE_SNAKE,    // 5CD2 -    RGB_MODE_KNIGHT,   // 5CD3 -    RGB_MODE_XMAS,     // 5CD4 -    RGB_MODE_GRADIENT, // 5CD5 -    RGB_MODE_RGBTEST,  // 5CD6 - -    // Velocikey -    QK_VELOCIKEY_TOGGLE, // 5CD7 - -    // Space Cadet -    QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN,   // 5CD8 -    QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE, // 5CD9 -    QK_SPACE_CADET_RIGHT_SHIFT_ENTER,             // 5CDA - -    // Thermal Printer -    PRINT_ON,  // 5CDB -    PRINT_OFF, // 5CDC - -    // Bluetooth: output selection -    OUT_AUTO, // 5CDD -    OUT_USB,  // 5CDE - -    // Clear EEPROM -    QK_CLEAR_EEPROM, // 5CDF - -    // Unicode -    QK_UNICODE_MODE_NEXT,       // 5CE0 -    QK_UNICODE_MODE_PREVIOUS,   // 5CE1 -    QK_UNICODE_MODE_MACOS,      // 5CE2 -    QK_UNICODE_MODE_LINUX,      // 5CE3 -    QK_UNICODE_MODE_WINDOWS,    // 5CE4 -    QK_UNICODE_MODE_BSD,        // 5CE5 -    QK_UNICODE_MODE_WINCOMPOSE, // 5CE6 - -    // Haptic -    HPT_ON,   // 5CE7 -    HPT_OFF,  // 5CE8 -    HPT_TOG,  // 5CE9 -    HPT_RST,  // 5CEA -    HPT_FBK,  // 5CEB -    HPT_BUZ,  // 5CEC -    HPT_MODI, // 5CED -    HPT_MODD, // 5CEE -    HPT_CONT, // 5CEF -    HPT_CONI, // 5CF0 -    HPT_COND, // 5CF1 -    HPT_DWLI, // 5CF2 -    HPT_DWLD, // 5CF3 - -    // Space Cadet (continued) -    QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN,   // 5CF4 -    QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE, // 5CF5 -    QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN,    // 5CF6 -    QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE,  // 5CF7 - -    // Combos -    QK_COMBO_ON,     // 5CF8 -    QK_COMBO_OFF,    // 5CF9 -    QK_COMBO_TOGGLE, // 5CFA - -    // Magic (continued) -    MAGIC_SWAP_LCTL_LGUI,   // 5CFB -    MAGIC_SWAP_RCTL_RGUI,   // 5CFC -    MAGIC_UNSWAP_LCTL_LGUI, // 5CFD -    MAGIC_UNSWAP_RCTL_RGUI, // 5CFE -    MAGIC_SWAP_CTL_GUI,     // 5CFF -    MAGIC_UNSWAP_CTL_GUI,   // 5D00 -    MAGIC_TOGGLE_CTL_GUI,   // 5D01 -    MAGIC_EE_HANDS_LEFT,    // 5D02 -    MAGIC_EE_HANDS_RIGHT,   // 5D03 - -    // Dynamic Macros -    QK_DYNAMIC_MACRO_RECORD_START_1, // 5D04 -    QK_DYNAMIC_MACRO_RECORD_START_2, // 5D05 -    QK_DYNAMIC_MACRO_RECORD_STOP,    // 5D06 -    QK_DYNAMIC_MACRO_PLAY_1,         // 5D07 -    QK_DYNAMIC_MACRO_PLAY_2,         // 5D08 - -    // Joystick -    QK_JOYSTICK_BUTTON_0,  // 5D09 -    QK_JOYSTICK_BUTTON_1,  // 5D0A -    QK_JOYSTICK_BUTTON_2,  // 5D0B -    QK_JOYSTICK_BUTTON_3,  // 5D0C -    QK_JOYSTICK_BUTTON_4,  // 5D0D -    QK_JOYSTICK_BUTTON_5,  // 5D0E -    QK_JOYSTICK_BUTTON_6,  // 5D0F -    QK_JOYSTICK_BUTTON_7,  // 5D10 -    QK_JOYSTICK_BUTTON_8,  // 5D11 -    QK_JOYSTICK_BUTTON_9,  // 5D12 -    QK_JOYSTICK_BUTTON_10, // 5D13 -    QK_JOYSTICK_BUTTON_11, // 5D14 -    QK_JOYSTICK_BUTTON_12, // 5D15 -    QK_JOYSTICK_BUTTON_13, // 5D16 -    QK_JOYSTICK_BUTTON_14, // 5D17 -    QK_JOYSTICK_BUTTON_15, // 5D18 -    QK_JOYSTICK_BUTTON_16, // 5D19 -    QK_JOYSTICK_BUTTON_17, // 5D1A -    QK_JOYSTICK_BUTTON_18, // 5D1B -    QK_JOYSTICK_BUTTON_19, // 5D1C -    QK_JOYSTICK_BUTTON_20, // 5D1D -    QK_JOYSTICK_BUTTON_21, // 5D1E -    QK_JOYSTICK_BUTTON_22, // 5D1F -    QK_JOYSTICK_BUTTON_23, // 5D20 -    QK_JOYSTICK_BUTTON_24, // 5D21 -    QK_JOYSTICK_BUTTON_25, // 5D22 -    QK_JOYSTICK_BUTTON_26, // 5D23 -    QK_JOYSTICK_BUTTON_27, // 5D24 -    QK_JOYSTICK_BUTTON_28, // 5D25 -    QK_JOYSTICK_BUTTON_29, // 5D26 -    QK_JOYSTICK_BUTTON_30, // 5D27 -    QK_JOYSTICK_BUTTON_31, // 5D28 - -    // Leader Key -    QK_LEADER, // 5D29 - -    // Bluetooth: output selection (continued) -    OUT_BT, // 5D2A - -    // Lock Key -    QK_LOCK, // 5D2B - -    // Unused slots -    UNUSED_000, // 5D2C -    UNUSED_001, // 5D2D - -    // Sequencer -    SQ_ON,  // 5D2E -    SQ_OFF, // 5D2F -    SQ_TOG, // 5D30 - -    SQ_TMPD, // 5D31 -    SQ_TMPU, // 5D32 - -    SQ_RESD, // 5D33 -    SQ_RESU, // 5D34 - -    SQ_SALL, // 5D35 -    SQ_SCLR, // 5D36 - -    SEQUENCER_STEP_MIN, // 5D37 -    SEQUENCER_STEP_MAX = SEQUENCER_STEP_MIN + SEQUENCER_STEPS, - -    SEQUENCER_RESOLUTION_MIN, -    SEQUENCER_RESOLUTION_MAX = SEQUENCER_RESOLUTION_MIN + SEQUENCER_RESOLUTIONS, - -    SEQUENCER_TRACK_MIN, -    SEQUENCER_TRACK_MAX = SEQUENCER_TRACK_MIN + SEQUENCER_TRACKS, +//  Pull in dd keycodes to maintain header compatibility +#include "keycodes.h" -#define SQ_S(n) (n < SEQUENCER_STEPS ? SEQUENCER_STEP_MIN + n : KC_NO) -#define SQ_R(n) (n < SEQUENCER_RESOLUTIONS ? SEQUENCER_RESOLUTION_MIN + n : KC_NO) -#define SQ_T(n) (n < SEQUENCER_TRACKS ? SEQUENCER_TRACK_MIN + n : KC_NO) +// US ANSI shifted keycode aliases +#include "keymap_us.h" -    // One Shot -    QK_ONE_SHOT_ON, -    QK_ONE_SHOT_OFF, -    QK_ONE_SHOT_TOGGLE, - -    // RGB underglow/matrix (continued) -    RGB_MODE_TWINKLE, - -    // Key Overrides -    QK_KEY_OVERRIDE_TOGGLE, -    QK_KEY_OVERRIDE_ON, -    QK_KEY_OVERRIDE_OFF, - -    // Additional magic key -    MAGIC_TOGGLE_GUI, - -    // Adjust tapping term on the fly -    DT_PRNT, -    DT_UP, -    DT_DOWN, - -    // Programmable Button -    QK_PROGRAMMABLE_BUTTON_1, -    QK_PROGRAMMABLE_BUTTON_2, -    QK_PROGRAMMABLE_BUTTON_3, -    QK_PROGRAMMABLE_BUTTON_4, -    QK_PROGRAMMABLE_BUTTON_5, -    QK_PROGRAMMABLE_BUTTON_6, -    QK_PROGRAMMABLE_BUTTON_7, -    QK_PROGRAMMABLE_BUTTON_8, -    QK_PROGRAMMABLE_BUTTON_9, -    QK_PROGRAMMABLE_BUTTON_10, -    QK_PROGRAMMABLE_BUTTON_11, -    QK_PROGRAMMABLE_BUTTON_12, -    QK_PROGRAMMABLE_BUTTON_13, -    QK_PROGRAMMABLE_BUTTON_14, -    QK_PROGRAMMABLE_BUTTON_15, -    QK_PROGRAMMABLE_BUTTON_16, -    QK_PROGRAMMABLE_BUTTON_17, -    QK_PROGRAMMABLE_BUTTON_18, -    QK_PROGRAMMABLE_BUTTON_19, -    QK_PROGRAMMABLE_BUTTON_20, -    QK_PROGRAMMABLE_BUTTON_21, -    QK_PROGRAMMABLE_BUTTON_22, -    QK_PROGRAMMABLE_BUTTON_23, -    QK_PROGRAMMABLE_BUTTON_24, -    QK_PROGRAMMABLE_BUTTON_25, -    QK_PROGRAMMABLE_BUTTON_26, -    QK_PROGRAMMABLE_BUTTON_27, -    QK_PROGRAMMABLE_BUTTON_28, -    QK_PROGRAMMABLE_BUTTON_29, -    QK_PROGRAMMABLE_BUTTON_30, -    QK_PROGRAMMABLE_BUTTON_31, -    QK_PROGRAMMABLE_BUTTON_32, - -    // Dedicated macro keys for Configurator and VIA -    MACRO_0, -    MACRO_1, -    MACRO_2, -    MACRO_3, -    MACRO_4, -    MACRO_5, -    MACRO_6, -    MACRO_7, -    MACRO_8, -    MACRO_9, -    MACRO_10, -    MACRO_11, -    MACRO_12, -    MACRO_13, -    MACRO_14, -    MACRO_15, -    MACRO_16, -    MACRO_17, -    MACRO_18, -    MACRO_19, -    MACRO_20, -    MACRO_21, -    MACRO_22, -    MACRO_23, -    MACRO_24, -    MACRO_25, -    MACRO_26, -    MACRO_27, -    MACRO_28, -    MACRO_29, -    MACRO_30, -    MACRO_31, - -    MAGIC_TOGGLE_CONTROL_CAPSLOCK, - -    QK_MAKE, -    QK_REBOOT, - -    QK_SECURE_LOCK, -    QK_SECURE_UNLOCK, -    QK_SECURE_TOGGLE, -    QK_SECURE_REQUEST, - -    QK_CAPS_WORD_TOGGLE, - -    MAGIC_SWAP_ESCAPE_CAPSLOCK, -    MAGIC_UNSWAP_ESCAPE_CAPSLOCK, -    MAGIC_TOGGLE_ESCAPE_CAPSLOCK, - -    QK_UNICODE_MODE_EMACS, - -    QK_AUTOCORRECT_ON, -    QK_AUTOCORRECT_OFF, -    QK_AUTOCORRECT_TOGGLE, - -    MAGIC_TOGGLE_BACKSLASH_BACKSPACE, - -    // Start of custom keycode range for keyboards and keymaps - always leave at the end -    SAFE_RANGE -}; +// TODO: sub-ranges? +// clang-format off +#define QK_LCTL                0x0100 +#define QK_LSFT                0x0200 +#define QK_LALT                0x0400 +#define QK_LGUI                0x0800 +#define QK_RMODS_MIN           0x1000 +#define QK_RCTL                0x1100 +#define QK_RSFT                0x1200 +#define QK_RALT                0x1400 +#define QK_RGUI                0x1800 +#define QK_UNICODEMAP          0x8000 +#define QK_UNICODEMAP_MAX      0xBFFF +#define QK_UNICODEMAP_PAIR     0xC000 +#define QK_UNICODEMAP_PAIR_MAX 0xFFFF +// clang-format on  // Keycode modifiers & aliases  #define LCTL(kc) (QK_LCTL | (kc)) @@ -654,122 +72,35 @@ enum quantum_keycodes {  #define RCS(kc) (QK_RCTL | QK_RSFT | (kc))  #define SAGR(kc) RSA(kc) -#define MOD_HYPR 0xF -#define MOD_MEH 0x7 - -// US ANSI shifted keycode aliases -#include "keymap_us.h" -  // Modified keycode aliases  #define C(kc) LCTL(kc)  #define S(kc) LSFT(kc)  #define A(kc) LALT(kc)  #define G(kc) LGUI(kc) -#define QK_GESC QK_GRAVE_ESCAPE - -#define QK_BOOT QK_BOOTLOADER -#define DB_TOGG QK_DEBUG_TOGGLE -#define EE_CLR QK_CLEAR_EEPROM -#define QK_RBT QK_REBOOT - -// Audio Clicky aliases -#define CK_TOGG CLICKY_TOGGLE -#define CK_RST CLICKY_RESET -#define CK_UP CLICKY_UP -#define CK_DOWN CLICKY_DOWN -#define CK_ON CLICKY_ENABLE -#define CK_OFF CLICKY_DISABLE - -// RGB aliases -#define RGB_MOD RGB_MODE_FORWARD -#define RGB_RMOD RGB_MODE_REVERSE -#define RGB_M_P RGB_MODE_PLAIN -#define RGB_M_B RGB_MODE_BREATHE -#define RGB_M_R RGB_MODE_RAINBOW -#define RGB_M_SW RGB_MODE_SWIRL -#define RGB_M_SN RGB_MODE_SNAKE -#define RGB_M_K RGB_MODE_KNIGHT -#define RGB_M_X RGB_MODE_XMAS -#define RGB_M_G RGB_MODE_GRADIENT -#define RGB_M_T RGB_MODE_RGBTEST -#define RGB_M_TW RGB_MODE_TWINKLE - -// Magic aliases -#define CL_SWAP MAGIC_SWAP_CONTROL_CAPSLOCK -#define CL_NORM MAGIC_UNSWAP_CONTROL_CAPSLOCK -#define CL_CTRL MAGIC_CAPSLOCK_TO_CONTROL -#define CL_CAPS MAGIC_UNCAPSLOCK_TO_CONTROL -#define CL_TOGG MAGIC_TOGGLE_CONTROL_CAPSLOCK - -#define EC_SWAP MAGIC_SWAP_ESCAPE_CAPSLOCK -#define EC_NORM MAGIC_UNSWAP_ESCAPE_CAPSLOCK -#define EC_TOGG MAGIC_TOGGLE_ESCAPE_CAPSLOCK - -#define LCG_SWP MAGIC_SWAP_LCTL_LGUI -#define LCG_NRM MAGIC_UNSWAP_LCTL_LGUI -#define RCG_SWP MAGIC_SWAP_RCTL_RGUI -#define RCG_NRM MAGIC_UNSWAP_RCTL_RGUI -#define CG_SWAP MAGIC_SWAP_CTL_GUI -#define CG_NORM MAGIC_UNSWAP_CTL_GUI -#define CG_TOGG MAGIC_TOGGLE_CTL_GUI - -#define LAG_SWP MAGIC_SWAP_LALT_LGUI -#define LAG_NRM MAGIC_UNSWAP_LALT_LGUI -#define RAG_SWP MAGIC_SWAP_RALT_RGUI -#define RAG_NRM MAGIC_UNSWAP_RALT_RGUI -#define AG_SWAP MAGIC_SWAP_ALT_GUI -#define AG_NORM MAGIC_UNSWAP_ALT_GUI -#define AG_TOGG MAGIC_TOGGLE_ALT_GUI - -#define GUI_OFF MAGIC_NO_GUI -#define GUI_ON MAGIC_UNNO_GUI -#define GUI_TOG MAGIC_TOGGLE_GUI - -#define GE_SWAP MAGIC_SWAP_GRAVE_ESC -#define GE_NORM MAGIC_UNSWAP_GRAVE_ESC - -#define BS_SWAP MAGIC_SWAP_BACKSLASH_BACKSPACE -#define BS_NORM MAGIC_UNSWAP_BACKSLASH_BACKSPACE -#define BS_TOGG MAGIC_TOGGLE_BACKSLASH_BACKSPACE - -#define NK_ON MAGIC_HOST_NKRO -#define NK_OFF MAGIC_UNHOST_NKRO -#define NK_TOGG MAGIC_TOGGLE_NKRO - -#define EH_LEFT MAGIC_EE_HANDS_LEFT -#define EH_RGHT MAGIC_EE_HANDS_RIGHT - -#define AC_ON QK_AUTOCORRECT_ON -#define AC_OFF QK_AUTOCORRECT_OFF -#define AC_TOGG QK_AUTOCORRECT_TOGGLE - -// Velocikey -#define VK_TOGG QK_VELOCIKEY_TOGGLE - -// GOTO layer - 256 layer max -#define TO(layer) (QK_TO | ((layer)&0xFF)) - -// Momentary switch layer - 256 layer max -#define MO(layer) (QK_MOMENTARY | ((layer)&0xFF)) - -// Set default layer - 256 layer max -#define DF(layer) (QK_DEF_LAYER | ((layer)&0xFF)) - -// Toggle to layer - 256 layer max -#define TG(layer) (QK_TOGGLE_LAYER | ((layer)&0xFF)) - -// One-shot layer - 256 layer max -#define OSL(layer) (QK_ONE_SHOT_LAYER | ((layer)&0xFF)) - -// L-ayer M-od: Momentary switch layer with modifiers active - 16 layer max, left mods only -#define LM(layer, mod) (QK_LAYER_MOD | (((layer)&0xF) << 4) | ((mod)&0xF)) +// GOTO layer - 32 layer max +#define TO(layer) (QK_TO | ((layer)&0x1F)) + +// Momentary switch layer - 32 layer max +#define MO(layer) (QK_MOMENTARY | ((layer)&0x1F)) + +// Set default layer - 32 layer max +#define DF(layer) (QK_DEF_LAYER | ((layer)&0x1F)) + +// Toggle to layer - 32 layer max +#define TG(layer) (QK_TOGGLE_LAYER | ((layer)&0x1F)) + +// One-shot layer - 32 layer max +#define OSL(layer) (QK_ONE_SHOT_LAYER | ((layer)&0x1F)) + +// L-ayer M-od: Momentary switch layer with modifiers active - 16 layer max +#define LM(layer, mod) (QK_LAYER_MOD | (((layer)&0xF) << 5) | ((mod)&0x1F))  // One-shot mod -#define OSM(mod) (QK_ONE_SHOT_MOD | ((mod)&0xFF)) +#define OSM(mod) (QK_ONE_SHOT_MOD | ((mod)&0x1F)) -// Layer tap-toggle -#define TT(layer) (QK_LAYER_TAP_TOGGLE | ((layer)&0xFF)) +// Layer tap-toggle - 32 layer max +#define TT(layer) (QK_LAYER_TAP_TOGGLE | ((layer)&0x1F))  // L-ayer, T-ap - 256 keycode max, 16 layer max  #define LT(layer, kc) (QK_LAYER_TAP | (((layer)&0xF) << 8) | ((kc)&0xFF)) @@ -834,64 +165,8 @@ enum quantum_keycodes {  #define X(i) (QK_UNICODEMAP | (i))  #define XP(i, j) (QK_UNICODEMAP_PAIR | ((i)&0x7F) | (((j)&0x7F) << 7)) // 127 max i and j -#define UC_NEXT QK_UNICODE_MODE_NEXT -#define UC_PREV QK_UNICODE_MODE_PREVIOUS - -#define UC_MAC QK_UNICODE_MODE_MACOS -#define UC_LINX QK_UNICODE_MODE_LINUX -#define UC_WIN QK_UNICODE_MODE_WINDOWS -#define UC_BSD QK_UNICODE_MODE_BSD -#define UC_WINC QK_UNICODE_MODE_WINCOMPOSE -#define UC_EMAC QK_UNICODE_MODE_EMACS - -// Auto Shift -#define AS_UP QK_AUTO_SHIFT_UP -#define AS_DOWN QK_AUTO_SHIFT_DOWN -#define AS_RPT QK_AUTO_SHIFT_REPORT -#define AS_TOGG QK_AUTO_SHIFT_TOGGLE -#define AS_ON QK_AUTO_SHIFT_ON -#define AS_OFF QK_AUTO_SHIFT_OFF - -// Leader key -#define QK_LEAD QK_LEADER - -// Caps Word -#define CW_TOGG QK_CAPS_WORD_TOGGLE - -// Key Overrides -#define KO_TOGG QK_KEY_OVERRIDE_TOGGLE -#define KO_ON QK_KEY_OVERRIDE_ON -#define KO_OFF QK_KEY_OVERRIDE_OFF - -// Secure -#define SE_LOCK QK_SECURE_LOCK -#define SE_UNLK QK_SECURE_UNLOCK -#define SE_TOGG QK_SECURE_TOGGLE -#define SE_REQ QK_SECURE_REQUEST - -// Space Cadet -#define SC_LSPO QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN -#define SC_RSPC QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE -#define SC_LCPO QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN -#define SC_RCPC QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE -#define SC_LAPO QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN -#define SC_RAPC QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE -#define SC_SENT QK_SPACE_CADET_RIGHT_SHIFT_ENTER - -// Combos -#define CM_ON QK_COMBO_ON -#define CM_OFF QK_COMBO_OFF -#define CM_TOGG QK_COMBO_TOGGLE -  // Swap Hands  #define SH_T(kc) (QK_SWAP_HANDS | (kc)) -#define SH_TG (QK_SWAP_HANDS | OP_SH_TOGGLE) -#define SH_TT (QK_SWAP_HANDS | OP_SH_TAP_TOGGLE) -#define SH_OS (QK_SWAP_HANDS | OP_SH_ONESHOT) -#define SH_MON (QK_SWAP_HANDS | OP_SH_ON_OFF) -#define SH_MOFF (QK_SWAP_HANDS | OP_SH_OFF_ON) -#define SH_ON (QK_SWAP_HANDS | OP_SH_ON) -#define SH_OFF (QK_SWAP_HANDS | OP_SH_OFF)  // MIDI aliases  #define MIDI_TONE_MIN MI_C @@ -905,88 +180,20 @@ enum quantum_keycodes {  #define MIDI_CHANNEL_MIN MI_CH1  #define MIDI_CHANNEL_MAX MI_CH16 -// Dynamic Macros aliases -#define DM_REC1 QK_DYNAMIC_MACRO_RECORD_START_1 -#define DM_REC2 QK_DYNAMIC_MACRO_RECORD_START_2 -#define DM_RSTP QK_DYNAMIC_MACRO_RECORD_STOP -#define DM_PLY1 QK_DYNAMIC_MACRO_PLAY_1 -#define DM_PLY2 QK_DYNAMIC_MACRO_PLAY_2 - -// Joystick aliases -#define JS_0 QK_JOYSTICK_BUTTON_0 -#define JS_1 QK_JOYSTICK_BUTTON_1 -#define JS_2 QK_JOYSTICK_BUTTON_2 -#define JS_3 QK_JOYSTICK_BUTTON_3 -#define JS_4 QK_JOYSTICK_BUTTON_4 -#define JS_5 QK_JOYSTICK_BUTTON_5 -#define JS_6 QK_JOYSTICK_BUTTON_6 -#define JS_7 QK_JOYSTICK_BUTTON_7 -#define JS_8 QK_JOYSTICK_BUTTON_8 -#define JS_9 QK_JOYSTICK_BUTTON_9 -#define JS_10 QK_JOYSTICK_BUTTON_10 -#define JS_11 QK_JOYSTICK_BUTTON_11 -#define JS_12 QK_JOYSTICK_BUTTON_12 -#define JS_13 QK_JOYSTICK_BUTTON_13 -#define JS_14 QK_JOYSTICK_BUTTON_14 -#define JS_15 QK_JOYSTICK_BUTTON_15 -#define JS_16 QK_JOYSTICK_BUTTON_16 -#define JS_17 QK_JOYSTICK_BUTTON_17 -#define JS_18 QK_JOYSTICK_BUTTON_18 -#define JS_19 QK_JOYSTICK_BUTTON_19 -#define JS_20 QK_JOYSTICK_BUTTON_20 -#define JS_21 QK_JOYSTICK_BUTTON_21 -#define JS_22 QK_JOYSTICK_BUTTON_22 -#define JS_23 QK_JOYSTICK_BUTTON_23 -#define JS_24 QK_JOYSTICK_BUTTON_24 -#define JS_25 QK_JOYSTICK_BUTTON_25 -#define JS_26 QK_JOYSTICK_BUTTON_26 -#define JS_27 QK_JOYSTICK_BUTTON_27 -#define JS_28 QK_JOYSTICK_BUTTON_28 -#define JS_29 QK_JOYSTICK_BUTTON_29 -#define JS_30 QK_JOYSTICK_BUTTON_30 -#define JS_31 QK_JOYSTICK_BUTTON_31 -#define QK_JOYSTICK_BUTTON_MIN QK_JOYSTICK_BUTTON_0 -#define QK_JOYSTICK_BUTTON_MAX QK_JOYSTICK_BUTTON_31 - -// One Shot aliases -#define OS_TOGG QK_ONE_SHOT_TOGGLE -#define OS_ON QK_ONE_SHOT_ON -#define OS_OFF QK_ONE_SHOT_OFF - -// Programmable Button aliases -#define PB_1 QK_PROGRAMMABLE_BUTTON_1 -#define PB_2 QK_PROGRAMMABLE_BUTTON_2 -#define PB_3 QK_PROGRAMMABLE_BUTTON_3 -#define PB_4 QK_PROGRAMMABLE_BUTTON_4 -#define PB_5 QK_PROGRAMMABLE_BUTTON_5 -#define PB_6 QK_PROGRAMMABLE_BUTTON_6 -#define PB_7 QK_PROGRAMMABLE_BUTTON_7 -#define PB_8 QK_PROGRAMMABLE_BUTTON_8 -#define PB_9 QK_PROGRAMMABLE_BUTTON_9 -#define PB_10 QK_PROGRAMMABLE_BUTTON_10 -#define PB_11 QK_PROGRAMMABLE_BUTTON_11 -#define PB_12 QK_PROGRAMMABLE_BUTTON_12 -#define PB_13 QK_PROGRAMMABLE_BUTTON_13 -#define PB_14 QK_PROGRAMMABLE_BUTTON_14 -#define PB_15 QK_PROGRAMMABLE_BUTTON_15 -#define PB_16 QK_PROGRAMMABLE_BUTTON_16 -#define PB_17 QK_PROGRAMMABLE_BUTTON_17 -#define PB_18 QK_PROGRAMMABLE_BUTTON_18 -#define PB_19 QK_PROGRAMMABLE_BUTTON_19 -#define PB_20 QK_PROGRAMMABLE_BUTTON_20 -#define PB_21 QK_PROGRAMMABLE_BUTTON_21 -#define PB_22 QK_PROGRAMMABLE_BUTTON_22 -#define PB_23 QK_PROGRAMMABLE_BUTTON_23 -#define PB_24 QK_PROGRAMMABLE_BUTTON_24 -#define PB_25 QK_PROGRAMMABLE_BUTTON_25 -#define PB_26 QK_PROGRAMMABLE_BUTTON_26 -#define PB_27 QK_PROGRAMMABLE_BUTTON_27 -#define PB_28 QK_PROGRAMMABLE_BUTTON_28 -#define PB_29 QK_PROGRAMMABLE_BUTTON_29 -#define PB_30 QK_PROGRAMMABLE_BUTTON_30 -#define PB_31 QK_PROGRAMMABLE_BUTTON_31 -#define PB_32 QK_PROGRAMMABLE_BUTTON_32 -#define QK_PROGRAMMABLE_BUTTON_MIN QK_PROGRAMMABLE_BUTTON_1 -#define QK_PROGRAMMABLE_BUTTON_MAX QK_PROGRAMMABLE_BUTTON_32 +// TODO: somehow migrate sequencer to DD? +#include "sequencer.h" + +#define SEQUENCER_STEP_MIN (QK_SEQUENCER + 0xF) +#define SEQUENCER_STEP_MAX (SEQUENCER_STEP_MIN + SEQUENCER_STEPS) + +#define SEQUENCER_RESOLUTION_MIN (SEQUENCER_STEP_MAX + 1) +#define SEQUENCER_RESOLUTION_MAX (SEQUENCER_RESOLUTION_MIN + SEQUENCER_RESOLUTIONS) + +#define SEQUENCER_TRACK_MIN (SEQUENCER_RESOLUTION_MAX + 1) +#define SEQUENCER_TRACK_MAX (SEQUENCER_TRACK_MIN + SEQUENCER_TRACKS) + +#define SQ_S(n) (n < SEQUENCER_STEPS ? SEQUENCER_STEP_MIN + n : KC_NO) +#define SQ_R(n) (n < SEQUENCER_RESOLUTIONS ? SEQUENCER_RESOLUTION_MIN + n : KC_NO) +#define SQ_T(n) (n < SEQUENCER_TRACKS ? SEQUENCER_TRACK_MIN + n : KC_NO)  #include "quantum_keycodes_legacy.h" diff --git a/quantum/send_string/send_string_keycodes.h b/quantum/send_string/send_string_keycodes.h index f9e1c101ff..54b8382053 100644 --- a/quantum/send_string/send_string_keycodes.h +++ b/quantum/send_string/send_string_keycodes.h @@ -389,48 +389,25 @@  #define X_ASSISTANT           c0  /* Mouse Buttons (unallocated range in HID spec) */ -#ifdef VIA_ENABLE -#define X_MS_UP               f0 -#define X_MS_DOWN             f1 -#define X_MS_LEFT             f2 -#define X_MS_RIGHT            f3 -#define X_MS_BTN1             f4 -#define X_MS_BTN2             f5 -#define X_MS_BTN3             f6 -#define X_MS_BTN4             f7 -#define X_MS_BTN5             f8 -#define X_MS_BTN6             f8 -#define X_MS_BTN7             f8 -#define X_MS_BTN8             f8 -#define X_MS_WH_UP            f9 -#define X_MS_WH_DOWN          fa -#define X_MS_WH_LEFT          fb -#define X_MS_WH_RIGHT         fc -#define X_MS_ACCEL0           fd -#define X_MS_ACCEL1           fe -#define X_MS_ACCEL2           ff -#else -#define X_MS_UP               cd -#define X_MS_DOWN             ce -#define X_MS_LEFT             cf -#define X_MS_RIGHT            d0 -#define X_MS_BTN1             d1 -#define X_MS_BTN2             d2 -#define X_MS_BTN3             d3 -#define X_MS_BTN4             d4 -#define X_MS_BTN5             d5 -#define X_MS_BTN6             d6 -#define X_MS_BTN7             d7 -#define X_MS_BTN8             d8 -#define X_MS_WH_UP            d9 -#define X_MS_WH_DOWN          da -#define X_MS_WH_LEFT          db -#define X_MS_WH_RIGHT         dc -#define X_MS_ACCEL0           dd -#define X_MS_ACCEL1           de -#define X_MS_ACCEL2           df -#endif - +#define X_MS_UP              cd +#define X_MS_DOWN            ce +#define X_MS_LEFT            cf +#define X_MS_RIGHT           d0 +#define X_MS_BTN1            d1 +#define X_MS_BTN2            d2 +#define X_MS_BTN3            d3 +#define X_MS_BTN4            d4 +#define X_MS_BTN5            d5 +#define X_MS_BTN6            d6 +#define X_MS_BTN7            d7 +#define X_MS_BTN8            d8 +#define X_MS_WH_UP           d9 +#define X_MS_WH_DOWN         da +#define X_MS_WH_LEFT         db +#define X_MS_WH_RIGHT        dc +#define X_MS_ACCEL0          dd +#define X_MS_ACCEL1          de +#define X_MS_ACCEL2          df  // Send string macros  #define STRINGIZE(z) #z diff --git a/quantum/via.c b/quantum/via.c index 37e2046a10..5afbee5a30 100644 --- a/quantum/via.c +++ b/quantum/via.c @@ -50,7 +50,6 @@  #include "dynamic_keymap.h"  #include "eeprom.h"  #include "version.h" // for QMK_BUILDDATE used in EEPROM magic -#include "via_ensure_keycode.h"  // Forward declare some helpers.  #if defined(VIA_QMK_BACKLIGHT_ENABLE) diff --git a/quantum/via.h b/quantum/via.h index 558ae95de4..84b264903f 100644 --- a/quantum/via.h +++ b/quantum/via.h @@ -58,7 +58,7 @@  // This is changed only when the command IDs change,  // so VIA Configurator can detect compatible firmware. -#define VIA_PROTOCOL_VERSION 0x000A +#define VIA_PROTOCOL_VERSION 0x000B  enum via_command_id {      id_get_protocol_version                 = 0x01, // always 0x01 @@ -103,13 +103,8 @@ enum via_lighting_value {      id_qmk_rgblight_color        = 0x83,  }; -// Can't use SAFE_RANGE here, it might change if someone adds -// new values to enum quantum_keycodes. -// Need to keep checking 0x5F10 is still in the safe range. -// TODO: merge this into quantum_keycodes -// Backlight keycodes are in range 0x5F00-0x5F0F  enum via_keycodes { -    FN_MO13 = 0x5F10, +    FN_MO13 = QK_MACRO,      FN_MO23,      MACRO00,      MACRO01, @@ -130,7 +125,7 @@ enum via_keycodes {  };  enum user_keycodes { -    USER00 = 0x5F80, +    USER00 = QK_USER,      USER01,      USER02,      USER03, diff --git a/quantum/via_ensure_keycode.h b/quantum/via_ensure_keycode.h deleted file mode 100644 index 48e611d0fa..0000000000 --- a/quantum/via_ensure_keycode.h +++ /dev/null @@ -1,344 +0,0 @@ -#pragma once - -#include "quantum.h" -#include "via.h" - -#ifndef VIA_HAS_BROKEN_KEYCODES - -// clang-format off - -_Static_assert(KC_NO                  == 0x0000, ""); -_Static_assert(KC_TRANSPARENT         == 0x0001, ""); - -_Static_assert(KC_A                   == 0x0004, ""); -_Static_assert(KC_B                   == 0x0005, ""); -_Static_assert(KC_C                   == 0x0006, ""); -_Static_assert(KC_D                   == 0x0007, ""); -_Static_assert(KC_E                   == 0x0008, ""); -_Static_assert(KC_F                   == 0x0009, ""); -_Static_assert(KC_G                   == 0x000A, ""); -_Static_assert(KC_H                   == 0x000B, ""); -_Static_assert(KC_I                   == 0x000C, ""); -_Static_assert(KC_J                   == 0x000D, ""); -_Static_assert(KC_K                   == 0x000E, ""); -_Static_assert(KC_L                   == 0x000F, ""); -_Static_assert(KC_M                   == 0x0010, ""); -_Static_assert(KC_N                   == 0x0011, ""); -_Static_assert(KC_O                   == 0x0012, ""); -_Static_assert(KC_P                   == 0x0013, ""); -_Static_assert(KC_Q                   == 0x0014, ""); -_Static_assert(KC_R                   == 0x0015, ""); -_Static_assert(KC_S                   == 0x0016, ""); -_Static_assert(KC_T                   == 0x0017, ""); -_Static_assert(KC_U                   == 0x0018, ""); -_Static_assert(KC_V                   == 0x0019, ""); -_Static_assert(KC_W                   == 0x001A, ""); -_Static_assert(KC_X                   == 0x001B, ""); -_Static_assert(KC_Y                   == 0x001C, ""); -_Static_assert(KC_Z                   == 0x001D, ""); -_Static_assert(KC_1                   == 0x001E, ""); -_Static_assert(KC_2                   == 0x001F, ""); -_Static_assert(KC_3                   == 0x0020, ""); -_Static_assert(KC_4                   == 0x0021, ""); -_Static_assert(KC_5                   == 0x0022, ""); -_Static_assert(KC_6                   == 0x0023, ""); -_Static_assert(KC_7                   == 0x0024, ""); -_Static_assert(KC_8                   == 0x0025, ""); -_Static_assert(KC_9                   == 0x0026, ""); -_Static_assert(KC_0                   == 0x0027, ""); -_Static_assert(KC_ENTER               == 0x0028, ""); -_Static_assert(KC_ESCAPE              == 0x0029, ""); -_Static_assert(KC_BACKSPACE           == 0x002A, ""); -_Static_assert(KC_TAB                 == 0x002B, ""); -_Static_assert(KC_SPACE               == 0x002C, ""); -_Static_assert(KC_MINUS               == 0x002D, ""); -_Static_assert(KC_EQUAL               == 0x002E, ""); -_Static_assert(KC_LEFT_BRACKET        == 0x002F, ""); -_Static_assert(KC_RIGHT_BRACKET       == 0x0030, ""); -_Static_assert(KC_BACKSLASH           == 0x0031, ""); -_Static_assert(KC_NONUS_HASH          == 0x0032, ""); -_Static_assert(KC_SEMICOLON           == 0x0033, ""); -_Static_assert(KC_QUOTE               == 0x0034, ""); -_Static_assert(KC_GRAVE               == 0x0035, ""); -_Static_assert(KC_COMMA               == 0x0036, ""); -_Static_assert(KC_DOT                 == 0x0037, ""); -_Static_assert(KC_SLASH               == 0x0038, ""); -_Static_assert(KC_CAPS_LOCK           == 0x0039, ""); -_Static_assert(KC_F1                  == 0x003A, ""); -_Static_assert(KC_F2                  == 0x003B, ""); -_Static_assert(KC_F3                  == 0x003C, ""); -_Static_assert(KC_F4                  == 0x003D, ""); -_Static_assert(KC_F5                  == 0x003E, ""); -_Static_assert(KC_F6                  == 0x003F, ""); -_Static_assert(KC_F7                  == 0x0040, ""); -_Static_assert(KC_F8                  == 0x0041, ""); -_Static_assert(KC_F9                  == 0x0042, ""); -_Static_assert(KC_F10                 == 0x0043, ""); -_Static_assert(KC_F11                 == 0x0044, ""); -_Static_assert(KC_F12                 == 0x0045, ""); -_Static_assert(KC_PRINT_SCREEN        == 0x0046, ""); -_Static_assert(KC_SCROLL_LOCK         == 0x0047, ""); -_Static_assert(KC_PAUSE               == 0x0048, ""); -_Static_assert(KC_INSERT              == 0x0049, ""); -_Static_assert(KC_HOME                == 0x004A, ""); -_Static_assert(KC_PAGE_UP             == 0x004B, ""); -_Static_assert(KC_DELETE              == 0x004C, ""); -_Static_assert(KC_END                 == 0x004D, ""); -_Static_assert(KC_PAGE_DOWN           == 0x004E, ""); -_Static_assert(KC_RIGHT               == 0x004F, ""); -_Static_assert(KC_LEFT                == 0x0050, ""); -_Static_assert(KC_DOWN                == 0x0051, ""); -_Static_assert(KC_UP                  == 0x0052, ""); -_Static_assert(KC_NUM_LOCK            == 0x0053, ""); -_Static_assert(KC_KP_SLASH            == 0x0054, ""); -_Static_assert(KC_KP_ASTERISK         == 0x0055, ""); -_Static_assert(KC_KP_MINUS            == 0x0056, ""); -_Static_assert(KC_KP_PLUS             == 0x0057, ""); -_Static_assert(KC_KP_ENTER            == 0x0058, ""); -_Static_assert(KC_KP_1                == 0x0059, ""); -_Static_assert(KC_KP_2                == 0x005A, ""); -_Static_assert(KC_KP_3                == 0x005B, ""); -_Static_assert(KC_KP_4                == 0x005C, ""); -_Static_assert(KC_KP_5                == 0x005D, ""); -_Static_assert(KC_KP_6                == 0x005E, ""); -_Static_assert(KC_KP_7                == 0x005F, ""); -_Static_assert(KC_KP_8                == 0x0060, ""); -_Static_assert(KC_KP_9                == 0x0061, ""); -_Static_assert(KC_KP_0                == 0x0062, ""); -_Static_assert(KC_KP_DOT              == 0x0063, ""); -_Static_assert(KC_NONUS_BACKSLASH     == 0x0064, ""); -_Static_assert(KC_APPLICATION         == 0x0065, ""); -_Static_assert(KC_KB_POWER            == 0x0066, ""); -_Static_assert(KC_KP_EQUAL            == 0x0067, ""); -_Static_assert(KC_F13                 == 0x0068, ""); -_Static_assert(KC_F14                 == 0x0069, ""); -_Static_assert(KC_F15                 == 0x006A, ""); -_Static_assert(KC_F16                 == 0x006B, ""); -_Static_assert(KC_F17                 == 0x006C, ""); -_Static_assert(KC_F18                 == 0x006D, ""); -_Static_assert(KC_F19                 == 0x006E, ""); -_Static_assert(KC_F20                 == 0x006F, ""); -_Static_assert(KC_F21                 == 0x0070, ""); -_Static_assert(KC_F22                 == 0x0071, ""); -_Static_assert(KC_F23                 == 0x0072, ""); -_Static_assert(KC_F24                 == 0x0073, ""); -_Static_assert(KC_EXECUTE             == 0x0074, ""); -_Static_assert(KC_HELP                == 0x0075, ""); -_Static_assert(KC_MENU                == 0x0076, ""); -_Static_assert(KC_SELECT              == 0x0077, ""); -_Static_assert(KC_STOP                == 0x0078, ""); -_Static_assert(KC_AGAIN               == 0x0079, ""); -_Static_assert(KC_UNDO                == 0x007A, ""); -_Static_assert(KC_CUT                 == 0x007B, ""); -_Static_assert(KC_COPY                == 0x007C, ""); -_Static_assert(KC_PASTE               == 0x007D, ""); -_Static_assert(KC_FIND                == 0x007E, ""); - -_Static_assert(KC_LOCKING_CAPS_LOCK   == 0x0082, ""); -_Static_assert(KC_LOCKING_NUM_LOCK    == 0x0083, ""); -_Static_assert(KC_LOCKING_SCROLL_LOCK == 0x0084, ""); -_Static_assert(KC_KP_COMMA            == 0x0085, ""); -_Static_assert(KC_KP_EQUAL_AS400      == 0x0086, ""); -_Static_assert(KC_INTERNATIONAL_1     == 0x0087, ""); -_Static_assert(KC_INTERNATIONAL_2     == 0x0088, ""); -_Static_assert(KC_INTERNATIONAL_3     == 0x0089, ""); -_Static_assert(KC_INTERNATIONAL_4     == 0x008A, ""); -_Static_assert(KC_INTERNATIONAL_5     == 0x008B, ""); -_Static_assert(KC_INTERNATIONAL_6     == 0x008C, ""); -_Static_assert(KC_INTERNATIONAL_7     == 0x008D, ""); -_Static_assert(KC_INTERNATIONAL_8     == 0x008E, ""); -_Static_assert(KC_INTERNATIONAL_9     == 0x008F, ""); -_Static_assert(KC_LANGUAGE_1          == 0x0090, ""); -_Static_assert(KC_LANGUAGE_2          == 0x0091, ""); -_Static_assert(KC_LANGUAGE_3          == 0x0092, ""); -_Static_assert(KC_LANGUAGE_4          == 0x0093, ""); -_Static_assert(KC_LANGUAGE_5          == 0x0094, ""); -_Static_assert(KC_LANGUAGE_6          == 0x0095, ""); -_Static_assert(KC_LANGUAGE_7          == 0x0096, ""); -_Static_assert(KC_LANGUAGE_8          == 0x0097, ""); -_Static_assert(KC_LANGUAGE_9          == 0x0098, ""); -_Static_assert(KC_ALTERNATE_ERASE     == 0x0099, ""); -_Static_assert(KC_SYSTEM_REQUEST      == 0x009A, ""); -_Static_assert(KC_CANCEL              == 0x009B, ""); -_Static_assert(KC_CLEAR               == 0x009C, ""); -_Static_assert(KC_PRIOR               == 0x009D, ""); - -_Static_assert(KC_OUT                 == 0x00A0, ""); -_Static_assert(KC_OPER                == 0x00A1, ""); -_Static_assert(KC_CLEAR_AGAIN         == 0x00A2, ""); -_Static_assert(KC_CRSEL               == 0x00A3, ""); -_Static_assert(KC_EXSEL               == 0x00A4, ""); - -_Static_assert(KC_PWR                 == 0x00A5, ""); -_Static_assert(KC_SLEP                == 0x00A6, ""); -_Static_assert(KC_WAKE                == 0x00A7, ""); -_Static_assert(KC_MUTE                == 0x00A8, ""); -_Static_assert(KC_VOLU                == 0x00A9, ""); -_Static_assert(KC_VOLD                == 0x00AA, ""); -_Static_assert(KC_MNXT                == 0x00AB, ""); -_Static_assert(KC_MPRV                == 0x00AC, ""); -_Static_assert(KC_MSTP                == 0x00AD, ""); -_Static_assert(KC_MPLY                == 0x00AE, ""); -_Static_assert(KC_MSEL                == 0x00AF, ""); -_Static_assert(KC_EJCT                == 0x00B0, ""); -_Static_assert(KC_MAIL                == 0x00B1, ""); -_Static_assert(KC_CALC                == 0x00B2, ""); -_Static_assert(KC_MYCM                == 0x00B3, ""); -_Static_assert(KC_WSCH                == 0x00B4, ""); -_Static_assert(KC_WHOM                == 0x00B5, ""); -_Static_assert(KC_WBAK                == 0x00B6, ""); -_Static_assert(KC_WFWD                == 0x00B7, ""); -_Static_assert(KC_WSTP                == 0x00B8, ""); -_Static_assert(KC_WREF                == 0x00B9, ""); -_Static_assert(KC_WFAV                == 0x00BA, ""); -_Static_assert(KC_MFFD                == 0x00BB, ""); -_Static_assert(KC_MRWD                == 0x00BC, ""); -_Static_assert(KC_BRIU                == 0x00BD, ""); -_Static_assert(KC_BRID                == 0x00BE, ""); -_Static_assert(KC_CPNL                == 0x00BF, ""); -_Static_assert(KC_ASST                == 0x00C0, ""); - -_Static_assert(KC_LEFT_CTRL           == 0x00E0, ""); -_Static_assert(KC_LEFT_SHIFT          == 0x00E1, ""); -_Static_assert(KC_LEFT_ALT            == 0x00E2, ""); -_Static_assert(KC_LEFT_GUI            == 0x00E3, ""); -_Static_assert(KC_RIGHT_CTRL          == 0x00E4, ""); -_Static_assert(KC_RIGHT_SHIFT         == 0x00E5, ""); -_Static_assert(KC_RIGHT_ALT           == 0x00E6, ""); -_Static_assert(KC_RIGHT_GUI           == 0x00E7, ""); - -_Static_assert(KC_MS_U                == 0x00F0, ""); -_Static_assert(KC_MS_D                == 0x00F1, ""); -_Static_assert(KC_MS_L                == 0x00F2, ""); -_Static_assert(KC_MS_R                == 0x00F3, ""); -_Static_assert(KC_BTN1                == 0x00F4, ""); -_Static_assert(KC_BTN2                == 0x00F5, ""); -_Static_assert(KC_BTN3                == 0x00F6, ""); -_Static_assert(KC_BTN4                == 0x00F7, ""); -_Static_assert(KC_BTN5                == 0x00F8, ""); -_Static_assert(KC_WH_U                == 0x00F9, ""); -_Static_assert(KC_WH_D                == 0x00FA, ""); -_Static_assert(KC_WH_L                == 0x00FB, ""); -_Static_assert(KC_WH_R                == 0x00FC, ""); -_Static_assert(KC_ACL0                == 0x00FD, ""); -_Static_assert(KC_ACL1                == 0x00FE, ""); -_Static_assert(KC_ACL2                == 0x00FF, ""); - -_Static_assert(KC_EXLM                == 0x021E, ""); -_Static_assert(KC_AT                  == 0x021F, ""); -_Static_assert(KC_HASH                == 0x0220, ""); -_Static_assert(KC_DLR                 == 0x0221, ""); -_Static_assert(KC_PERC                == 0x0222, ""); -_Static_assert(KC_CIRC                == 0x0223, ""); -_Static_assert(KC_AMPR                == 0x0224, ""); -_Static_assert(KC_ASTR                == 0x0225, ""); -_Static_assert(KC_LPRN                == 0x0226, ""); -_Static_assert(KC_RPRN                == 0x0227, ""); -_Static_assert(KC_UNDS                == 0x022D, ""); -_Static_assert(KC_PLUS                == 0x022E, ""); -_Static_assert(KC_LCBR                == 0x022F, ""); -_Static_assert(KC_RCBR                == 0x0230, ""); -_Static_assert(KC_PIPE                == 0x0231, ""); -_Static_assert(KC_COLN                == 0x0233, ""); -_Static_assert(KC_DQUO                == 0x0234, ""); -_Static_assert(KC_TILD                == 0x0235, ""); -_Static_assert(KC_LT                  == 0x0236, ""); -_Static_assert(KC_GT                  == 0x0237, ""); -_Static_assert(KC_QUES                == 0x0238, ""); - -_Static_assert(QK_BOOTLOADER          == 0x5C00, ""); -_Static_assert(QK_DEBUG_TOGGLE        == 0x5C01, ""); - -_Static_assert(MAGIC_TOGGLE_NKRO      == 0x5C14, ""); - -_Static_assert(QK_GRAVE_ESCAPE        == 0x5C16, ""); - -_Static_assert(AU_ON                  == 0x5C1D, ""); -_Static_assert(AU_OFF                 == 0x5C1E, ""); -_Static_assert(AU_TOG                 == 0x5C1F, ""); - -_Static_assert(CLICKY_TOGGLE          == 0x5C20, ""); -_Static_assert(CLICKY_ENABLE          == 0x5C21, ""); -_Static_assert(CLICKY_DISABLE         == 0x5C22, ""); -_Static_assert(CLICKY_UP              == 0x5C23, ""); -_Static_assert(CLICKY_DOWN            == 0x5C24, ""); -_Static_assert(CLICKY_RESET           == 0x5C25, ""); -_Static_assert(MU_ON                  == 0x5C26, ""); -_Static_assert(MU_OFF                 == 0x5C27, ""); -_Static_assert(MU_TOG                 == 0x5C28, ""); -_Static_assert(MU_MOD                 == 0x5C29, ""); - -_Static_assert(BL_ON                  == 0x5CBB, ""); -_Static_assert(BL_OFF                 == 0x5CBC, ""); -_Static_assert(BL_DEC                 == 0x5CBD, ""); -_Static_assert(BL_INC                 == 0x5CBE, ""); -_Static_assert(BL_TOGG                == 0x5CBF, ""); -_Static_assert(BL_STEP                == 0x5CC0, ""); -_Static_assert(BL_BRTG                == 0x5CC1, ""); -_Static_assert(RGB_TOG                == 0x5CC2, ""); -_Static_assert(RGB_MOD                == 0x5CC3, ""); -_Static_assert(RGB_RMOD               == 0x5CC4, ""); -_Static_assert(RGB_HUI                == 0x5CC5, ""); -_Static_assert(RGB_HUD                == 0x5CC6, ""); -_Static_assert(RGB_SAI                == 0x5CC7, ""); -_Static_assert(RGB_SAD                == 0x5CC8, ""); -_Static_assert(RGB_VAI                == 0x5CC9, ""); -_Static_assert(RGB_VAD                == 0x5CCA, ""); -_Static_assert(RGB_SPI                == 0x5CCB, ""); -_Static_assert(RGB_SPD                == 0x5CCC, ""); -_Static_assert(RGB_M_P                == 0x5CCD, ""); -_Static_assert(RGB_M_B                == 0x5CCE, ""); -_Static_assert(RGB_M_R                == 0x5CCF, ""); -_Static_assert(RGB_M_SW               == 0x5CD0, ""); -_Static_assert(RGB_M_SN               == 0x5CD1, ""); -_Static_assert(RGB_M_K                == 0x5CD2, ""); -_Static_assert(RGB_M_X                == 0x5CD3, ""); -_Static_assert(RGB_M_G                == 0x5CD4, ""); -_Static_assert(RGB_M_T                == 0x5CD5, ""); - -_Static_assert(SC_LSPO                == 0x5CD7, ""); -_Static_assert(SC_RSPC                == 0x5CD8, ""); -_Static_assert(SC_SENT                == 0x5CD9, ""); - -_Static_assert(SC_LCPO                == 0x5CF3, ""); -_Static_assert(SC_RCPC                == 0x5CF4, ""); -_Static_assert(SC_LAPO                == 0x5CF5, ""); -_Static_assert(SC_RAPC                == 0x5CF6, ""); - -_Static_assert(FN_MO13                == 0x5F10, ""); -_Static_assert(FN_MO23                == 0x5F11, ""); -_Static_assert(MACRO00                == 0x5F12, ""); -_Static_assert(MACRO01                == 0x5F13, ""); -_Static_assert(MACRO02                == 0x5F14, ""); -_Static_assert(MACRO03                == 0x5F15, ""); -_Static_assert(MACRO04                == 0x5F16, ""); -_Static_assert(MACRO05                == 0x5F17, ""); -_Static_assert(MACRO06                == 0x5F18, ""); -_Static_assert(MACRO07                == 0x5F19, ""); -_Static_assert(MACRO08                == 0x5F1A, ""); -_Static_assert(MACRO09                == 0x5F1B, ""); -_Static_assert(MACRO10                == 0x5F1C, ""); -_Static_assert(MACRO11                == 0x5F1D, ""); -_Static_assert(MACRO12                == 0x5F1E, ""); -_Static_assert(MACRO13                == 0x5F1F, ""); -_Static_assert(MACRO14                == 0x5F20, ""); -_Static_assert(MACRO15                == 0x5F21, ""); - -_Static_assert(USER00                 == 0x5F80, ""); -_Static_assert(USER01                 == 0x5F81, ""); -_Static_assert(USER02                 == 0x5F82, ""); -_Static_assert(USER03                 == 0x5F83, ""); -_Static_assert(USER04                 == 0x5F84, ""); -_Static_assert(USER05                 == 0x5F85, ""); -_Static_assert(USER06                 == 0x5F86, ""); -_Static_assert(USER07                 == 0x5F87, ""); -_Static_assert(USER08                 == 0x5F88, ""); -_Static_assert(USER09                 == 0x5F89, ""); -_Static_assert(USER10                 == 0x5F8A, ""); -_Static_assert(USER11                 == 0x5F8B, ""); -_Static_assert(USER12                 == 0x5F8C, ""); -_Static_assert(USER13                 == 0x5F8D, ""); -_Static_assert(USER14                 == 0x5F8E, ""); -_Static_assert(USER15                 == 0x5F8F, ""); - -#endif | 
