diff --git a/AnalogSense.js b/AnalogSense.js index e26ce1b..66bf85a 100644 --- a/AnalogSense.js +++ b/AnalogSense.js @@ -294,6 +294,15 @@ const layout_keychron_k2_he = [ 6, 16, KEY_LCTRL, KEY_LMETA, KEY_LALT, KEY_NONE, KEY_NONE, KEY_NONE, KEY_SPACE, KEY_NONE, KEY_NONE, KEY_RALT, KEY_FN, KEY_RCTRL, KEY_ARROW_LEFT, KEY_ARROW_DOWN, KEY_ARROW_RIGHT, KEY_NONE, ]; +const layout_lemokey_p1_he = [ 6, 15, + KEY_ESCAPE, KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6, KEY_F7, KEY_F8, KEY_F9, KEY_F10, KEY_F11, KEY_F12, KEY_DEL, KEY_NONE /* mute */, + KEY_BACKQUOTE, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_0, KEY_MINUS, KEY_EQUALS, KEY_BACKSPACE, KEY_HOME, + KEY_TAB, KEY_Q, KEY_W, KEY_E, KEY_R, KEY_T, KEY_Y, KEY_U, KEY_I, KEY_O, KEY_P, KEY_BRACKET_LEFT, KEY_BRACKET_RIGHT, KEY_BACKSLASH, KEY_PAGE_UP, + KEY_CAPS_LOCK, KEY_A, KEY_S, KEY_D, KEY_F, KEY_G, KEY_H, KEY_J, KEY_K, KEY_L, KEY_SEMICOLON, KEY_QUOTE, KEY_ENTER, KEY_PAGE_DOWN, KEY_NONE, + KEY_LSHIFT, KEY_NONE, KEY_Z, KEY_X, KEY_C, KEY_V, KEY_B, KEY_N, KEY_M, KEY_COMMA, KEY_PERIOD, KEY_NONE, KEY_SLASH, KEY_RSHIFT, KEY_ARROW_UP, + KEY_LCTRL, KEY_LMETA, KEY_LALT, KEY_NONE, KEY_NONE, KEY_NONE, KEY_SPACE, KEY_NONE, KEY_NONE, KEY_RMETA, KEY_FN, KEY_RCTRL, KEY_ARROW_LEFT, KEY_ARROW_DOWN, KEY_ARROW_RIGHT, +]; + const layout_get_rows = (layout) => layout[0]; const layout_get_cols = (layout) => layout[1]; const layout_get_size = (layout) => layout_get_rows(layout) * layout_get_cols(layout); @@ -556,6 +565,7 @@ class AsProviderKeychron extends AsProvider filters.push({ vendorId: 0x3434, usagePage: 0xFF60, usage: 0x61, productId: 0x0E20 }); // Keychron K2 HE ANSI filters.push({ vendorId: 0x3434, usagePage: 0xFF60, usage: 0x61, productId: 0x0E21 }); // Keychron K2 HE ISO filters.push({ vendorId: 0x3434, usagePage: 0xFF60, usage: 0x61, productId: 0x0E22 }); // Keychron K2 HE JIS + filters.push({ vendorId: 0x362D, usagePage: 0xFF60, usage: 0x61, productId: 0x0610 }); // Lemokey P1 HE ANSI } startListening(handler) @@ -584,6 +594,10 @@ class AsProviderKeychron extends AsProvider { this.layout = layout_keychron_q5_he; } + else if (this.dev.productId == 0x0610) + { + this.layout = layout_lemokey_p1_he; + } else { this.layout = layout_keychron_k2_he; diff --git a/README.md b/README.md index 118f2d1..7cfa7cd 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ JavaScript API for analog keyboard input. - Keychron Q3 HEP, F - Keychron Q5 HEP, F - Keychron K2 HEP, F +- Keychron Lemokey P1 HEP, F - Madlions MAD60HEP - Madlions MAD68HEP