From b2d428618cbb2b6cc316105fe8135f6d523303da Mon Sep 17 00:00:00 2001 From: Luflosi Date: Sun, 22 Dec 2019 18:21:30 +0100 Subject: [PATCH] Add circumflex (^) key --- glfw/cocoa_window.m | 2 + glfw/glfw3.h | 2 + glfw/input.c | 1 + glfw/xkb_glfw.c | 1 + kitty/glfw-wrapper.h | 1 + kitty/glfw.c | 1 + kitty/key_encoding.py | 4 +- kitty/key_names.py | 1 + kitty/keys.h | 16403 ++++++++++++++++++++-------------------- kitty/keys.py | 4 +- 10 files changed, 8266 insertions(+), 8154 deletions(-) diff --git a/glfw/cocoa_window.m b/glfw/cocoa_window.m index 995b9ac52..63fd6ee26 100644 --- a/glfw/cocoa_window.m +++ b/glfw/cocoa_window.m @@ -410,6 +410,7 @@ static int translateKey(unsigned int key, bool apply_keymap) K('[', LEFT_BRACKET); K('\\', BACKSLASH); K(']', RIGHT_BRACKET); + K('^', CIRCUMFLEX); K('_', UNDERSCORE); K('`', GRAVE_ACCENT); K(PARAGRAPH_UTF_8, PARAGRAPH); @@ -2227,6 +2228,7 @@ START_ALLOW_CASE_RANGE K('[', LEFT_BRACKET); K('\\', BACKSLASH); K(']', RIGHT_BRACKET); + K('^', CIRCUMFLEX); K('_', UNDERSCORE); K('`', GRAVE_ACCENT); K('a', A); diff --git a/glfw/glfw3.h b/glfw/glfw3.h index 8912396b5..fccf38ebc 100644 --- a/glfw/glfw3.h +++ b/glfw/glfw3.h @@ -405,6 +405,7 @@ extern "C" { #define GLFW_KEY_LEFT_BRACKET 91 /* [ */ #define GLFW_KEY_BACKSLASH 92 /* \ */ #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */ +#define GLFW_KEY_CIRCUMFLEX 94 /* ^ */ #define GLFW_KEY_UNDERSCORE 95 /* _ */ #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */ #define GLFW_KEY_WORLD_1 161 /* non-US #1 */ @@ -4148,6 +4149,7 @@ GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value); * - `GLFW_KEY_LEFT_BRACKET` * - `GLFW_KEY_BACKSLASH` * - `GLFW_KEY_RIGHT_BRACKET` + * - `GLFW_KEY_CIRCUMFLEX` * - `GLFW_KEY_UNDERSCORE` * - `GLFW_KEY_GRAVE_ACCENT` * - `GLFW_KEY_WORLD_1` diff --git a/glfw/input.c b/glfw/input.c index 24cba60d3..e8fd26931 100644 --- a/glfw/input.c +++ b/glfw/input.c @@ -510,6 +510,7 @@ const char* _glfwGetKeyName(int key) case GLFW_KEY_LEFT_BRACKET: return "LEFT_BRACKET"; case GLFW_KEY_BACKSLASH: return "BACKSLASH"; case GLFW_KEY_RIGHT_BRACKET: return "RIGHT_BRACKET"; + case GLFW_KEY_CIRCUMFLEX: return "CIRCUMFLEX"; case GLFW_KEY_UNDERSCORE: return "UNDERSCORE"; case GLFW_KEY_GRAVE_ACCENT: return "GRAVE_ACCENT"; case GLFW_KEY_WORLD_1: return "WORLD_1"; diff --git a/glfw/xkb_glfw.c b/glfw/xkb_glfw.c index a554acd21..54dc20d5c 100644 --- a/glfw/xkb_glfw.c +++ b/glfw/xkb_glfw.c @@ -61,6 +61,7 @@ START_ALLOW_CASE_RANGE S(bracketleft, LEFT_BRACKET); \ S(backslash, BACKSLASH); \ S(bracketright, RIGHT_BRACKET); \ + S(asciicircum, CIRCUMFLEX); \ S(underscore, UNDERSCORE); \ S(grave, GRAVE_ACCENT); \ R(a, z, A, Z); \ diff --git a/kitty/glfw-wrapper.h b/kitty/glfw-wrapper.h index d4076699c..6770832f1 100644 --- a/kitty/glfw-wrapper.h +++ b/kitty/glfw-wrapper.h @@ -165,6 +165,7 @@ #define GLFW_KEY_LEFT_BRACKET 91 /* [ */ #define GLFW_KEY_BACKSLASH 92 /* \ */ #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */ +#define GLFW_KEY_CIRCUMFLEX 94 /* ^ */ #define GLFW_KEY_UNDERSCORE 95 /* _ */ #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */ #define GLFW_KEY_WORLD_1 161 /* non-US #1 */ diff --git a/kitty/glfw.c b/kitty/glfw.c index b0e8fb706..5737d6586 100644 --- a/kitty/glfw.c +++ b/kitty/glfw.c @@ -1296,6 +1296,7 @@ init_glfw(PyObject *m) { ADDC(GLFW_KEY_LEFT_BRACKET); ADDC(GLFW_KEY_BACKSLASH); ADDC(GLFW_KEY_RIGHT_BRACKET); + ADDC(GLFW_KEY_CIRCUMFLEX); ADDC(GLFW_KEY_UNDERSCORE); ADDC(GLFW_KEY_GRAVE_ACCENT); ADDC(GLFW_KEY_WORLD_1); diff --git a/kitty/key_encoding.py b/kitty/key_encoding.py index 6eb53ac63..46b5325c7 100644 --- a/kitty/key_encoding.py +++ b/kitty/key_encoding.py @@ -192,7 +192,8 @@ ENCODING = { 'CYRILLIC E': 'CJ', 'CYRILLIC YU': 'CK', 'CYRILLIC YA': 'CL', - 'CYRILLIC IO': 'CM' + 'CYRILLIC IO': 'CM', + 'CIRCUMFLEX': 'CN' } KEY_MAP = { 32: 'A', @@ -254,6 +255,7 @@ KEY_MAP = { 91: 's', 92: 't', 93: 'u', + 94: 'CN', 95: 'Bj', 96: 'v', 161: 'w', diff --git a/kitty/key_names.py b/kitty/key_names.py index 7f367a474..b0d45ed29 100644 --- a/kitty/key_names.py +++ b/kitty/key_names.py @@ -30,6 +30,7 @@ key_name_aliases = { '[': 'LEFT_BRACKET', '\\': 'BACKSLASH', ']': 'RIGHT_BRACKET', + '^': 'CIRCUMFLEX', '_': 'UNDERSCORE', '`': 'GRAVE_ACCENT', 'ยง': 'PARAGRAPH', diff --git a/kitty/keys.h b/kitty/keys.h index 817ecec2f..cc27bd406 100644 --- a/kitty/keys.h +++ b/kitty/keys.h @@ -100,9 +100,10 @@ UINT8_MAX, 56, /* LEFT_BRACKET */ 57, /* BACKSLASH */ 58, /* RIGHT_BRACKET */ +59, /* CIRCUMFLEX */ +60, /* UNDERSCORE */ +61, /* GRAVE_ACCENT */ UINT8_MAX, -59, /* UNDERSCORE */ -60, /* GRAVE_ACCENT */ UINT8_MAX, UINT8_MAX, UINT8_MAX, @@ -166,14 +167,14 @@ UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, +62, /* WORLD_1 */ +63, /* WORLD_2 */ UINT8_MAX, -61, /* WORLD_1 */ -62, /* WORLD_2 */ UINT8_MAX, UINT8_MAX, UINT8_MAX, +64, /* PARAGRAPH */ UINT8_MAX, -63, /* PARAGRAPH */ UINT8_MAX, UINT8_MAX, UINT8_MAX, @@ -191,91 +192,91 @@ UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, +65, /* MASCULINE */ UINT8_MAX, -64, /* MASCULINE */ UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, +66, /* A_GRAVE */ UINT8_MAX, -65, /* A_GRAVE */ UINT8_MAX, UINT8_MAX, +67, /* A_DIAERESIS */ +68, /* A_RING */ +69, /* AE */ +70, /* C_CEDILLA */ +71, /* E_GRAVE */ +72, /* E_ACUTE */ UINT8_MAX, -66, /* A_DIAERESIS */ -67, /* A_RING */ -68, /* AE */ -69, /* C_CEDILLA */ -70, /* E_GRAVE */ -71, /* E_ACUTE */ UINT8_MAX, +73, /* I_GRAVE */ UINT8_MAX, -72, /* I_GRAVE */ UINT8_MAX, UINT8_MAX, UINT8_MAX, +74, /* N_TILDE */ +75, /* O_GRAVE */ UINT8_MAX, -73, /* N_TILDE */ -74, /* O_GRAVE */ UINT8_MAX, UINT8_MAX, +76, /* O_DIAERESIS */ UINT8_MAX, -75, /* O_DIAERESIS */ +77, /* O_SLASH */ +78, /* U_GRAVE */ UINT8_MAX, -76, /* O_SLASH */ -77, /* U_GRAVE */ UINT8_MAX, +79, /* U_DIAERESIS */ UINT8_MAX, -78, /* U_DIAERESIS */ +80, /* S_SHARP */ +81, /* CYRILLIC_A */ +82, /* CYRILLIC_BE */ +83, /* CYRILLIC_VE */ +84, /* CYRILLIC_GHE */ +85, /* CYRILLIC_DE */ +86, /* CYRILLIC_IE */ +87, /* CYRILLIC_ZHE */ +88, /* CYRILLIC_ZE */ +89, /* CYRILLIC_I */ +90, /* CYRILLIC_SHORT_I */ +91, /* CYRILLIC_KA */ +92, /* CYRILLIC_EL */ +93, /* CYRILLIC_EM */ +94, /* CYRILLIC_EN */ +95, /* CYRILLIC_O */ +96, /* CYRILLIC_PE */ +97, /* CYRILLIC_ER */ +98, /* CYRILLIC_ES */ +99, /* CYRILLIC_TE */ +100, /* CYRILLIC_U */ +101, /* CYRILLIC_EF */ +102, /* CYRILLIC_HA */ +103, /* CYRILLIC_TSE */ +104, /* CYRILLIC_CHE */ +105, /* CYRILLIC_SHA */ +106, /* CYRILLIC_SHCHA */ +107, /* CYRILLIC_HARD_SIGN */ +108, /* CYRILLIC_YERU */ +109, /* CYRILLIC_SOFT_SIGN */ +110, /* CYRILLIC_E */ +111, /* CYRILLIC_YU */ +112, /* CYRILLIC_YA */ +113, /* CYRILLIC_IO */ +114, /* ESCAPE */ +115, /* ENTER */ +116, /* TAB */ +117, /* BACKSPACE */ +118, /* INSERT */ +119, /* DELETE */ +120, /* RIGHT */ +121, /* LEFT */ +122, /* DOWN */ +123, /* UP */ +124, /* PAGE_UP */ +125, /* PAGE_DOWN */ +126, /* HOME */ +127, /* END */ UINT8_MAX, -79, /* S_SHARP */ -80, /* CYRILLIC_A */ -81, /* CYRILLIC_BE */ -82, /* CYRILLIC_VE */ -83, /* CYRILLIC_GHE */ -84, /* CYRILLIC_DE */ -85, /* CYRILLIC_IE */ -86, /* CYRILLIC_ZHE */ -87, /* CYRILLIC_ZE */ -88, /* CYRILLIC_I */ -89, /* CYRILLIC_SHORT_I */ -90, /* CYRILLIC_KA */ -91, /* CYRILLIC_EL */ -92, /* CYRILLIC_EM */ -93, /* CYRILLIC_EN */ -94, /* CYRILLIC_O */ -95, /* CYRILLIC_PE */ -96, /* CYRILLIC_ER */ -97, /* CYRILLIC_ES */ -98, /* CYRILLIC_TE */ -99, /* CYRILLIC_U */ -100, /* CYRILLIC_EF */ -101, /* CYRILLIC_HA */ -102, /* CYRILLIC_TSE */ -103, /* CYRILLIC_CHE */ -104, /* CYRILLIC_SHA */ -105, /* CYRILLIC_SHCHA */ -106, /* CYRILLIC_HARD_SIGN */ -107, /* CYRILLIC_YERU */ -108, /* CYRILLIC_SOFT_SIGN */ -109, /* CYRILLIC_E */ -110, /* CYRILLIC_YU */ -111, /* CYRILLIC_YA */ -112, /* CYRILLIC_IO */ -113, /* ESCAPE */ -114, /* ENTER */ -115, /* TAB */ -116, /* BACKSPACE */ -117, /* INSERT */ -118, /* DELETE */ -119, /* RIGHT */ -120, /* LEFT */ -121, /* DOWN */ -122, /* UP */ -123, /* PAGE_UP */ -124, /* PAGE_DOWN */ -125, /* HOME */ -126, /* END */ UINT8_MAX, UINT8_MAX, UINT8_MAX, @@ -285,76 +286,75 @@ UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, +128, /* CAPS_LOCK */ +129, /* SCROLL_LOCK */ +130, /* NUM_LOCK */ +131, /* PRINT_SCREEN */ +132, /* PAUSE */ UINT8_MAX, -127, /* CAPS_LOCK */ -128, /* SCROLL_LOCK */ -129, /* NUM_LOCK */ -130, /* PRINT_SCREEN */ -131, /* PAUSE */ UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, -UINT8_MAX, -132, /* F1 */ -133, /* F2 */ -134, /* F3 */ -135, /* F4 */ -136, /* F5 */ -137, /* F6 */ -138, /* F7 */ -139, /* F8 */ -140, /* F9 */ -141, /* F10 */ -142, /* F11 */ -143, /* F12 */ -144, /* F13 */ -145, /* F14 */ -146, /* F15 */ -147, /* F16 */ -148, /* F17 */ -149, /* F18 */ -150, /* F19 */ -151, /* F20 */ -152, /* F21 */ -153, /* F22 */ -154, /* F23 */ -155, /* F24 */ -156, /* F25 */ -UINT8_MAX, -UINT8_MAX, -UINT8_MAX, -UINT8_MAX, -UINT8_MAX, -157, /* KP_0 */ -158, /* KP_1 */ -159, /* KP_2 */ -160, /* KP_3 */ -161, /* KP_4 */ -162, /* KP_5 */ -163, /* KP_6 */ -164, /* KP_7 */ -165, /* KP_8 */ -166, /* KP_9 */ -167, /* KP_DECIMAL */ -168, /* KP_DIVIDE */ -169, /* KP_MULTIPLY */ -170, /* KP_SUBTRACT */ -171, /* KP_ADD */ -172, /* KP_ENTER */ -173, /* KP_EQUAL */ -UINT8_MAX, -UINT8_MAX, -UINT8_MAX, -174, /* LEFT_SHIFT */ -175, /* LEFT_CONTROL */ -176, /* LEFT_ALT */ -177, /* LEFT_SUPER */ -178, /* RIGHT_SHIFT */ -179, /* RIGHT_CONTROL */ -180, /* RIGHT_ALT */ -181, /* RIGHT_SUPER */ -182, /* MENU */ +133, /* F1 */ +134, /* F2 */ +135, /* F3 */ +136, /* F4 */ +137, /* F5 */ +138, /* F6 */ +139, /* F7 */ +140, /* F8 */ +141, /* F9 */ +142, /* F10 */ +143, /* F11 */ +144, /* F12 */ +145, /* F13 */ +146, /* F14 */ +147, /* F15 */ +148, /* F16 */ +149, /* F17 */ +150, /* F18 */ +151, /* F19 */ +152, /* F20 */ +153, /* F21 */ +154, /* F22 */ +155, /* F23 */ +156, /* F24 */ +157, /* F25 */ +UINT8_MAX, +UINT8_MAX, +UINT8_MAX, +UINT8_MAX, +UINT8_MAX, +158, /* KP_0 */ +159, /* KP_1 */ +160, /* KP_2 */ +161, /* KP_3 */ +162, /* KP_4 */ +163, /* KP_5 */ +164, /* KP_6 */ +165, /* KP_7 */ +166, /* KP_8 */ +167, /* KP_9 */ +168, /* KP_DECIMAL */ +169, /* KP_DIVIDE */ +170, /* KP_MULTIPLY */ +171, /* KP_SUBTRACT */ +172, /* KP_ADD */ +173, /* KP_ENTER */ +174, /* KP_EQUAL */ +UINT8_MAX, +UINT8_MAX, +UINT8_MAX, +175, /* LEFT_SHIFT */ +176, /* LEFT_CONTROL */ +177, /* LEFT_ALT */ +178, /* LEFT_SUPER */ +179, /* RIGHT_SHIFT */ +180, /* RIGHT_CONTROL */ +181, /* RIGHT_ALT */ +182, /* RIGHT_SUPER */ +183, /* MENU */ }; static inline const char* key_name(int key) { switch(key) { @@ -417,6 +417,7 @@ case 90: return "Z"; case 91: return "LEFT_BRACKET"; case 92: return "BACKSLASH"; case 93: return "RIGHT_BRACKET"; +case 94: return "CIRCUMFLEX"; case 95: return "UNDERSCORE"; case 96: return "GRAVE_ACCENT"; case 161: return "WORLD_1"; @@ -557,172 +558,172 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { switch (mods & 0xf) { case 0x0: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0x1: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x03\x1b\x5b\x5a"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x32\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x32\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x32\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x32\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x32\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x32\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x32\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x32\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x32\x7e"; } // end switch(key) case 0x2: @@ -821,91 +822,91 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x01\x1c"; case 58: // RIGHT_BRACKET return "\x01\x1d"; - case 59: // UNDERSCORE + case 60: // UNDERSCORE return "\x01\x00"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x01\x00"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x08"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x35\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x35\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x35\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x35\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x35\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x35\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x35\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x35\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x35\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x35\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x35\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x35\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x35\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x35\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x35\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x35\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x35\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x35\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x35\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x35\x7e"; } // end switch(key) case 0x3: @@ -918,87 +919,87 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x01\x00"; case 20: // 6 return "\x01\x1e"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x36\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x36\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x36\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x36\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x36\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x36\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x36\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x36\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x36\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x36\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x36\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x36\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x36\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x36\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x36\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x36\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x36\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x36\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x36\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x36\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x36\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x36\x7e"; } // end switch(key) case 0x4: @@ -1097,63 +1098,65 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x5c"; case 58: // RIGHT_BRACKET return "\x02\x1b\x5d"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x02\x1b\x5e"; + case 60: // UNDERSCORE return "\x02\x1b\x5f"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x02\x1b\x60"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x02\x1b\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x02\x1b\x0d"; - case 115: // TAB + case 116: // TAB return "\x02\x1b\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x02\x1b\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x33\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x33\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x33\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x33\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x33\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x33\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x33\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x33\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x33\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x33\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x33\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x33\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x33\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x33\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x33\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x33\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x33\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x33\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x33\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x33\x7e"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x33\x7e"; } // end switch(key) case 0x5: @@ -1252,63 +1255,65 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x7c"; case 58: // RIGHT_BRACKET return "\x02\x1b\x7d"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x02\x1b\x5e"; + case 60: // UNDERSCORE return "\x02\x1b\x5f"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x02\x1b\x7e"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x02\x1b\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x02\x1b\x0d"; - case 115: // TAB + case 116: // TAB return "\x03\x1b\x5b\x5a"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x02\x1b\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x34\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x34\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x34\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x34\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x34\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x34\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x34\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x34\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x34\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x34\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x34\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x34\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x34\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x34\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x34\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x34\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x34\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x34\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x34\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x34\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x34\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x34\x7e"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x34\x7e"; } // end switch(key) case 0x6: @@ -1367,852 +1372,852 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x19"; case 55: // Z return "\x02\x1b\x1a"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x37\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x37\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x37\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x37\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x37\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x37\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x37\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x37\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x37\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x37\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x37\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x37\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x37\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x37\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x37\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x37\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x37\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x37\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x37\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x37\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x37\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x37\x7e"; } // end switch(key) case 0x7: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x38\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x38\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x38\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x38\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x38\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x38\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x38\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x38\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x38\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x38\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x38\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x38\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x38\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x38\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x38\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x38\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x38\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x38\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x38\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x38\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x38\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x38\x7e"; } // end switch(key) case 0x8: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0x9: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xa: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xb: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xc: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xd: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xe: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xf: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) } // end switch(mods) @@ -2222,172 +2227,172 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { switch (mods & 0xf) { case 0x0: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0x1: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x03\x1b\x5b\x5a"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x32\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x32\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x32\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x32\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x32\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x32\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x32\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x32\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x32\x7e"; } // end switch(key) case 0x2: @@ -2486,91 +2491,91 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x01\x1c"; case 58: // RIGHT_BRACKET return "\x01\x1d"; - case 59: // UNDERSCORE + case 60: // UNDERSCORE return "\x01\x00"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x01\x00"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x08"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x35\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x35\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x35\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x35\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x35\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x35\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x35\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x35\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x35\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x35\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x35\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x35\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x35\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x35\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x35\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x35\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x35\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x35\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x35\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x35\x7e"; } // end switch(key) case 0x3: @@ -2583,87 +2588,87 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x01\x00"; case 20: // 6 return "\x01\x1e"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x36\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x36\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x36\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x36\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x36\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x36\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x36\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x36\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x36\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x36\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x36\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x36\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x36\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x36\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x36\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x36\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x36\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x36\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x36\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x36\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x36\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x36\x7e"; } // end switch(key) case 0x4: @@ -2762,63 +2767,65 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x5c"; case 58: // RIGHT_BRACKET return "\x02\x1b\x5d"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x02\x1b\x5e"; + case 60: // UNDERSCORE return "\x02\x1b\x5f"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x02\x1b\x60"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x02\x1b\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x02\x1b\x0d"; - case 115: // TAB + case 116: // TAB return "\x02\x1b\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x02\x1b\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x33\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x33\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x33\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x33\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x33\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x33\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x33\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x33\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x33\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x33\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x33\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x33\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x33\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x33\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x33\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x33\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x33\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x33\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x33\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x33\x7e"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x33\x7e"; } // end switch(key) case 0x5: @@ -2917,63 +2924,65 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x7c"; case 58: // RIGHT_BRACKET return "\x02\x1b\x7d"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x02\x1b\x5e"; + case 60: // UNDERSCORE return "\x02\x1b\x5f"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x02\x1b\x7e"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x02\x1b\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x02\x1b\x0d"; - case 115: // TAB + case 116: // TAB return "\x03\x1b\x5b\x5a"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x02\x1b\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x34\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x34\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x34\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x34\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x34\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x34\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x34\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x34\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x34\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x34\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x34\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x34\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x34\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x34\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x34\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x34\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x34\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x34\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x34\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x34\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x34\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x34\x7e"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x34\x7e"; } // end switch(key) case 0x6: @@ -3032,852 +3041,852 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x19"; case 55: // Z return "\x02\x1b\x1a"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x37\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x37\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x37\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x37\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x37\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x37\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x37\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x37\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x37\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x37\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x37\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x37\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x37\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x37\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x37\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x37\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x37\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x37\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x37\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x37\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x37\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x37\x7e"; } // end switch(key) case 0x7: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x38\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x38\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x38\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x38\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x38\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x38\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x38\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x38\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x38\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x38\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x38\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x38\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x38\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x38\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x38\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x38\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x38\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x38\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x38\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x38\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x38\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x38\x7e"; } // end switch(key) case 0x8: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0x9: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xa: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xb: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xc: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xd: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xe: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xf: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x5b\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x5b\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x5b\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x5b\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x5b\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x5b\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) } // end switch(mods) @@ -3896,172 +3905,172 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { switch (mods & 0xf) { case 0x0: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0x1: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x03\x1b\x5b\x5a"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x32\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x32\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x32\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x32\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x32\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x32\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x32\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x32\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x32\x7e"; } // end switch(key) case 0x2: @@ -4160,91 +4169,91 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x01\x1c"; case 58: // RIGHT_BRACKET return "\x01\x1d"; - case 59: // UNDERSCORE + case 60: // UNDERSCORE return "\x01\x00"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x01\x00"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x08"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x35\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x35\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x35\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x35\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x35\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x35\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x35\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x35\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x35\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x35\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x35\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x35\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x35\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x35\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x35\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x35\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x35\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x35\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x35\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x35\x7e"; } // end switch(key) case 0x3: @@ -4257,87 +4266,87 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x01\x00"; case 20: // 6 return "\x01\x1e"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x36\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x36\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x36\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x36\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x36\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x36\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x36\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x36\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x36\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x36\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x36\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x36\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x36\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x36\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x36\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x36\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x36\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x36\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x36\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x36\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x36\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x36\x7e"; } // end switch(key) case 0x4: @@ -4436,63 +4445,65 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x5c"; case 58: // RIGHT_BRACKET return "\x02\x1b\x5d"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x02\x1b\x5e"; + case 60: // UNDERSCORE return "\x02\x1b\x5f"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x02\x1b\x60"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x02\x1b\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x02\x1b\x0d"; - case 115: // TAB + case 116: // TAB return "\x02\x1b\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x02\x1b\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x33\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x33\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x33\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x33\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x33\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x33\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x33\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x33\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x33\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x33\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x33\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x33\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x33\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x33\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x33\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x33\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x33\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x33\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x33\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x33\x7e"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x33\x7e"; } // end switch(key) case 0x5: @@ -4591,63 +4602,65 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x7c"; case 58: // RIGHT_BRACKET return "\x02\x1b\x7d"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x02\x1b\x5e"; + case 60: // UNDERSCORE return "\x02\x1b\x5f"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x02\x1b\x7e"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x02\x1b\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x02\x1b\x0d"; - case 115: // TAB + case 116: // TAB return "\x03\x1b\x5b\x5a"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x02\x1b\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x34\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x34\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x34\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x34\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x34\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x34\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x34\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x34\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x34\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x34\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x34\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x34\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x34\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x34\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x34\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x34\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x34\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x34\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x34\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x34\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x34\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x34\x7e"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x34\x7e"; } // end switch(key) case 0x6: @@ -4706,852 +4719,852 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x19"; case 55: // Z return "\x02\x1b\x1a"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x37\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x37\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x37\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x37\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x37\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x37\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x37\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x37\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x37\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x37\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x37\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x37\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x37\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x37\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x37\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x37\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x37\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x37\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x37\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x37\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x37\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x37\x7e"; } // end switch(key) case 0x7: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x38\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x38\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x38\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x38\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x38\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x38\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x38\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x38\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x38\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x38\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x38\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x38\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x38\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x38\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x38\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x38\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x38\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x38\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x38\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x38\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x38\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x38\x7e"; } // end switch(key) case 0x8: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0x9: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xa: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xb: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xc: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xd: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xe: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xf: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) } // end switch(mods) @@ -5561,172 +5574,172 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { switch (mods & 0xf) { case 0x0: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0x1: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x03\x1b\x5b\x5a"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x32\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x32\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x32\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x32\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x32\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x32\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x32\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x32\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x32\x7e"; } // end switch(key) case 0x2: @@ -5825,91 +5838,91 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x01\x1c"; case 58: // RIGHT_BRACKET return "\x01\x1d"; - case 59: // UNDERSCORE + case 60: // UNDERSCORE return "\x01\x00"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x01\x00"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x08"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x35\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x35\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x35\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x35\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x35\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x35\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x35\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x35\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x35\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x35\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x35\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x35\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x35\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x35\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x35\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x35\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x35\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x35\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x35\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x35\x7e"; } // end switch(key) case 0x3: @@ -5922,87 +5935,87 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x01\x00"; case 20: // 6 return "\x01\x1e"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x36\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x36\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x36\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x36\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x36\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x36\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x36\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x36\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x36\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x36\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x36\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x36\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x36\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x36\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x36\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x36\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x36\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x36\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x36\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x36\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x36\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x36\x7e"; } // end switch(key) case 0x4: @@ -6101,63 +6114,65 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x5c"; case 58: // RIGHT_BRACKET return "\x02\x1b\x5d"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x02\x1b\x5e"; + case 60: // UNDERSCORE return "\x02\x1b\x5f"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x02\x1b\x60"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x02\x1b\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x02\x1b\x0d"; - case 115: // TAB + case 116: // TAB return "\x02\x1b\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x02\x1b\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x33\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x33\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x33\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x33\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x33\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x33\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x33\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x33\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x33\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x33\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x33\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x33\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x33\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x33\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x33\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x33\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x33\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x33\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x33\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x33\x7e"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x33\x7e"; } // end switch(key) case 0x5: @@ -6256,63 +6271,65 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x7c"; case 58: // RIGHT_BRACKET return "\x02\x1b\x7d"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x02\x1b\x5e"; + case 60: // UNDERSCORE return "\x02\x1b\x5f"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x02\x1b\x7e"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x02\x1b\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x02\x1b\x0d"; - case 115: // TAB + case 116: // TAB return "\x03\x1b\x5b\x5a"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x02\x1b\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x34\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x34\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x34\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x34\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x34\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x34\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x34\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x34\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x34\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x34\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x34\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x34\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x34\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x34\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x34\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x34\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x34\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x34\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x34\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x34\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x34\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x34\x7e"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x34\x7e"; } // end switch(key) case 0x6: @@ -6371,852 +6388,852 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x02\x1b\x19"; case 55: // Z return "\x02\x1b\x1a"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x37\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x37\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x37\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x37\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x37\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x37\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x37\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x37\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x37\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x37\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x37\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x37\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x37\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x37\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x37\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x37\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x37\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x37\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x37\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x37\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x37\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x37\x7e"; } // end switch(key) case 0x7: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x06\x1b\x5b\x32\x3b\x38\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x06\x1b\x5b\x33\x3b\x38\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x06\x1b\x5b\x31\x3b\x38\x43"; - case 120: // LEFT + case 121: // LEFT return "\x06\x1b\x5b\x31\x3b\x38\x44"; - case 121: // DOWN + case 122: // DOWN return "\x06\x1b\x5b\x31\x3b\x38\x42"; - case 122: // UP + case 123: // UP return "\x06\x1b\x5b\x31\x3b\x38\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x06\x1b\x5b\x35\x3b\x38\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x06\x1b\x5b\x36\x3b\x38\x7e"; - case 125: // HOME + case 126: // HOME return "\x06\x1b\x5b\x31\x3b\x38\x48"; - case 126: // END + case 127: // END return "\x06\x1b\x5b\x31\x3b\x38\x46"; - case 132: // F1 + case 133: // F1 return "\x06\x1b\x5b\x31\x3b\x38\x50"; - case 133: // F2 + case 134: // F2 return "\x06\x1b\x5b\x31\x3b\x38\x51"; - case 134: // F3 + case 135: // F3 return "\x06\x1b\x5b\x31\x3b\x38\x52"; - case 135: // F4 + case 136: // F4 return "\x06\x1b\x5b\x31\x3b\x38\x53"; - case 136: // F5 + case 137: // F5 return "\x07\x1b\x5b\x31\x35\x3b\x38\x7e"; - case 137: // F6 + case 138: // F6 return "\x07\x1b\x5b\x31\x37\x3b\x38\x7e"; - case 138: // F7 + case 139: // F7 return "\x07\x1b\x5b\x31\x38\x3b\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x07\x1b\x5b\x31\x39\x3b\x38\x7e"; - case 140: // F9 + case 141: // F9 return "\x07\x1b\x5b\x32\x30\x3b\x38\x7e"; - case 141: // F10 + case 142: // F10 return "\x07\x1b\x5b\x32\x31\x3b\x38\x7e"; - case 142: // F11 + case 143: // F11 return "\x07\x1b\x5b\x32\x33\x3b\x38\x7e"; - case 143: // F12 + case 144: // F12 return "\x07\x1b\x5b\x32\x34\x3b\x38\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x07\x1b\x5b\x32\x39\x3b\x38\x7e"; } // end switch(key) case 0x8: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0x9: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xa: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xb: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xc: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xd: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xe: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) case 0xf: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x01\x1b"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x01\x09"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x1b\x5b\x32\x7e"; - case 118: // DELETE + case 119: // DELETE return "\x04\x1b\x5b\x33\x7e"; - case 119: // RIGHT + case 120: // RIGHT return "\x03\x1b\x4f\x43"; - case 120: // LEFT + case 121: // LEFT return "\x03\x1b\x4f\x44"; - case 121: // DOWN + case 122: // DOWN return "\x03\x1b\x4f\x42"; - case 122: // UP + case 123: // UP return "\x03\x1b\x4f\x41"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x1b\x5b\x36\x7e"; - case 125: // HOME + case 126: // HOME return "\x03\x1b\x4f\x48"; - case 126: // END + case 127: // END return "\x03\x1b\x4f\x46"; - case 132: // F1 + case 133: // F1 return "\x03\x1b\x4f\x50"; - case 133: // F2 + case 134: // F2 return "\x03\x1b\x4f\x51"; - case 134: // F3 + case 135: // F3 return "\x03\x1b\x4f\x52"; - case 135: // F4 + case 136: // F4 return "\x03\x1b\x4f\x53"; - case 136: // F5 + case 137: // F5 return "\x05\x1b\x5b\x31\x35\x7e"; - case 137: // F6 + case 138: // F6 return "\x05\x1b\x5b\x31\x37\x7e"; - case 138: // F7 + case 139: // F7 return "\x05\x1b\x5b\x31\x38\x7e"; - case 139: // F8 + case 140: // F8 return "\x05\x1b\x5b\x31\x39\x7e"; - case 140: // F9 + case 141: // F9 return "\x05\x1b\x5b\x32\x30\x7e"; - case 141: // F10 + case 142: // F10 return "\x05\x1b\x5b\x32\x31\x7e"; - case 142: // F11 + case 143: // F11 return "\x05\x1b\x5b\x32\x33\x7e"; - case 143: // F12 + case 144: // F12 return "\x05\x1b\x5b\x32\x34\x7e"; - case 144: // F13 + case 145: // F13 return "\x06\x1b\x5b\x31\x3b\x32\x50"; - case 145: // F14 + case 146: // F14 return "\x06\x1b\x5b\x31\x3b\x32\x51"; - case 146: // F15 + case 147: // F15 return "\x06\x1b\x5b\x31\x3b\x32\x52"; - case 147: // F16 + case 148: // F16 return "\x06\x1b\x5b\x31\x3b\x32\x53"; - case 148: // F17 + case 149: // F17 return "\x07\x1b\x5b\x31\x35\x3b\x32\x7e"; - case 149: // F18 + case 150: // F18 return "\x07\x1b\x5b\x31\x37\x3b\x32\x7e"; - case 150: // F19 + case 151: // F19 return "\x07\x1b\x5b\x31\x38\x3b\x32\x7e"; - case 151: // F20 + case 152: // F20 return "\x07\x1b\x5b\x31\x39\x3b\x32\x7e"; - case 152: // F21 + case 153: // F21 return "\x07\x1b\x5b\x32\x30\x3b\x32\x7e"; - case 153: // F22 + case 154: // F22 return "\x07\x1b\x5b\x32\x31\x3b\x32\x7e"; - case 154: // F23 + case 155: // F23 return "\x07\x1b\x5b\x32\x33\x3b\x32\x7e"; - case 155: // F24 + case 156: // F24 return "\x07\x1b\x5b\x32\x34\x3b\x32\x7e"; - case 156: // F25 + case 157: // F25 return "\x06\x1b\x5b\x31\x3b\x35\x50"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x01\x0d"; - case 182: // MENU + case 183: // MENU return "\x05\x1b\x5b\x32\x39\x7e"; } // end switch(key) } // end switch(mods) @@ -7232,272 +7249,272 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { switch (mods & 0xf) { case 0x0: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x41\x79"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x41\x30"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x41\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x41\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x41\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x41\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x41\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x41\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x41\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x41\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x41\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x41\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x41\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x41\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x41\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x41\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x41\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x41\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x41\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x41\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x41\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x41\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x41\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x41\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x41\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x41\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x41\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x41\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x41\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x41\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x41\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x41\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x41\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x41\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x41\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x41\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x41\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x41\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x41\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x41\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x41\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x41\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x41\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x41\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x41\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x41\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x41\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x41\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x41\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x41\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x41\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x41\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x41\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x41\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x41\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x41\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x41\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x41\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x41\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x41\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x41\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x41\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x41\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x41\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x41\x42\x68"; } // end switch(key) case 0x1: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x42\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x42\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x42\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x42\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x42\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x42\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x42\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x42\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x42\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x42\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x42\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x42\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x42\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x42\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x42\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x42\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x42\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x42\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x42\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x42\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x42\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x42\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x42\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x42\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x42\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x42\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x42\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x42\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x42\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x42\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x42\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x42\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x42\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x42\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x42\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x42\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x42\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x42\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x42\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x42\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x42\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x42\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x42\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x42\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x42\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x42\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x42\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x42\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x42\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x42\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x42\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x42\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x42\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x42\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x42\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x42\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x42\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x42\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x42\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x42\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x42\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x42\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x42\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x42\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x42\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x42\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x42\x42\x68"; } // end switch(key) case 0x2: @@ -7620,247 +7637,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x45\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x45\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x45\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x45\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x45\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x45\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x45\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x45\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x45\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x45\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x45\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x45\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x45\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x45\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x45\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x45\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x45\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x45\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x45\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x45\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x45\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x45\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x45\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x45\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x45\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x45\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x45\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x45\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x45\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x45\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x45\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x45\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x45\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x45\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x45\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x45\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x45\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x45\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x45\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x45\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x45\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x45\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x45\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x45\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x45\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x45\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x45\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x45\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x45\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x45\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x45\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x45\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x45\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x45\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x45\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x45\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x45\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x45\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x45\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x45\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x45\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x45\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x45\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x45\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x45\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x45\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x45\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x45\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x45\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x45\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x45\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x45\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x45\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x45\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x45\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x45\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x45\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x45\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x45\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x45\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x45\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x45\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x45\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x45\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x45\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x45\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x45\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x45\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x45\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x45\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x45\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x45\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x45\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x45\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x45\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x45\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x45\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x45\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x45\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x45\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x45\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x45\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x45\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x45\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x45\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x45\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x45\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x45\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x45\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x45\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x45\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x45\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x45\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x45\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x45\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x45\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x45\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x45\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x45\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x45\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x45\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x45\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x45\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x45\x42\x68"; } // end switch(key) case 0x3: @@ -7983,247 +8002,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x46\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x46\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x46\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x46\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x46\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x46\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x46\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x46\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x46\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x46\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x46\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x46\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x46\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x46\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x46\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x46\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x46\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x46\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x46\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x46\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x46\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x46\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x46\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x46\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x46\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x46\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x46\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x46\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x46\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x46\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x46\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x46\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x46\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x46\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x46\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x46\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x46\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x46\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x46\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x46\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x46\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x46\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x46\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x46\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x46\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x46\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x46\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x46\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x46\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x46\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x46\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x46\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x46\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x46\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x46\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x46\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x46\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x46\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x46\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x46\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x46\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x46\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x46\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x46\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x46\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x46\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x46\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x46\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x46\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x46\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x46\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x46\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x46\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x46\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x46\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x46\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x46\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x46\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x46\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x46\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x46\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x46\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x46\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x46\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x46\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x46\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x46\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x46\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x46\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x46\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x46\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x46\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x46\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x46\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x46\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x46\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x46\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x46\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x46\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x46\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x46\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x46\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x46\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x46\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x46\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x46\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x46\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x46\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x46\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x46\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x46\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x46\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x46\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x46\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x46\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x46\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x46\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x46\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x46\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x46\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x46\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x46\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x46\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x46\x42\x68"; } // end switch(key) case 0x4: @@ -8346,247 +8367,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x43\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x43\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x43\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x43\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x43\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x43\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x43\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x43\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x43\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x43\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x43\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x43\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x43\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x43\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x43\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x43\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x43\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x43\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x43\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x43\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x43\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x43\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x43\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x43\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x43\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x43\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x43\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x43\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x43\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x43\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x43\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x43\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x43\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x43\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x43\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x43\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x43\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x43\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x43\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x43\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x43\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x43\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x43\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x43\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x43\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x43\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x43\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x43\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x43\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x43\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x43\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x43\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x43\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x43\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x43\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x43\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x43\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x43\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x43\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x43\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x43\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x43\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x43\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x43\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x43\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x43\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x43\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x43\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x43\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x43\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x43\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x43\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x43\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x43\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x43\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x43\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x43\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x43\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x43\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x43\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x43\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x43\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x43\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x43\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x43\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x43\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x43\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x43\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x43\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x43\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x43\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x43\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x43\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x43\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x43\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x43\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x43\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x43\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x43\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x43\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x43\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x43\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x43\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x43\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x43\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x43\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x43\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x43\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x43\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x43\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x43\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x43\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x43\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x43\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x43\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x43\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x43\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x43\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x43\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x43\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x43\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x43\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x43\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x43\x42\x68"; } // end switch(key) case 0x5: @@ -8709,247 +8732,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x44\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x44\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x44\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x44\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x44\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x44\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x44\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x44\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x44\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x44\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x44\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x44\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x44\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x44\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x44\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x44\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x44\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x44\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x44\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x44\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x44\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x44\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x44\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x44\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x44\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x44\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x44\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x44\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x44\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x44\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x44\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x44\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x44\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x44\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x44\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x44\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x44\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x44\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x44\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x44\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x44\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x44\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x44\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x44\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x44\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x44\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x44\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x44\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x44\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x44\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x44\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x44\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x44\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x44\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x44\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x44\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x44\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x44\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x44\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x44\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x44\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x44\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x44\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x44\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x44\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x44\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x44\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x44\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x44\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x44\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x44\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x44\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x44\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x44\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x44\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x44\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x44\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x44\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x44\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x44\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x44\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x44\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x44\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x44\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x44\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x44\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x44\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x44\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x44\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x44\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x44\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x44\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x44\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x44\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x44\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x44\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x44\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x44\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x44\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x44\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x44\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x44\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x44\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x44\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x44\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x44\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x44\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x44\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x44\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x44\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x44\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x44\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x44\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x44\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x44\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x44\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x44\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x44\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x44\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x44\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x44\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x44\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x44\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x44\x42\x68"; } // end switch(key) case 0x6: @@ -9072,247 +9097,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x47\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x47\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x47\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x47\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x47\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x47\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x47\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x47\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x47\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x47\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x47\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x47\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x47\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x47\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x47\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x47\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x47\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x47\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x47\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x47\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x47\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x47\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x47\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x47\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x47\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x47\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x47\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x47\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x47\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x47\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x47\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x47\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x47\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x47\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x47\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x47\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x47\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x47\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x47\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x47\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x47\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x47\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x47\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x47\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x47\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x47\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x47\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x47\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x47\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x47\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x47\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x47\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x47\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x47\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x47\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x47\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x47\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x47\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x47\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x47\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x47\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x47\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x47\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x47\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x47\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x47\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x47\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x47\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x47\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x47\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x47\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x47\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x47\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x47\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x47\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x47\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x47\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x47\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x47\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x47\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x47\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x47\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x47\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x47\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x47\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x47\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x47\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x47\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x47\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x47\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x47\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x47\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x47\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x47\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x47\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x47\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x47\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x47\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x47\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x47\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x47\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x47\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x47\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x47\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x47\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x47\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x47\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x47\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x47\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x47\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x47\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x47\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x47\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x47\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x47\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x47\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x47\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x47\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x47\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x47\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x47\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x47\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x47\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x47\x42\x68"; } // end switch(key) case 0x7: @@ -9435,247 +9462,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x48\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x48\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x48\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x48\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x48\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x48\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x48\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x48\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x48\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x48\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x48\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x48\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x48\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x48\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x48\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x48\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x48\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x48\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x48\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x48\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x48\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x48\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x48\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x48\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x48\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x48\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x48\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x48\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x48\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x48\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x48\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x48\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x48\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x48\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x48\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x48\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x48\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x48\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x48\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x48\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x48\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x48\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x48\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x48\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x48\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x48\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x48\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x48\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x48\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x48\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x48\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x48\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x48\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x48\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x48\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x48\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x48\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x48\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x48\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x48\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x48\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x48\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x48\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x48\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x48\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x48\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x48\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x48\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x48\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x48\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x48\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x48\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x48\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x48\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x48\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x48\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x48\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x48\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x48\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x48\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x48\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x48\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x48\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x48\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x48\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x48\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x48\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x48\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x48\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x48\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x48\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x48\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x48\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x48\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x48\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x48\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x48\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x48\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x48\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x48\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x48\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x48\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x48\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x48\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x48\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x48\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x48\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x48\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x48\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x48\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x48\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x48\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x48\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x48\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x48\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x48\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x48\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x48\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x48\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x48\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x48\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x48\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x48\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x48\x42\x68"; } // end switch(key) case 0x8: @@ -9798,247 +9827,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x49\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x49\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x49\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x49\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x49\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x49\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x49\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x49\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x49\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x49\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x49\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x49\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x49\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x49\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x49\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x49\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x49\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x49\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x49\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x49\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x49\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x49\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x49\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x49\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x49\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x49\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x49\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x49\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x49\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x49\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x49\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x49\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x49\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x49\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x49\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x49\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x49\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x49\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x49\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x49\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x49\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x49\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x49\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x49\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x49\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x49\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x49\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x49\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x49\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x49\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x49\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x49\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x49\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x49\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x49\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x49\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x49\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x49\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x49\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x49\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x49\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x49\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x49\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x49\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x49\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x49\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x49\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x49\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x49\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x49\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x49\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x49\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x49\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x49\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x49\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x49\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x49\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x49\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x49\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x49\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x49\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x49\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x49\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x49\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x49\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x49\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x49\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x49\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x49\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x49\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x49\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x49\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x49\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x49\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x49\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x49\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x49\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x49\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x49\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x49\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x49\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x49\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x49\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x49\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x49\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x49\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x49\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x49\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x49\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x49\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x49\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x49\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x49\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x49\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x49\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x49\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x49\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x49\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x49\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x49\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x49\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x49\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x49\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x49\x42\x68"; } // end switch(key) case 0x9: @@ -10161,247 +10192,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x4a\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x4a\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x4a\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x4a\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x4a\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x4a\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x4a\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x4a\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x4a\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x4a\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x4a\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x4a\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x4a\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x4a\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x4a\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x4a\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x4a\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x4a\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x4a\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x4a\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x4a\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x4a\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x4a\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x4a\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x4a\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x4a\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x4a\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x4a\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x4a\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x4a\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x4a\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x4a\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x4a\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x4a\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x4a\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x4a\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x4a\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x4a\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x4a\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x4a\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x4a\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x4a\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x4a\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x4a\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x4a\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x4a\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x4a\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x4a\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x4a\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x4a\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x4a\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x4a\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x4a\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x4a\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x4a\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x4a\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x4a\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x4a\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x4a\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x4a\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x4a\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x4a\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x4a\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x4a\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x4a\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x4a\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x4a\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x4a\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x4a\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x4a\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x4a\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x4a\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x4a\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x4a\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x4a\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x4a\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x4a\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x4a\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x4a\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x4a\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x4a\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x4a\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x4a\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x4a\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x4a\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x4a\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x4a\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x4a\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x4a\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x4a\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x4a\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x4a\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x4a\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x4a\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x4a\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x4a\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x4a\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x4a\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x4a\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x4a\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x4a\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x4a\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x4a\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x4a\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x4a\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x4a\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x4a\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x4a\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x4a\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x4a\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x4a\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x4a\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x4a\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x4a\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x4a\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x4a\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x4a\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x4a\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x4a\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x4a\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x4a\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x4a\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x4a\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x4a\x42\x68"; } // end switch(key) case 0xa: @@ -10524,247 +10557,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x4d\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x4d\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x4d\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x4d\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x4d\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x4d\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x4d\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x4d\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x4d\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x4d\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x4d\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x4d\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x4d\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x4d\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x4d\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x4d\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x4d\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x4d\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x4d\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x4d\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x4d\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x4d\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x4d\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x4d\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x4d\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x4d\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x4d\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x4d\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x4d\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x4d\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x4d\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x4d\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x4d\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x4d\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x4d\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x4d\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x4d\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x4d\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x4d\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x4d\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x4d\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x4d\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x4d\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x4d\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x4d\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x4d\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x4d\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x4d\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x4d\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x4d\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x4d\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x4d\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x4d\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x4d\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x4d\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x4d\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x4d\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x4d\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x4d\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x4d\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x4d\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x4d\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x4d\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x4d\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x4d\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x4d\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x4d\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x4d\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x4d\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x4d\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x4d\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x4d\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x4d\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x4d\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x4d\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x4d\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x4d\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x4d\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x4d\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x4d\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x4d\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x4d\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x4d\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x4d\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x4d\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x4d\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x4d\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x4d\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x4d\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x4d\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x4d\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x4d\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x4d\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x4d\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x4d\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x4d\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x4d\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x4d\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x4d\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x4d\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x4d\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x4d\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x4d\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x4d\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x4d\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x4d\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x4d\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x4d\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x4d\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x4d\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x4d\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x4d\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x4d\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x4d\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x4d\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x4d\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x4d\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x4d\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x4d\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x4d\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x4d\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x4d\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x4d\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x4d\x42\x68"; } // end switch(key) case 0xb: @@ -10887,247 +10922,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x4e\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x4e\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x4e\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x4e\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x4e\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x4e\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x4e\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x4e\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x4e\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x4e\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x4e\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x4e\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x4e\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x4e\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x4e\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x4e\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x4e\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x4e\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x4e\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x4e\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x4e\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x4e\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x4e\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x4e\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x4e\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x4e\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x4e\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x4e\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x4e\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x4e\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x4e\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x4e\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x4e\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x4e\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x4e\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x4e\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x4e\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x4e\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x4e\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x4e\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x4e\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x4e\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x4e\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x4e\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x4e\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x4e\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x4e\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x4e\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x4e\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x4e\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x4e\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x4e\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x4e\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x4e\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x4e\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x4e\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x4e\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x4e\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x4e\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x4e\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x4e\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x4e\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x4e\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x4e\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x4e\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x4e\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x4e\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x4e\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x4e\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x4e\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x4e\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x4e\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x4e\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x4e\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x4e\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x4e\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x4e\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x4e\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x4e\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x4e\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x4e\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x4e\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x4e\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x4e\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x4e\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x4e\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x4e\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x4e\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x4e\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x4e\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x4e\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x4e\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x4e\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x4e\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x4e\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x4e\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x4e\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x4e\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x4e\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x4e\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x4e\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x4e\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x4e\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x4e\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x4e\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x4e\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x4e\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x4e\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x4e\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x4e\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x4e\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x4e\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x4e\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x4e\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x4e\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x4e\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x4e\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x4e\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x4e\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x4e\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x4e\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x4e\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x4e\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x4e\x42\x68"; } // end switch(key) case 0xc: @@ -11250,247 +11287,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x4b\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x4b\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x4b\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x4b\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x4b\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x4b\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x4b\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x4b\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x4b\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x4b\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x4b\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x4b\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x4b\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x4b\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x4b\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x4b\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x4b\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x4b\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x4b\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x4b\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x4b\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x4b\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x4b\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x4b\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x4b\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x4b\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x4b\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x4b\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x4b\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x4b\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x4b\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x4b\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x4b\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x4b\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x4b\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x4b\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x4b\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x4b\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x4b\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x4b\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x4b\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x4b\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x4b\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x4b\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x4b\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x4b\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x4b\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x4b\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x4b\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x4b\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x4b\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x4b\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x4b\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x4b\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x4b\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x4b\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x4b\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x4b\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x4b\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x4b\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x4b\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x4b\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x4b\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x4b\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x4b\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x4b\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x4b\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x4b\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x4b\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x4b\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x4b\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x4b\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x4b\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x4b\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x4b\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x4b\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x4b\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x4b\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x4b\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x4b\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x4b\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x4b\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x4b\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x4b\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x4b\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x4b\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x4b\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x4b\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x4b\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x4b\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x4b\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x4b\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x4b\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x4b\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x4b\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x4b\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x4b\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x4b\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x4b\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x4b\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x4b\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x4b\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x4b\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x4b\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x4b\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x4b\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x4b\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x4b\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x4b\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x4b\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x4b\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x4b\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x4b\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x4b\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x4b\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x4b\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x4b\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x4b\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x4b\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x4b\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x4b\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x4b\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x4b\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x4b\x42\x68"; } // end switch(key) case 0xd: @@ -11613,247 +11652,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x4c\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x4c\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x4c\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x4c\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x4c\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x4c\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x4c\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x4c\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x4c\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x4c\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x4c\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x4c\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x4c\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x4c\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x4c\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x4c\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x4c\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x4c\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x4c\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x4c\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x4c\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x4c\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x4c\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x4c\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x4c\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x4c\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x4c\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x4c\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x4c\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x4c\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x4c\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x4c\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x4c\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x4c\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x4c\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x4c\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x4c\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x4c\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x4c\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x4c\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x4c\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x4c\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x4c\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x4c\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x4c\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x4c\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x4c\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x4c\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x4c\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x4c\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x4c\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x4c\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x4c\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x4c\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x4c\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x4c\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x4c\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x4c\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x4c\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x4c\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x4c\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x4c\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x4c\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x4c\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x4c\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x4c\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x4c\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x4c\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x4c\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x4c\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x4c\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x4c\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x4c\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x4c\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x4c\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x4c\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x4c\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x4c\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x4c\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x4c\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x4c\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x4c\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x4c\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x4c\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x4c\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x4c\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x4c\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x4c\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x4c\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x4c\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x4c\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x4c\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x4c\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x4c\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x4c\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x4c\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x4c\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x4c\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x4c\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x4c\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x4c\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x4c\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x4c\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x4c\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x4c\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x4c\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x4c\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x4c\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x4c\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x4c\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x4c\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x4c\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x4c\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x4c\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x4c\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x4c\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x4c\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x4c\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x4c\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x4c\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x4c\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x4c\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x4c\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x4c\x42\x68"; } // end switch(key) case 0xe: @@ -11976,247 +12017,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x4f\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x4f\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x4f\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x4f\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x4f\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x4f\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x4f\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x4f\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x4f\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x4f\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x4f\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x4f\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x4f\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x4f\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x4f\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x4f\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x4f\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x4f\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x4f\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x4f\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x4f\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x4f\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x4f\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x4f\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x4f\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x4f\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x4f\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x4f\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x4f\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x4f\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x4f\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x4f\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x4f\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x4f\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x4f\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x4f\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x4f\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x4f\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x4f\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x4f\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x4f\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x4f\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x4f\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x4f\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x4f\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x4f\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x4f\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x4f\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x4f\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x4f\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x4f\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x4f\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x4f\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x4f\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x4f\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x4f\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x4f\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x4f\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x4f\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x4f\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x4f\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x4f\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x4f\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x4f\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x4f\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x4f\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x4f\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x4f\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x4f\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x4f\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x4f\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x4f\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x4f\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x4f\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x4f\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x4f\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x4f\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x4f\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x4f\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x4f\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x4f\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x4f\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x4f\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x4f\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x4f\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x4f\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x4f\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x4f\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x4f\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x4f\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x4f\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x4f\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x4f\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x4f\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x4f\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x4f\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x4f\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x4f\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x4f\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x4f\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x4f\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x4f\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x4f\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x4f\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x4f\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x4f\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x4f\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x4f\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x4f\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x4f\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x4f\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x4f\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x4f\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x4f\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x4f\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x4f\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x4f\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x4f\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x4f\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x4f\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x4f\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x4f\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x4f\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x4f\x42\x68"; } // end switch(key) case 0xf: @@ -12339,247 +12382,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x72\x50\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x72\x50\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x72\x50\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x72\x50\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x72\x50\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x72\x50\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x72\x50\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x72\x50\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x72\x50\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x72\x50\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x72\x50\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x72\x50\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x72\x50\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x72\x50\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x72\x50\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x72\x50\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x72\x50\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x72\x50\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x72\x50\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x72\x50\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x72\x50\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x72\x50\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x72\x50\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x72\x50\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x72\x50\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x72\x50\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x72\x50\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x72\x50\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x72\x50\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x72\x50\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x72\x50\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x72\x50\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x72\x50\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x72\x50\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x72\x50\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x72\x50\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x72\x50\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x72\x50\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x72\x50\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x72\x50\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x72\x50\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x72\x50\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x72\x50\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x72\x50\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x72\x50\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x72\x50\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x72\x50\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x72\x50\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x72\x50\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x72\x50\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x72\x50\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x72\x50\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x72\x50\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x72\x50\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x72\x50\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x72\x50\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x72\x50\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x72\x50\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x72\x50\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x72\x50\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x72\x50\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x72\x50\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x72\x50\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x72\x50\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x72\x50\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x72\x50\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x72\x50\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x72\x50\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x72\x50\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x72\x50\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x72\x50\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x72\x50\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x72\x50\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x72\x50\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x72\x50\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x72\x50\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x72\x50\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x72\x50\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x72\x50\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x72\x50\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x72\x50\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x72\x50\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x72\x50\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x72\x50\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x72\x50\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x72\x50\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x72\x50\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x72\x50\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x72\x50\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x72\x50\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x72\x50\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x72\x50\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x72\x50\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x72\x50\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x72\x50\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x72\x50\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x72\x50\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x72\x50\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x72\x50\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x72\x50\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x72\x50\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x72\x50\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x72\x50\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x72\x50\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x72\x50\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x72\x50\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x72\x50\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x72\x50\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x72\x50\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x72\x50\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x72\x50\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x72\x50\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x72\x50\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x72\x50\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x72\x50\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x72\x50\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x72\x50\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x72\x50\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x72\x50\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x72\x50\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x72\x50\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x72\x50\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x72\x50\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x72\x50\x42\x68"; } // end switch(key) } // end switch(mods) @@ -12589,276 +12634,276 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { switch (mods & 0xf) { case 0x0: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x41\x79"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x41\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x41\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x41\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x41\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x41\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x41\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x41\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x41\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x41\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x41\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x41\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x41\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x41\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x41\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x41\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x41\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x41\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x41\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x41\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x41\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x41\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x41\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x41\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x41\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x41\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x41\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x41\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x41\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x41\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x41\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x41\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x41\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x41\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x41\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x41\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x41\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x41\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x41\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x41\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x41\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x41\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x41\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x41\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x41\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x41\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x41\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x41\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x41\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x41\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x41\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x41\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x41\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x41\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x41\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x41\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x41\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x41\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x41\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x41\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x41\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x41\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x41\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x41\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x41\x42\x68"; } // end switch(key) case 0x1: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x42\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x42\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x42\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x42\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x42\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x42\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x42\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x42\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x42\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x42\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x42\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x42\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x42\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x42\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x42\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x42\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x42\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x42\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x42\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x42\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x42\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x42\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x42\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x42\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x42\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x42\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x42\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x42\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x42\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x42\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x42\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x42\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x42\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x42\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x42\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x42\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x42\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x42\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x42\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x42\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x42\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x42\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x42\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x42\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x42\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x42\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x42\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x42\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x42\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x42\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x42\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x42\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x42\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x42\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x42\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x42\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x42\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x42\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x42\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x42\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x42\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x42\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x42\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x42\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x42\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x42\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x42\x42\x68"; } // end switch(key) case 0x2: @@ -12981,247 +13026,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x45\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x45\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x45\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x45\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x45\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x45\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x45\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x45\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x45\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x45\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x45\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x45\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x45\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x45\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x45\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x45\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x45\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x45\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x45\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x45\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x45\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x45\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x45\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x45\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x45\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x45\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x45\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x45\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x45\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x45\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x45\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x45\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x45\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x45\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x45\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x45\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x45\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x45\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x45\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x45\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x45\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x45\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x45\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x45\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x45\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x45\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x45\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x45\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x45\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x45\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x45\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x45\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x45\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x45\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x45\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x45\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x45\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x45\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x45\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x45\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x45\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x45\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x45\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x45\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x45\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x45\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x45\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x45\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x45\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x45\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x45\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x45\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x45\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x45\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x45\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x45\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x45\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x45\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x45\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x45\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x45\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x45\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x45\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x45\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x45\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x45\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x45\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x45\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x45\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x45\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x45\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x45\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x45\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x45\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x45\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x45\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x45\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x45\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x45\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x45\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x45\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x45\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x45\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x45\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x45\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x45\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x45\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x45\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x45\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x45\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x45\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x45\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x45\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x45\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x45\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x45\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x45\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x45\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x45\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x45\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x45\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x45\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x45\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x45\x42\x68"; } // end switch(key) case 0x3: @@ -13344,247 +13391,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x46\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x46\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x46\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x46\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x46\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x46\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x46\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x46\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x46\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x46\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x46\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x46\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x46\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x46\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x46\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x46\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x46\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x46\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x46\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x46\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x46\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x46\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x46\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x46\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x46\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x46\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x46\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x46\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x46\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x46\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x46\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x46\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x46\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x46\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x46\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x46\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x46\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x46\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x46\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x46\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x46\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x46\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x46\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x46\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x46\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x46\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x46\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x46\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x46\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x46\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x46\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x46\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x46\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x46\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x46\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x46\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x46\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x46\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x46\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x46\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x46\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x46\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x46\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x46\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x46\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x46\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x46\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x46\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x46\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x46\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x46\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x46\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x46\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x46\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x46\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x46\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x46\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x46\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x46\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x46\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x46\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x46\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x46\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x46\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x46\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x46\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x46\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x46\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x46\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x46\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x46\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x46\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x46\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x46\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x46\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x46\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x46\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x46\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x46\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x46\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x46\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x46\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x46\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x46\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x46\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x46\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x46\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x46\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x46\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x46\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x46\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x46\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x46\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x46\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x46\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x46\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x46\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x46\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x46\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x46\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x46\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x46\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x46\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x46\x42\x68"; } // end switch(key) case 0x4: @@ -13707,247 +13756,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x43\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x43\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x43\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x43\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x43\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x43\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x43\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x43\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x43\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x43\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x43\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x43\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x43\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x43\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x43\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x43\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x43\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x43\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x43\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x43\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x43\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x43\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x43\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x43\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x43\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x43\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x43\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x43\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x43\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x43\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x43\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x43\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x43\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x43\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x43\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x43\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x43\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x43\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x43\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x43\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x43\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x43\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x43\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x43\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x43\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x43\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x43\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x43\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x43\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x43\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x43\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x43\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x43\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x43\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x43\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x43\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x43\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x43\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x43\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x43\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x43\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x43\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x43\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x43\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x43\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x43\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x43\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x43\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x43\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x43\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x43\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x43\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x43\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x43\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x43\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x43\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x43\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x43\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x43\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x43\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x43\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x43\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x43\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x43\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x43\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x43\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x43\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x43\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x43\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x43\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x43\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x43\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x43\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x43\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x43\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x43\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x43\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x43\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x43\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x43\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x43\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x43\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x43\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x43\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x43\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x43\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x43\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x43\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x43\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x43\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x43\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x43\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x43\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x43\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x43\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x43\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x43\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x43\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x43\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x43\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x43\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x43\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x43\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x43\x42\x68"; } // end switch(key) case 0x5: @@ -14070,247 +14121,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x44\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x44\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x44\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x44\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x44\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x44\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x44\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x44\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x44\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x44\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x44\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x44\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x44\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x44\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x44\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x44\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x44\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x44\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x44\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x44\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x44\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x44\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x44\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x44\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x44\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x44\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x44\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x44\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x44\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x44\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x44\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x44\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x44\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x44\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x44\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x44\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x44\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x44\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x44\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x44\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x44\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x44\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x44\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x44\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x44\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x44\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x44\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x44\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x44\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x44\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x44\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x44\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x44\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x44\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x44\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x44\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x44\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x44\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x44\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x44\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x44\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x44\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x44\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x44\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x44\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x44\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x44\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x44\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x44\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x44\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x44\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x44\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x44\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x44\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x44\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x44\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x44\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x44\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x44\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x44\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x44\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x44\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x44\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x44\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x44\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x44\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x44\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x44\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x44\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x44\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x44\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x44\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x44\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x44\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x44\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x44\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x44\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x44\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x44\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x44\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x44\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x44\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x44\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x44\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x44\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x44\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x44\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x44\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x44\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x44\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x44\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x44\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x44\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x44\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x44\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x44\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x44\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x44\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x44\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x44\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x44\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x44\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x44\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x44\x42\x68"; } // end switch(key) case 0x6: @@ -14433,247 +14486,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x47\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x47\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x47\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x47\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x47\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x47\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x47\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x47\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x47\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x47\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x47\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x47\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x47\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x47\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x47\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x47\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x47\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x47\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x47\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x47\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x47\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x47\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x47\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x47\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x47\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x47\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x47\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x47\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x47\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x47\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x47\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x47\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x47\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x47\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x47\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x47\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x47\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x47\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x47\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x47\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x47\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x47\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x47\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x47\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x47\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x47\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x47\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x47\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x47\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x47\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x47\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x47\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x47\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x47\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x47\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x47\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x47\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x47\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x47\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x47\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x47\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x47\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x47\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x47\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x47\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x47\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x47\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x47\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x47\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x47\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x47\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x47\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x47\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x47\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x47\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x47\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x47\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x47\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x47\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x47\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x47\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x47\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x47\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x47\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x47\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x47\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x47\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x47\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x47\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x47\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x47\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x47\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x47\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x47\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x47\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x47\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x47\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x47\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x47\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x47\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x47\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x47\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x47\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x47\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x47\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x47\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x47\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x47\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x47\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x47\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x47\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x47\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x47\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x47\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x47\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x47\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x47\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x47\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x47\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x47\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x47\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x47\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x47\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x47\x42\x68"; } // end switch(key) case 0x7: @@ -14796,247 +14851,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x48\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x48\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x48\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x48\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x48\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x48\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x48\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x48\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x48\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x48\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x48\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x48\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x48\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x48\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x48\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x48\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x48\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x48\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x48\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x48\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x48\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x48\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x48\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x48\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x48\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x48\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x48\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x48\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x48\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x48\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x48\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x48\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x48\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x48\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x48\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x48\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x48\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x48\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x48\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x48\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x48\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x48\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x48\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x48\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x48\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x48\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x48\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x48\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x48\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x48\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x48\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x48\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x48\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x48\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x48\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x48\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x48\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x48\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x48\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x48\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x48\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x48\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x48\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x48\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x48\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x48\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x48\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x48\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x48\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x48\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x48\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x48\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x48\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x48\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x48\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x48\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x48\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x48\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x48\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x48\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x48\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x48\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x48\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x48\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x48\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x48\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x48\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x48\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x48\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x48\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x48\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x48\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x48\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x48\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x48\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x48\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x48\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x48\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x48\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x48\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x48\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x48\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x48\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x48\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x48\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x48\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x48\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x48\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x48\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x48\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x48\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x48\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x48\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x48\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x48\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x48\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x48\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x48\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x48\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x48\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x48\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x48\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x48\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x48\x42\x68"; } // end switch(key) case 0x8: @@ -15159,247 +15216,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x49\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x49\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x49\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x49\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x49\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x49\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x49\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x49\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x49\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x49\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x49\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x49\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x49\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x49\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x49\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x49\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x49\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x49\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x49\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x49\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x49\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x49\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x49\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x49\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x49\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x49\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x49\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x49\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x49\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x49\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x49\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x49\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x49\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x49\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x49\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x49\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x49\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x49\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x49\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x49\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x49\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x49\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x49\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x49\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x49\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x49\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x49\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x49\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x49\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x49\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x49\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x49\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x49\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x49\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x49\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x49\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x49\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x49\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x49\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x49\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x49\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x49\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x49\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x49\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x49\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x49\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x49\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x49\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x49\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x49\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x49\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x49\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x49\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x49\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x49\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x49\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x49\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x49\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x49\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x49\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x49\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x49\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x49\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x49\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x49\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x49\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x49\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x49\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x49\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x49\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x49\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x49\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x49\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x49\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x49\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x49\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x49\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x49\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x49\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x49\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x49\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x49\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x49\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x49\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x49\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x49\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x49\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x49\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x49\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x49\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x49\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x49\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x49\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x49\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x49\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x49\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x49\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x49\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x49\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x49\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x49\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x49\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x49\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x49\x42\x68"; } // end switch(key) case 0x9: @@ -15522,247 +15581,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x4a\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x4a\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x4a\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x4a\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x4a\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x4a\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x4a\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x4a\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x4a\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x4a\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x4a\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x4a\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x4a\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x4a\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x4a\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x4a\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x4a\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x4a\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x4a\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x4a\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x4a\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x4a\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x4a\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x4a\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x4a\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x4a\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x4a\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x4a\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x4a\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x4a\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x4a\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x4a\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x4a\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x4a\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x4a\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x4a\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x4a\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x4a\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x4a\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x4a\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x4a\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x4a\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x4a\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x4a\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x4a\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x4a\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x4a\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x4a\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x4a\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x4a\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x4a\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x4a\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x4a\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x4a\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x4a\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x4a\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x4a\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x4a\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x4a\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x4a\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x4a\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x4a\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x4a\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x4a\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x4a\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x4a\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x4a\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x4a\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x4a\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x4a\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x4a\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x4a\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x4a\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x4a\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x4a\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x4a\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x4a\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x4a\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x4a\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x4a\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x4a\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x4a\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x4a\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x4a\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x4a\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x4a\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x4a\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x4a\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x4a\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x4a\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x4a\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x4a\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x4a\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x4a\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x4a\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x4a\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x4a\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x4a\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x4a\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x4a\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x4a\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x4a\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x4a\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x4a\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x4a\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x4a\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x4a\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x4a\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x4a\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x4a\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x4a\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x4a\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x4a\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x4a\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x4a\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x4a\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x4a\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x4a\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x4a\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x4a\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x4a\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x4a\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x4a\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x4a\x42\x68"; } // end switch(key) case 0xa: @@ -15885,247 +15946,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x4d\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x4d\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x4d\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x4d\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x4d\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x4d\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x4d\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x4d\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x4d\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x4d\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x4d\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x4d\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x4d\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x4d\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x4d\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x4d\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x4d\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x4d\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x4d\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x4d\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x4d\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x4d\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x4d\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x4d\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x4d\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x4d\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x4d\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x4d\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x4d\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x4d\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x4d\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x4d\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x4d\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x4d\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x4d\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x4d\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x4d\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x4d\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x4d\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x4d\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x4d\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x4d\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x4d\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x4d\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x4d\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x4d\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x4d\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x4d\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x4d\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x4d\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x4d\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x4d\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x4d\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x4d\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x4d\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x4d\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x4d\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x4d\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x4d\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x4d\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x4d\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x4d\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x4d\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x4d\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x4d\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x4d\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x4d\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x4d\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x4d\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x4d\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x4d\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x4d\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x4d\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x4d\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x4d\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x4d\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x4d\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x4d\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x4d\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x4d\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x4d\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x4d\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x4d\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x4d\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x4d\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x4d\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x4d\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x4d\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x4d\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x4d\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x4d\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x4d\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x4d\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x4d\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x4d\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x4d\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x4d\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x4d\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x4d\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x4d\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x4d\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x4d\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x4d\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x4d\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x4d\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x4d\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x4d\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x4d\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x4d\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x4d\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x4d\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x4d\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x4d\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x4d\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x4d\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x4d\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x4d\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x4d\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x4d\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x4d\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x4d\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x4d\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x4d\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x4d\x42\x68"; } // end switch(key) case 0xb: @@ -16248,247 +16311,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x4e\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x4e\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x4e\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x4e\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x4e\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x4e\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x4e\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x4e\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x4e\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x4e\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x4e\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x4e\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x4e\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x4e\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x4e\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x4e\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x4e\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x4e\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x4e\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x4e\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x4e\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x4e\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x4e\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x4e\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x4e\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x4e\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x4e\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x4e\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x4e\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x4e\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x4e\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x4e\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x4e\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x4e\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x4e\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x4e\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x4e\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x4e\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x4e\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x4e\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x4e\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x4e\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x4e\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x4e\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x4e\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x4e\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x4e\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x4e\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x4e\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x4e\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x4e\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x4e\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x4e\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x4e\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x4e\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x4e\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x4e\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x4e\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x4e\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x4e\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x4e\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x4e\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x4e\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x4e\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x4e\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x4e\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x4e\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x4e\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x4e\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x4e\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x4e\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x4e\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x4e\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x4e\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x4e\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x4e\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x4e\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x4e\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x4e\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x4e\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x4e\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x4e\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x4e\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x4e\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x4e\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x4e\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x4e\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x4e\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x4e\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x4e\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x4e\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x4e\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x4e\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x4e\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x4e\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x4e\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x4e\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x4e\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x4e\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x4e\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x4e\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x4e\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x4e\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x4e\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x4e\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x4e\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x4e\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x4e\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x4e\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x4e\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x4e\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x4e\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x4e\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x4e\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x4e\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x4e\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x4e\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x4e\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x4e\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x4e\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x4e\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x4e\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x4e\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x4e\x42\x68"; } // end switch(key) case 0xc: @@ -16611,247 +16676,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x4b\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x4b\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x4b\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x4b\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x4b\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x4b\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x4b\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x4b\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x4b\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x4b\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x4b\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x4b\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x4b\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x4b\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x4b\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x4b\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x4b\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x4b\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x4b\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x4b\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x4b\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x4b\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x4b\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x4b\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x4b\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x4b\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x4b\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x4b\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x4b\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x4b\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x4b\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x4b\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x4b\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x4b\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x4b\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x4b\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x4b\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x4b\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x4b\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x4b\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x4b\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x4b\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x4b\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x4b\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x4b\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x4b\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x4b\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x4b\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x4b\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x4b\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x4b\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x4b\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x4b\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x4b\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x4b\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x4b\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x4b\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x4b\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x4b\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x4b\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x4b\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x4b\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x4b\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x4b\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x4b\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x4b\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x4b\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x4b\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x4b\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x4b\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x4b\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x4b\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x4b\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x4b\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x4b\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x4b\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x4b\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x4b\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x4b\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x4b\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x4b\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x4b\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x4b\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x4b\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x4b\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x4b\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x4b\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x4b\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x4b\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x4b\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x4b\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x4b\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x4b\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x4b\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x4b\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x4b\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x4b\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x4b\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x4b\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x4b\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x4b\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x4b\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x4b\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x4b\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x4b\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x4b\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x4b\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x4b\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x4b\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x4b\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x4b\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x4b\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x4b\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x4b\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x4b\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x4b\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x4b\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x4b\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x4b\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x4b\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x4b\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x4b\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x4b\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x4b\x42\x68"; } // end switch(key) case 0xd: @@ -16974,247 +17041,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x4c\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x4c\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x4c\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x4c\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x4c\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x4c\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x4c\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x4c\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x4c\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x4c\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x4c\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x4c\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x4c\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x4c\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x4c\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x4c\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x4c\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x4c\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x4c\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x4c\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x4c\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x4c\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x4c\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x4c\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x4c\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x4c\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x4c\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x4c\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x4c\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x4c\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x4c\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x4c\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x4c\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x4c\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x4c\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x4c\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x4c\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x4c\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x4c\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x4c\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x4c\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x4c\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x4c\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x4c\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x4c\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x4c\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x4c\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x4c\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x4c\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x4c\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x4c\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x4c\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x4c\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x4c\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x4c\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x4c\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x4c\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x4c\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x4c\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x4c\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x4c\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x4c\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x4c\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x4c\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x4c\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x4c\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x4c\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x4c\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x4c\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x4c\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x4c\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x4c\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x4c\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x4c\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x4c\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x4c\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x4c\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x4c\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x4c\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x4c\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x4c\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x4c\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x4c\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x4c\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x4c\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x4c\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x4c\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x4c\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x4c\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x4c\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x4c\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x4c\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x4c\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x4c\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x4c\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x4c\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x4c\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x4c\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x4c\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x4c\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x4c\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x4c\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x4c\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x4c\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x4c\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x4c\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x4c\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x4c\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x4c\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x4c\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x4c\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x4c\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x4c\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x4c\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x4c\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x4c\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x4c\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x4c\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x4c\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x4c\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x4c\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x4c\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x4c\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x4c\x42\x68"; } // end switch(key) case 0xe: @@ -17337,247 +17406,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x4f\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x4f\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x4f\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x4f\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x4f\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x4f\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x4f\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x4f\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x4f\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x4f\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x4f\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x4f\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x4f\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x4f\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x4f\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x4f\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x4f\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x4f\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x4f\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x4f\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x4f\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x4f\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x4f\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x4f\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x4f\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x4f\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x4f\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x4f\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x4f\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x4f\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x4f\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x4f\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x4f\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x4f\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x4f\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x4f\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x4f\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x4f\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x4f\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x4f\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x4f\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x4f\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x4f\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x4f\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x4f\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x4f\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x4f\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x4f\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x4f\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x4f\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x4f\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x4f\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x4f\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x4f\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x4f\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x4f\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x4f\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x4f\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x4f\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x4f\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x4f\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x4f\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x4f\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x4f\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x4f\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x4f\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x4f\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x4f\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x4f\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x4f\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x4f\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x4f\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x4f\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x4f\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x4f\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x4f\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x4f\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x4f\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x4f\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x4f\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x4f\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x4f\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x4f\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x4f\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x4f\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x4f\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x4f\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x4f\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x4f\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x4f\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x4f\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x4f\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x4f\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x4f\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x4f\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x4f\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x4f\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x4f\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x4f\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x4f\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x4f\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x4f\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x4f\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x4f\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x4f\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x4f\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x4f\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x4f\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x4f\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x4f\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x4f\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x4f\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x4f\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x4f\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x4f\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x4f\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x4f\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x4f\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x4f\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x4f\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x4f\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x4f\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x4f\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x4f\x42\x68"; } // end switch(key) case 0xf: @@ -17700,247 +17771,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x70\x50\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x70\x50\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x70\x50\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x70\x50\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x70\x50\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x70\x50\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x70\x50\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x70\x50\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x70\x50\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x70\x50\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x70\x50\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x70\x50\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x70\x50\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x70\x50\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x70\x50\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x70\x50\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x70\x50\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x70\x50\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x70\x50\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x70\x50\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x70\x50\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x70\x50\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x70\x50\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x70\x50\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x70\x50\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x70\x50\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x70\x50\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x70\x50\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x70\x50\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x70\x50\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x70\x50\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x70\x50\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x70\x50\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x70\x50\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x70\x50\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x70\x50\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x70\x50\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x70\x50\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x70\x50\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x70\x50\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x70\x50\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x70\x50\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x70\x50\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x70\x50\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x70\x50\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x70\x50\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x70\x50\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x70\x50\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x70\x50\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x70\x50\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x70\x50\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x70\x50\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x70\x50\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x70\x50\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x70\x50\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x70\x50\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x70\x50\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x70\x50\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x70\x50\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x70\x50\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x70\x50\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x70\x50\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x70\x50\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x70\x50\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x70\x50\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x70\x50\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x70\x50\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x70\x50\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x70\x50\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x70\x50\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x70\x50\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x70\x50\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x70\x50\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x70\x50\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x70\x50\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x70\x50\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x70\x50\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x70\x50\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x70\x50\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x70\x50\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x70\x50\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x70\x50\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x70\x50\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x70\x50\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x70\x50\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x70\x50\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x70\x50\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x70\x50\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x70\x50\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x70\x50\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x70\x50\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x70\x50\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x70\x50\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x70\x50\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x70\x50\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x70\x50\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x70\x50\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x70\x50\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x70\x50\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x70\x50\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x70\x50\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x70\x50\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x70\x50\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x70\x50\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x70\x50\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x70\x50\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x70\x50\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x70\x50\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x70\x50\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x70\x50\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x70\x50\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x70\x50\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x70\x50\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x70\x50\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x70\x50\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x70\x50\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x70\x50\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x70\x50\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x70\x50\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x70\x50\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x70\x50\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x70\x50\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x70\x50\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x70\x50\x42\x68"; } // end switch(key) } // end switch(mods) @@ -17950,276 +18023,276 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { switch (mods & 0xf) { case 0x0: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x41\x79"; - case 114: // ENTER + case 115: // ENTER return "\x01\x0d"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x41\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x01\x7f"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x41\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x41\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x41\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x41\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x41\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x41\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x41\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x41\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x41\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x41\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x41\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x41\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x41\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x41\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x41\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x41\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x41\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x41\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x41\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x41\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x41\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x41\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x41\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x41\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x41\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x41\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x41\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x41\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x41\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x41\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x41\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x41\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x41\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x41\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x41\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x41\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x41\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x41\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x41\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x41\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x41\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x41\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x41\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x41\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x41\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x41\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x41\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x41\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x41\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x41\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x41\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x41\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x41\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x41\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x41\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x41\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x41\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x41\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x41\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x41\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x41\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x41\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x41\x42\x68"; } // end switch(key) case 0x1: switch(key & 0xff) { default: return NULL; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x42\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x42\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x42\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x42\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x42\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x42\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x42\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x42\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x42\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x42\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x42\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x42\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x42\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x42\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x42\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x42\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x42\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x42\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x42\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x42\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x42\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x42\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x42\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x42\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x42\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x42\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x42\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x42\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x42\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x42\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x42\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x42\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x42\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x42\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x42\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x42\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x42\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x42\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x42\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x42\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x42\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x42\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x42\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x42\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x42\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x42\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x42\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x42\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x42\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x42\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x42\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x42\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x42\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x42\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x42\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x42\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x42\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x42\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x42\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x42\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x42\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x42\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x42\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x42\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x42\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x42\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x42\x42\x68"; } // end switch(key) case 0x2: @@ -18342,247 +18415,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x45\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x45\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x45\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x45\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x45\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x45\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x45\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x45\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x45\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x45\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x45\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x45\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x45\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x45\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x45\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x45\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x45\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x45\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x45\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x45\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x45\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x45\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x45\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x45\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x45\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x45\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x45\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x45\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x45\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x45\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x45\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x45\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x45\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x45\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x45\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x45\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x45\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x45\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x45\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x45\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x45\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x45\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x45\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x45\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x45\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x45\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x45\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x45\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x45\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x45\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x45\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x45\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x45\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x45\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x45\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x45\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x45\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x45\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x45\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x45\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x45\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x45\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x45\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x45\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x45\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x45\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x45\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x45\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x45\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x45\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x45\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x45\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x45\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x45\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x45\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x45\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x45\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x45\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x45\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x45\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x45\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x45\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x45\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x45\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x45\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x45\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x45\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x45\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x45\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x45\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x45\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x45\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x45\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x45\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x45\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x45\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x45\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x45\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x45\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x45\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x45\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x45\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x45\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x45\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x45\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x45\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x45\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x45\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x45\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x45\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x45\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x45\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x45\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x45\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x45\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x45\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x45\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x45\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x45\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x45\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x45\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x45\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x45\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x45\x42\x68"; } // end switch(key) case 0x3: @@ -18705,247 +18780,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x46\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x46\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x46\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x46\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x46\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x46\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x46\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x46\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x46\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x46\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x46\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x46\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x46\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x46\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x46\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x46\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x46\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x46\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x46\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x46\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x46\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x46\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x46\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x46\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x46\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x46\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x46\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x46\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x46\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x46\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x46\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x46\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x46\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x46\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x46\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x46\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x46\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x46\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x46\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x46\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x46\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x46\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x46\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x46\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x46\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x46\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x46\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x46\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x46\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x46\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x46\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x46\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x46\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x46\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x46\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x46\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x46\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x46\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x46\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x46\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x46\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x46\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x46\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x46\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x46\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x46\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x46\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x46\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x46\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x46\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x46\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x46\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x46\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x46\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x46\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x46\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x46\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x46\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x46\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x46\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x46\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x46\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x46\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x46\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x46\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x46\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x46\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x46\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x46\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x46\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x46\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x46\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x46\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x46\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x46\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x46\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x46\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x46\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x46\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x46\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x46\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x46\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x46\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x46\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x46\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x46\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x46\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x46\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x46\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x46\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x46\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x46\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x46\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x46\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x46\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x46\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x46\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x46\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x46\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x46\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x46\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x46\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x46\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x46\x42\x68"; } // end switch(key) case 0x4: @@ -19068,247 +19145,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x43\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x43\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x43\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x43\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x43\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x43\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x43\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x43\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x43\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x43\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x43\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x43\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x43\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x43\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x43\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x43\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x43\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x43\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x43\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x43\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x43\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x43\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x43\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x43\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x43\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x43\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x43\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x43\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x43\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x43\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x43\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x43\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x43\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x43\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x43\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x43\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x43\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x43\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x43\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x43\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x43\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x43\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x43\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x43\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x43\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x43\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x43\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x43\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x43\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x43\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x43\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x43\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x43\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x43\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x43\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x43\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x43\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x43\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x43\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x43\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x43\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x43\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x43\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x43\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x43\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x43\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x43\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x43\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x43\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x43\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x43\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x43\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x43\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x43\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x43\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x43\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x43\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x43\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x43\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x43\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x43\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x43\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x43\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x43\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x43\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x43\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x43\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x43\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x43\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x43\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x43\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x43\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x43\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x43\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x43\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x43\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x43\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x43\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x43\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x43\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x43\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x43\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x43\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x43\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x43\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x43\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x43\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x43\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x43\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x43\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x43\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x43\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x43\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x43\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x43\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x43\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x43\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x43\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x43\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x43\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x43\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x43\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x43\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x43\x42\x68"; } // end switch(key) case 0x5: @@ -19431,247 +19510,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x44\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x44\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x44\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x44\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x44\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x44\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x44\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x44\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x44\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x44\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x44\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x44\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x44\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x44\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x44\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x44\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x44\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x44\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x44\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x44\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x44\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x44\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x44\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x44\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x44\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x44\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x44\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x44\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x44\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x44\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x44\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x44\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x44\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x44\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x44\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x44\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x44\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x44\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x44\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x44\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x44\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x44\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x44\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x44\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x44\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x44\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x44\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x44\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x44\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x44\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x44\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x44\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x44\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x44\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x44\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x44\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x44\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x44\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x44\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x44\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x44\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x44\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x44\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x44\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x44\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x44\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x44\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x44\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x44\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x44\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x44\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x44\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x44\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x44\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x44\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x44\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x44\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x44\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x44\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x44\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x44\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x44\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x44\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x44\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x44\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x44\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x44\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x44\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x44\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x44\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x44\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x44\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x44\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x44\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x44\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x44\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x44\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x44\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x44\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x44\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x44\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x44\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x44\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x44\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x44\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x44\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x44\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x44\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x44\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x44\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x44\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x44\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x44\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x44\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x44\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x44\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x44\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x44\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x44\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x44\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x44\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x44\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x44\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x44\x42\x68"; } // end switch(key) case 0x6: @@ -19794,247 +19875,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x47\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x47\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x47\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x47\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x47\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x47\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x47\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x47\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x47\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x47\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x47\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x47\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x47\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x47\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x47\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x47\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x47\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x47\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x47\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x47\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x47\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x47\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x47\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x47\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x47\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x47\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x47\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x47\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x47\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x47\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x47\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x47\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x47\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x47\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x47\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x47\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x47\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x47\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x47\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x47\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x47\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x47\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x47\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x47\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x47\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x47\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x47\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x47\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x47\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x47\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x47\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x47\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x47\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x47\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x47\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x47\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x47\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x47\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x47\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x47\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x47\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x47\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x47\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x47\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x47\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x47\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x47\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x47\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x47\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x47\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x47\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x47\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x47\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x47\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x47\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x47\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x47\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x47\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x47\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x47\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x47\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x47\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x47\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x47\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x47\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x47\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x47\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x47\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x47\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x47\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x47\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x47\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x47\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x47\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x47\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x47\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x47\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x47\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x47\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x47\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x47\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x47\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x47\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x47\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x47\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x47\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x47\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x47\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x47\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x47\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x47\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x47\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x47\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x47\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x47\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x47\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x47\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x47\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x47\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x47\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x47\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x47\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x47\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x47\x42\x68"; } // end switch(key) case 0x7: @@ -20157,247 +20240,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x48\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x48\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x48\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x48\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x48\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x48\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x48\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x48\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x48\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x48\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x48\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x48\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x48\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x48\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x48\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x48\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x48\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x48\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x48\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x48\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x48\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x48\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x48\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x48\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x48\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x48\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x48\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x48\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x48\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x48\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x48\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x48\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x48\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x48\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x48\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x48\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x48\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x48\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x48\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x48\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x48\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x48\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x48\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x48\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x48\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x48\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x48\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x48\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x48\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x48\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x48\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x48\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x48\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x48\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x48\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x48\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x48\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x48\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x48\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x48\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x48\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x48\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x48\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x48\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x48\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x48\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x48\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x48\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x48\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x48\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x48\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x48\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x48\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x48\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x48\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x48\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x48\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x48\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x48\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x48\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x48\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x48\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x48\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x48\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x48\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x48\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x48\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x48\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x48\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x48\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x48\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x48\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x48\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x48\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x48\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x48\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x48\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x48\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x48\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x48\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x48\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x48\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x48\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x48\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x48\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x48\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x48\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x48\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x48\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x48\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x48\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x48\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x48\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x48\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x48\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x48\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x48\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x48\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x48\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x48\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x48\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x48\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x48\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x48\x42\x68"; } // end switch(key) case 0x8: @@ -20520,247 +20605,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x49\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x49\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x49\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x49\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x49\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x49\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x49\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x49\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x49\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x49\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x49\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x49\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x49\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x49\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x49\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x49\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x49\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x49\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x49\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x49\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x49\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x49\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x49\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x49\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x49\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x49\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x49\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x49\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x49\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x49\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x49\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x49\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x49\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x49\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x49\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x49\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x49\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x49\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x49\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x49\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x49\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x49\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x49\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x49\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x49\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x49\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x49\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x49\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x49\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x49\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x49\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x49\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x49\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x49\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x49\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x49\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x49\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x49\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x49\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x49\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x49\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x49\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x49\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x49\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x49\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x49\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x49\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x49\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x49\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x49\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x49\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x49\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x49\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x49\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x49\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x49\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x49\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x49\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x49\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x49\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x49\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x49\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x49\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x49\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x49\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x49\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x49\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x49\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x49\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x49\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x49\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x49\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x49\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x49\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x49\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x49\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x49\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x49\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x49\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x49\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x49\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x49\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x49\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x49\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x49\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x49\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x49\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x49\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x49\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x49\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x49\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x49\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x49\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x49\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x49\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x49\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x49\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x49\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x49\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x49\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x49\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x49\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x49\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x49\x42\x68"; } // end switch(key) case 0x9: @@ -20883,247 +20970,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x4a\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x4a\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x4a\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x4a\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x4a\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x4a\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x4a\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x4a\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x4a\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x4a\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x4a\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x4a\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x4a\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x4a\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x4a\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x4a\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x4a\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x4a\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x4a\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x4a\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x4a\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x4a\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x4a\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x4a\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x4a\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x4a\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x4a\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x4a\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x4a\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x4a\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x4a\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x4a\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x4a\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x4a\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x4a\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x4a\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x4a\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x4a\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x4a\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x4a\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x4a\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x4a\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x4a\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x4a\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x4a\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x4a\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x4a\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x4a\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x4a\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x4a\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x4a\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x4a\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x4a\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x4a\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x4a\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x4a\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x4a\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x4a\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x4a\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x4a\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x4a\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x4a\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x4a\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x4a\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x4a\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x4a\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x4a\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x4a\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x4a\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x4a\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x4a\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x4a\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x4a\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x4a\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x4a\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x4a\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x4a\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x4a\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x4a\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x4a\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x4a\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x4a\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x4a\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x4a\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x4a\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x4a\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x4a\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x4a\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x4a\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x4a\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x4a\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x4a\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x4a\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x4a\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x4a\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x4a\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x4a\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x4a\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x4a\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x4a\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x4a\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x4a\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x4a\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x4a\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x4a\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x4a\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x4a\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x4a\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x4a\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x4a\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x4a\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x4a\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x4a\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x4a\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x4a\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x4a\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x4a\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x4a\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x4a\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x4a\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x4a\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x4a\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x4a\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x4a\x42\x68"; } // end switch(key) case 0xa: @@ -21246,247 +21335,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x4d\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x4d\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x4d\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x4d\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x4d\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x4d\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x4d\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x4d\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x4d\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x4d\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x4d\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x4d\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x4d\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x4d\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x4d\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x4d\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x4d\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x4d\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x4d\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x4d\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x4d\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x4d\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x4d\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x4d\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x4d\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x4d\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x4d\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x4d\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x4d\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x4d\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x4d\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x4d\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x4d\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x4d\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x4d\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x4d\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x4d\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x4d\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x4d\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x4d\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x4d\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x4d\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x4d\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x4d\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x4d\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x4d\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x4d\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x4d\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x4d\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x4d\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x4d\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x4d\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x4d\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x4d\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x4d\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x4d\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x4d\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x4d\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x4d\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x4d\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x4d\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x4d\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x4d\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x4d\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x4d\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x4d\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x4d\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x4d\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x4d\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x4d\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x4d\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x4d\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x4d\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x4d\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x4d\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x4d\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x4d\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x4d\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x4d\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x4d\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x4d\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x4d\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x4d\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x4d\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x4d\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x4d\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x4d\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x4d\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x4d\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x4d\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x4d\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x4d\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x4d\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x4d\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x4d\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x4d\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x4d\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x4d\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x4d\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x4d\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x4d\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x4d\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x4d\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x4d\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x4d\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x4d\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x4d\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x4d\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x4d\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x4d\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x4d\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x4d\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x4d\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x4d\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x4d\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x4d\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x4d\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x4d\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x4d\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x4d\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x4d\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x4d\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x4d\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x4d\x42\x68"; } // end switch(key) case 0xb: @@ -21609,247 +21700,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x4e\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x4e\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x4e\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x4e\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x4e\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x4e\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x4e\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x4e\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x4e\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x4e\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x4e\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x4e\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x4e\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x4e\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x4e\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x4e\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x4e\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x4e\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x4e\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x4e\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x4e\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x4e\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x4e\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x4e\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x4e\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x4e\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x4e\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x4e\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x4e\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x4e\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x4e\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x4e\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x4e\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x4e\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x4e\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x4e\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x4e\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x4e\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x4e\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x4e\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x4e\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x4e\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x4e\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x4e\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x4e\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x4e\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x4e\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x4e\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x4e\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x4e\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x4e\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x4e\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x4e\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x4e\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x4e\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x4e\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x4e\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x4e\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x4e\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x4e\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x4e\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x4e\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x4e\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x4e\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x4e\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x4e\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x4e\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x4e\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x4e\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x4e\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x4e\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x4e\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x4e\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x4e\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x4e\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x4e\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x4e\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x4e\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x4e\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x4e\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x4e\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x4e\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x4e\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x4e\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x4e\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x4e\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x4e\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x4e\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x4e\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x4e\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x4e\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x4e\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x4e\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x4e\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x4e\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x4e\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x4e\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x4e\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x4e\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x4e\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x4e\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x4e\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x4e\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x4e\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x4e\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x4e\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x4e\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x4e\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x4e\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x4e\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x4e\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x4e\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x4e\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x4e\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x4e\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x4e\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x4e\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x4e\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x4e\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x4e\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x4e\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x4e\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x4e\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x4e\x42\x68"; } // end switch(key) case 0xc: @@ -21972,247 +22065,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x4b\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x4b\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x4b\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x4b\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x4b\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x4b\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x4b\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x4b\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x4b\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x4b\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x4b\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x4b\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x4b\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x4b\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x4b\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x4b\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x4b\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x4b\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x4b\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x4b\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x4b\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x4b\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x4b\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x4b\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x4b\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x4b\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x4b\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x4b\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x4b\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x4b\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x4b\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x4b\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x4b\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x4b\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x4b\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x4b\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x4b\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x4b\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x4b\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x4b\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x4b\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x4b\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x4b\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x4b\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x4b\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x4b\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x4b\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x4b\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x4b\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x4b\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x4b\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x4b\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x4b\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x4b\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x4b\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x4b\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x4b\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x4b\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x4b\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x4b\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x4b\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x4b\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x4b\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x4b\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x4b\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x4b\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x4b\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x4b\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x4b\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x4b\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x4b\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x4b\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x4b\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x4b\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x4b\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x4b\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x4b\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x4b\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x4b\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x4b\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x4b\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x4b\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x4b\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x4b\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x4b\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x4b\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x4b\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x4b\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x4b\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x4b\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x4b\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x4b\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x4b\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x4b\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x4b\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x4b\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x4b\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x4b\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x4b\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x4b\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x4b\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x4b\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x4b\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x4b\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x4b\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x4b\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x4b\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x4b\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x4b\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x4b\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x4b\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x4b\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x4b\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x4b\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x4b\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x4b\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x4b\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x4b\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x4b\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x4b\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x4b\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x4b\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x4b\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x4b\x42\x68"; } // end switch(key) case 0xd: @@ -22335,247 +22430,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x4c\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x4c\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x4c\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x4c\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x4c\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x4c\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x4c\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x4c\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x4c\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x4c\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x4c\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x4c\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x4c\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x4c\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x4c\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x4c\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x4c\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x4c\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x4c\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x4c\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x4c\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x4c\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x4c\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x4c\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x4c\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x4c\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x4c\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x4c\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x4c\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x4c\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x4c\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x4c\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x4c\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x4c\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x4c\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x4c\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x4c\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x4c\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x4c\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x4c\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x4c\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x4c\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x4c\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x4c\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x4c\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x4c\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x4c\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x4c\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x4c\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x4c\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x4c\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x4c\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x4c\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x4c\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x4c\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x4c\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x4c\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x4c\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x4c\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x4c\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x4c\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x4c\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x4c\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x4c\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x4c\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x4c\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x4c\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x4c\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x4c\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x4c\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x4c\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x4c\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x4c\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x4c\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x4c\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x4c\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x4c\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x4c\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x4c\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x4c\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x4c\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x4c\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x4c\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x4c\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x4c\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x4c\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x4c\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x4c\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x4c\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x4c\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x4c\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x4c\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x4c\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x4c\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x4c\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x4c\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x4c\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x4c\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x4c\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x4c\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x4c\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x4c\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x4c\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x4c\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x4c\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x4c\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x4c\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x4c\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x4c\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x4c\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x4c\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x4c\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x4c\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x4c\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x4c\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x4c\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x4c\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x4c\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x4c\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x4c\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x4c\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x4c\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x4c\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x4c\x42\x68"; } // end switch(key) case 0xe: @@ -22698,247 +22795,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x4f\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x4f\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x4f\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x4f\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x4f\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x4f\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x4f\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x4f\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x4f\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x4f\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x4f\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x4f\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x4f\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x4f\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x4f\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x4f\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x4f\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x4f\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x4f\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x4f\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x4f\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x4f\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x4f\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x4f\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x4f\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x4f\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x4f\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x4f\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x4f\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x4f\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x4f\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x4f\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x4f\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x4f\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x4f\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x4f\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x4f\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x4f\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x4f\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x4f\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x4f\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x4f\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x4f\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x4f\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x4f\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x4f\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x4f\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x4f\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x4f\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x4f\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x4f\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x4f\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x4f\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x4f\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x4f\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x4f\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x4f\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x4f\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x4f\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x4f\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x4f\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x4f\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x4f\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x4f\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x4f\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x4f\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x4f\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x4f\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x4f\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x4f\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x4f\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x4f\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x4f\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x4f\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x4f\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x4f\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x4f\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x4f\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x4f\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x4f\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x4f\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x4f\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x4f\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x4f\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x4f\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x4f\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x4f\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x4f\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x4f\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x4f\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x4f\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x4f\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x4f\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x4f\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x4f\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x4f\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x4f\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x4f\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x4f\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x4f\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x4f\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x4f\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x4f\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x4f\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x4f\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x4f\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x4f\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x4f\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x4f\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x4f\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x4f\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x4f\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x4f\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x4f\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x4f\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x4f\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x4f\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x4f\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x4f\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x4f\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x4f\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x4f\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x4f\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x4f\x42\x68"; } // end switch(key) case 0xf: @@ -23061,247 +23160,249 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { return "\x04\x4b\x74\x50\x74"; case 58: // RIGHT_BRACKET return "\x04\x4b\x74\x50\x75"; - case 59: // UNDERSCORE + case 59: // CIRCUMFLEX + return "\x05\x4b\x74\x50\x43\x4e"; + case 60: // UNDERSCORE return "\x05\x4b\x74\x50\x42\x6a"; - case 60: // GRAVE_ACCENT + case 61: // GRAVE_ACCENT return "\x04\x4b\x74\x50\x76"; - case 61: // WORLD_1 + case 62: // WORLD_1 return "\x04\x4b\x74\x50\x77"; - case 62: // WORLD_2 + case 63: // WORLD_2 return "\x04\x4b\x74\x50\x78"; - case 63: // PARAGRAPH + case 64: // PARAGRAPH return "\x05\x4b\x74\x50\x42\x77"; - case 64: // MASCULINE + case 65: // MASCULINE return "\x05\x4b\x74\x50\x42\x78"; - case 65: // A_GRAVE + case 66: // A_GRAVE return "\x05\x4b\x74\x50\x42\x79"; - case 66: // A_DIAERESIS + case 67: // A_DIAERESIS return "\x05\x4b\x74\x50\x42\x7a"; - case 67: // A_RING + case 68: // A_RING return "\x05\x4b\x74\x50\x42\x30"; - case 68: // AE + case 69: // AE return "\x05\x4b\x74\x50\x42\x31"; - case 69: // C_CEDILLA + case 70: // C_CEDILLA return "\x05\x4b\x74\x50\x42\x32"; - case 70: // E_GRAVE + case 71: // E_GRAVE return "\x05\x4b\x74\x50\x42\x33"; - case 71: // E_ACUTE + case 72: // E_ACUTE return "\x05\x4b\x74\x50\x42\x34"; - case 72: // I_GRAVE + case 73: // I_GRAVE return "\x05\x4b\x74\x50\x42\x35"; - case 73: // N_TILDE + case 74: // N_TILDE return "\x05\x4b\x74\x50\x42\x36"; - case 74: // O_GRAVE + case 75: // O_GRAVE return "\x05\x4b\x74\x50\x42\x37"; - case 75: // O_DIAERESIS + case 76: // O_DIAERESIS return "\x05\x4b\x74\x50\x42\x38"; - case 76: // O_SLASH + case 77: // O_SLASH return "\x05\x4b\x74\x50\x42\x39"; - case 77: // U_GRAVE + case 78: // U_GRAVE return "\x05\x4b\x74\x50\x42\x2e"; - case 78: // U_DIAERESIS + case 79: // U_DIAERESIS return "\x05\x4b\x74\x50\x42\x2d"; - case 79: // S_SHARP + case 80: // S_SHARP return "\x05\x4b\x74\x50\x42\x3a"; - case 80: // CYRILLIC_A + case 81: // CYRILLIC_A return "\x05\x4b\x74\x50\x42\x2b"; - case 81: // CYRILLIC_BE + case 82: // CYRILLIC_BE return "\x05\x4b\x74\x50\x42\x3d"; - case 82: // CYRILLIC_VE + case 83: // CYRILLIC_VE return "\x05\x4b\x74\x50\x42\x5e"; - case 83: // CYRILLIC_GHE + case 84: // CYRILLIC_GHE return "\x05\x4b\x74\x50\x42\x21"; - case 84: // CYRILLIC_DE + case 85: // CYRILLIC_DE return "\x05\x4b\x74\x50\x42\x2f"; - case 85: // CYRILLIC_IE + case 86: // CYRILLIC_IE return "\x05\x4b\x74\x50\x42\x2a"; - case 86: // CYRILLIC_ZHE + case 87: // CYRILLIC_ZHE return "\x05\x4b\x74\x50\x42\x3f"; - case 87: // CYRILLIC_ZE + case 88: // CYRILLIC_ZE return "\x05\x4b\x74\x50\x42\x26"; - case 88: // CYRILLIC_I + case 89: // CYRILLIC_I return "\x05\x4b\x74\x50\x42\x3c"; - case 89: // CYRILLIC_SHORT_I + case 90: // CYRILLIC_SHORT_I return "\x05\x4b\x74\x50\x42\x3e"; - case 90: // CYRILLIC_KA + case 91: // CYRILLIC_KA return "\x05\x4b\x74\x50\x42\x28"; - case 91: // CYRILLIC_EL + case 92: // CYRILLIC_EL return "\x05\x4b\x74\x50\x42\x29"; - case 92: // CYRILLIC_EM + case 93: // CYRILLIC_EM return "\x05\x4b\x74\x50\x42\x5b"; - case 93: // CYRILLIC_EN + case 94: // CYRILLIC_EN return "\x05\x4b\x74\x50\x42\x5d"; - case 94: // CYRILLIC_O + case 95: // CYRILLIC_O return "\x05\x4b\x74\x50\x42\x7b"; - case 95: // CYRILLIC_PE + case 96: // CYRILLIC_PE return "\x05\x4b\x74\x50\x42\x7d"; - case 96: // CYRILLIC_ER + case 97: // CYRILLIC_ER return "\x05\x4b\x74\x50\x42\x40"; - case 97: // CYRILLIC_ES + case 98: // CYRILLIC_ES return "\x05\x4b\x74\x50\x42\x25"; - case 98: // CYRILLIC_TE + case 99: // CYRILLIC_TE return "\x05\x4b\x74\x50\x42\x24"; - case 99: // CYRILLIC_U + case 100: // CYRILLIC_U return "\x05\x4b\x74\x50\x42\x23"; - case 100: // CYRILLIC_EF + case 101: // CYRILLIC_EF return "\x05\x4b\x74\x50\x43\x41"; - case 101: // CYRILLIC_HA + case 102: // CYRILLIC_HA return "\x05\x4b\x74\x50\x43\x42"; - case 102: // CYRILLIC_TSE + case 103: // CYRILLIC_TSE return "\x05\x4b\x74\x50\x43\x43"; - case 103: // CYRILLIC_CHE + case 104: // CYRILLIC_CHE return "\x05\x4b\x74\x50\x43\x44"; - case 104: // CYRILLIC_SHA + case 105: // CYRILLIC_SHA return "\x05\x4b\x74\x50\x43\x45"; - case 105: // CYRILLIC_SHCHA + case 106: // CYRILLIC_SHCHA return "\x05\x4b\x74\x50\x43\x46"; - case 106: // CYRILLIC_HARD_SIGN + case 107: // CYRILLIC_HARD_SIGN return "\x05\x4b\x74\x50\x43\x47"; - case 107: // CYRILLIC_YERU + case 108: // CYRILLIC_YERU return "\x05\x4b\x74\x50\x43\x48"; - case 108: // CYRILLIC_SOFT_SIGN + case 109: // CYRILLIC_SOFT_SIGN return "\x05\x4b\x74\x50\x43\x49"; - case 109: // CYRILLIC_E + case 110: // CYRILLIC_E return "\x05\x4b\x74\x50\x43\x4a"; - case 110: // CYRILLIC_YU + case 111: // CYRILLIC_YU return "\x05\x4b\x74\x50\x43\x4b"; - case 111: // CYRILLIC_YA + case 112: // CYRILLIC_YA return "\x05\x4b\x74\x50\x43\x4c"; - case 112: // CYRILLIC_IO + case 113: // CYRILLIC_IO return "\x05\x4b\x74\x50\x43\x4d"; - case 113: // ESCAPE + case 114: // ESCAPE return "\x04\x4b\x74\x50\x79"; - case 114: // ENTER + case 115: // ENTER return "\x04\x4b\x74\x50\x7a"; - case 115: // TAB + case 116: // TAB return "\x04\x4b\x74\x50\x30"; - case 116: // BACKSPACE + case 117: // BACKSPACE return "\x04\x4b\x74\x50\x31"; - case 117: // INSERT + case 118: // INSERT return "\x04\x4b\x74\x50\x32"; - case 118: // DELETE + case 119: // DELETE return "\x04\x4b\x74\x50\x33"; - case 119: // RIGHT + case 120: // RIGHT return "\x04\x4b\x74\x50\x34"; - case 120: // LEFT + case 121: // LEFT return "\x04\x4b\x74\x50\x35"; - case 121: // DOWN + case 122: // DOWN return "\x04\x4b\x74\x50\x36"; - case 122: // UP + case 123: // UP return "\x04\x4b\x74\x50\x37"; - case 123: // PAGE_UP + case 124: // PAGE_UP return "\x04\x4b\x74\x50\x38"; - case 124: // PAGE_DOWN + case 125: // PAGE_DOWN return "\x04\x4b\x74\x50\x39"; - case 125: // HOME + case 126: // HOME return "\x04\x4b\x74\x50\x2e"; - case 126: // END + case 127: // END return "\x04\x4b\x74\x50\x2d"; - case 127: // CAPS_LOCK + case 128: // CAPS_LOCK return "\x04\x4b\x74\x50\x3a"; - case 128: // SCROLL_LOCK + case 129: // SCROLL_LOCK return "\x04\x4b\x74\x50\x2b"; - case 129: // NUM_LOCK + case 130: // NUM_LOCK return "\x04\x4b\x74\x50\x3d"; - case 130: // PRINT_SCREEN + case 131: // PRINT_SCREEN return "\x04\x4b\x74\x50\x5e"; - case 131: // PAUSE + case 132: // PAUSE return "\x04\x4b\x74\x50\x21"; - case 132: // F1 + case 133: // F1 return "\x04\x4b\x74\x50\x2f"; - case 133: // F2 + case 134: // F2 return "\x04\x4b\x74\x50\x2a"; - case 134: // F3 + case 135: // F3 return "\x04\x4b\x74\x50\x3f"; - case 135: // F4 + case 136: // F4 return "\x04\x4b\x74\x50\x26"; - case 136: // F5 + case 137: // F5 return "\x04\x4b\x74\x50\x3c"; - case 137: // F6 + case 138: // F6 return "\x04\x4b\x74\x50\x3e"; - case 138: // F7 + case 139: // F7 return "\x04\x4b\x74\x50\x28"; - case 139: // F8 + case 140: // F8 return "\x04\x4b\x74\x50\x29"; - case 140: // F9 + case 141: // F9 return "\x04\x4b\x74\x50\x5b"; - case 141: // F10 + case 142: // F10 return "\x04\x4b\x74\x50\x5d"; - case 142: // F11 + case 143: // F11 return "\x04\x4b\x74\x50\x7b"; - case 143: // F12 + case 144: // F12 return "\x04\x4b\x74\x50\x7d"; - case 144: // F13 + case 145: // F13 return "\x04\x4b\x74\x50\x40"; - case 145: // F14 + case 146: // F14 return "\x04\x4b\x74\x50\x25"; - case 146: // F15 + case 147: // F15 return "\x04\x4b\x74\x50\x24"; - case 147: // F16 + case 148: // F16 return "\x04\x4b\x74\x50\x23"; - case 148: // F17 + case 149: // F17 return "\x05\x4b\x74\x50\x42\x41"; - case 149: // F18 + case 150: // F18 return "\x05\x4b\x74\x50\x42\x42"; - case 150: // F19 + case 151: // F19 return "\x05\x4b\x74\x50\x42\x43"; - case 151: // F20 + case 152: // F20 return "\x05\x4b\x74\x50\x42\x44"; - case 152: // F21 + case 153: // F21 return "\x05\x4b\x74\x50\x42\x45"; - case 153: // F22 + case 154: // F22 return "\x05\x4b\x74\x50\x42\x46"; - case 154: // F23 + case 155: // F23 return "\x05\x4b\x74\x50\x42\x47"; - case 155: // F24 + case 156: // F24 return "\x05\x4b\x74\x50\x42\x48"; - case 156: // F25 + case 157: // F25 return "\x05\x4b\x74\x50\x42\x49"; - case 157: // KP_0 + case 158: // KP_0 return "\x05\x4b\x74\x50\x42\x4a"; - case 158: // KP_1 + case 159: // KP_1 return "\x05\x4b\x74\x50\x42\x4b"; - case 159: // KP_2 + case 160: // KP_2 return "\x05\x4b\x74\x50\x42\x4c"; - case 160: // KP_3 + case 161: // KP_3 return "\x05\x4b\x74\x50\x42\x4d"; - case 161: // KP_4 + case 162: // KP_4 return "\x05\x4b\x74\x50\x42\x4e"; - case 162: // KP_5 + case 163: // KP_5 return "\x05\x4b\x74\x50\x42\x4f"; - case 163: // KP_6 + case 164: // KP_6 return "\x05\x4b\x74\x50\x42\x50"; - case 164: // KP_7 + case 165: // KP_7 return "\x05\x4b\x74\x50\x42\x51"; - case 165: // KP_8 + case 166: // KP_8 return "\x05\x4b\x74\x50\x42\x52"; - case 166: // KP_9 + case 167: // KP_9 return "\x05\x4b\x74\x50\x42\x53"; - case 167: // KP_DECIMAL + case 168: // KP_DECIMAL return "\x05\x4b\x74\x50\x42\x54"; - case 168: // KP_DIVIDE + case 169: // KP_DIVIDE return "\x05\x4b\x74\x50\x42\x55"; - case 169: // KP_MULTIPLY + case 170: // KP_MULTIPLY return "\x05\x4b\x74\x50\x42\x56"; - case 170: // KP_SUBTRACT + case 171: // KP_SUBTRACT return "\x05\x4b\x74\x50\x42\x57"; - case 171: // KP_ADD + case 172: // KP_ADD return "\x05\x4b\x74\x50\x42\x58"; - case 172: // KP_ENTER + case 173: // KP_ENTER return "\x05\x4b\x74\x50\x42\x59"; - case 173: // KP_EQUAL + case 174: // KP_EQUAL return "\x05\x4b\x74\x50\x42\x5a"; - case 175: // LEFT_CONTROL + case 176: // LEFT_CONTROL return "\x05\x4b\x74\x50\x42\x62"; - case 176: // LEFT_ALT + case 177: // LEFT_ALT return "\x05\x4b\x74\x50\x42\x63"; - case 177: // LEFT_SUPER + case 178: // LEFT_SUPER return "\x05\x4b\x74\x50\x42\x64"; - case 179: // RIGHT_CONTROL + case 180: // RIGHT_CONTROL return "\x05\x4b\x74\x50\x42\x66"; - case 180: // RIGHT_ALT + case 181: // RIGHT_ALT return "\x05\x4b\x74\x50\x42\x67"; - case 181: // RIGHT_SUPER + case 182: // RIGHT_SUPER return "\x05\x4b\x74\x50\x42\x68"; } // end switch(key) } // end switch(mods) diff --git a/kitty/keys.py b/kitty/keys.py index 88fae002b..3d9632a13 100644 --- a/kitty/keys.py +++ b/kitty/keys.py @@ -207,8 +207,8 @@ UN_SHIFTED_PRINTABLE.update(pmap( " ',-./;=" )) UN_SHIFTED_PRINTABLE.update(pmap( - 'LEFT_BRACKET BACKSLASH RIGHT_BRACKET GRAVE_ACCENT UNDERSCORE', - "[\\]`_" + 'LEFT_BRACKET BACKSLASH RIGHT_BRACKET CIRCUMFLEX GRAVE_ACCENT UNDERSCORE', + "[\\]^`_" )) SHIFTED_PRINTABLE = UN_SHIFTED_PRINTABLE.copy() SHIFTED_PRINTABLE.update({