From bbaac044df8bf8883c3b3134e476315263ab89e3 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Sun, 4 Sep 2022 20:44:28 +0000 Subject: [PATCH] Move Razer constant data to a cpp file to fix multiple definition warnings --- Controllers/RazerController/RazerDevices.cpp | 8134 +++++++++++++++++ Controllers/RazerController/RazerDevices.h | 8144 +----------------- OpenRGB.pro | 1 + 3 files changed, 8155 insertions(+), 8124 deletions(-) create mode 100644 Controllers/RazerController/RazerDevices.cpp diff --git a/Controllers/RazerController/RazerDevices.cpp b/Controllers/RazerController/RazerDevices.cpp new file mode 100644 index 000000000..7e467d7b5 --- /dev/null +++ b/Controllers/RazerController/RazerDevices.cpp @@ -0,0 +1,8134 @@ +/*-----------------------------------------*\ +| RazerDevices.cpp | +| | +| Razer device table static data | +| | +| Adam Honse (CalcProgrammer1) 9/4/2021 | +\*-----------------------------------------*/ + +#include "RazerDevices.h" + +/*-------------------------------------------------------------------------*\ +| KEYMAPS | +\*-------------------------------------------------------------------------*/ +#define BLACKWIDOW_CHROMA_KEYMAP_SIZE (sizeof(blackwidow_chroma_keymap) / sizeof(blackwidow_chroma_keymap[0])) + +static const razer_key blackwidow_chroma_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 0, 20, "Logo" }, + { 0, 1, 0, "Key: M1" }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 0, "Key: M2" }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 2, 18, KEY_EN_NUMPAD_7 }, + { 0, 2, 19, KEY_EN_NUMPAD_8 }, + { 0, 2, 20, KEY_EN_NUMPAD_9 }, + { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 0, "Key: M3" }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 18, KEY_EN_NUMPAD_4 }, + { 0, 3, 19, KEY_EN_NUMPAD_5 }, + { 0, 3, 20, KEY_EN_NUMPAD_6 }, + { 0, 4, 0, "Key: M4" }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_NUMPAD_1 }, + { 0, 4, 19, KEY_EN_NUMPAD_2 }, + { 0, 4, 20, KEY_EN_NUMPAD_3 }, + { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 0, "Key: M5" }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, + { 0, 5, 19, KEY_EN_NUMPAD_0 }, + { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, +}; + +#define BLACKWIDOW_CHROMA_TE_KEYMAP_SIZE (sizeof(blackwidow_chroma_te_keymap) / sizeof(blackwidow_chroma_te_keymap[0])) + +static const razer_key blackwidow_chroma_te_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 0, 20, "Logo" }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 7, KEY_EN_SPACE }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, +}; + +#define BLACKWIDOW_V3_TKL_KEYMAP_SIZE (sizeof(blackwidow_v3_tkl_keymap) / sizeof(blackwidow_v3_tkl_keymap[0])) + +static const razer_key blackwidow_v3_tkl_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, +}; + +#define BLACKWIDOW_V3_MINI_KEYMAP_SIZE (sizeof(blackwidow_v3_mini_keymap) / sizeof(blackwidow_v3_mini_keymap[0])) + +static const razer_key blackwidow_v3_mini_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 0, KEY_EN_ESCAPE }, + { 0, 0, 1, KEY_EN_1 }, + { 0, 0, 2, KEY_EN_2 }, + { 0, 0, 3, KEY_EN_3 }, + { 0, 0, 4, KEY_EN_4 }, + { 0, 0, 5, KEY_EN_5 }, + { 0, 0, 6, KEY_EN_6 }, + { 0, 0, 7, KEY_EN_7 }, + { 0, 0, 8, KEY_EN_8 }, + { 0, 0, 9, KEY_EN_9 }, + { 0, 0, 10, KEY_EN_0 }, + { 0, 0, 11, KEY_EN_MINUS }, + { 0, 0, 12, KEY_EN_EQUALS }, + { 0, 0, 14, KEY_EN_BACKSPACE }, + { 0, 0, 15, KEY_EN_DELETE }, + { 0, 1, 0, KEY_EN_TAB }, + { 0, 1, 1, KEY_EN_Q }, + { 0, 1, 2, KEY_EN_W }, + { 0, 1, 3, KEY_EN_E }, + { 0, 1, 4, KEY_EN_R }, + { 0, 1, 5, KEY_EN_T }, + { 0, 1, 6, KEY_EN_Y }, + { 0, 1, 7, KEY_EN_U }, + { 0, 1, 8, KEY_EN_I }, + { 0, 1, 9, KEY_EN_O }, + { 0, 1, 10, KEY_EN_P }, + { 0, 1, 11, KEY_EN_LEFT_BRACKET }, + { 0, 1, 12, KEY_EN_RIGHT_BRACKET }, + { 0, 1, 13, KEY_EN_ANSI_BACK_SLASH }, + { 0, 1, 15, KEY_EN_PAGE_UP }, + { 0, 2, 0, KEY_EN_CAPS_LOCK }, + { 0, 2, 1, KEY_EN_A }, + { 0, 2, 2, KEY_EN_S }, + { 0, 2, 3, KEY_EN_D }, + { 0, 2, 4, KEY_EN_F }, + { 0, 2, 5, KEY_EN_G }, + { 0, 2, 6, KEY_EN_H }, + { 0, 2, 7, KEY_EN_J }, + { 0, 2, 8, KEY_EN_K }, + { 0, 2, 9, KEY_EN_L }, + { 0, 2, 10, KEY_EN_SEMICOLON }, + { 0, 2, 11, KEY_EN_QUOTE }, + { 0, 2, 12, KEY_EN_POUND }, + { 0, 2, 13, KEY_EN_ANSI_ENTER }, + { 0, 2, 15, KEY_EN_PAGE_DOWN }, + { 0, 3, 0, KEY_EN_LEFT_SHIFT }, + { 0, 3, 1, KEY_EN_ISO_BACK_SLASH }, + { 0, 3, 2, KEY_EN_Z }, + { 0, 3, 3, KEY_EN_X }, + { 0, 3, 4, KEY_EN_C }, + { 0, 3, 5, KEY_EN_V }, + { 0, 3, 6, KEY_EN_B }, + { 0, 3, 7, KEY_EN_N }, + { 0, 3, 8, KEY_EN_M }, + { 0, 3, 9, KEY_EN_COMMA }, + { 0, 3, 10, KEY_EN_PERIOD }, + { 0, 3, 11, KEY_EN_FORWARD_SLASH }, + { 0, 3, 13, KEY_EN_RIGHT_SHIFT }, + { 0, 3, 14, KEY_EN_UP_ARROW }, + { 0, 3, 15, KEY_EN_INSERT }, + { 0, 4, 0, KEY_EN_LEFT_CONTROL }, + { 0, 4, 1, KEY_EN_LEFT_WINDOWS }, + { 0, 4, 2, KEY_EN_LEFT_ALT }, + { 0, 4, 6, KEY_EN_SPACE }, + { 0, 4, 7, "Logo" }, + { 0, 4, 10, KEY_EN_RIGHT_ALT }, + { 0, 4, 11, KEY_EN_RIGHT_FUNCTION }, + { 0, 4, 12, KEY_EN_RIGHT_CONTROL }, + { 0, 4, 13, KEY_EN_LEFT_ARROW }, + { 0, 4, 14, KEY_EN_DOWN_ARROW }, + { 0, 4, 15, KEY_EN_RIGHT_ARROW }, +}; + +#define BOOK_13_2020_KEYMAP_SIZE (sizeof(book_13_2020_keymap) / sizeof(book_13_2020_keymap[0])) + +static const razer_key book_13_2020_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 2, KEY_EN_F1 }, + { 0, 0, 3, KEY_EN_F2 }, + { 0, 0, 4, KEY_EN_F3 }, + { 0, 0, 5, KEY_EN_F4 }, + { 0, 0, 6, KEY_EN_F5 }, + { 0, 0, 7, KEY_EN_F6 }, + { 0, 0, 8, KEY_EN_F7 }, + { 0, 0, 9, KEY_EN_F8 }, + { 0, 0, 10, KEY_EN_F9 }, + { 0, 0, 11, KEY_EN_F10 }, + { 0, 0, 12, KEY_EN_F11 }, + { 0, 0, 13, KEY_EN_F12 }, + { 0, 0, 14, KEY_EN_DELETE }, + { 0, 0, 15, "Key: Power" }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 15, KEY_EN_BACKSPACE }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 15, KEY_EN_ANSI_BACK_SLASH }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 15, KEY_EN_ANSI_ENTER }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 15, KEY_EN_RIGHT_SHIFT }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_FUNCTION }, + { 0, 5, 3, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 5, KEY_EN_LEFT_ALT }, + { 0, 5, 9, KEY_EN_RIGHT_ALT }, + { 0, 5, 11, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 12, KEY_EN_LEFT_ARROW }, + { 0, 5, 13, KEY_EN_UP_ARROW }, + { 0, 5, 14, KEY_EN_RIGHT_ARROW }, + { 0, 5, 15, KEY_EN_DOWN_ARROW }, +}; + +#define BLADE_14_2021_KEYMAP_SIZE (sizeof(blade_14_2021_keymap) / sizeof(blade_14_2021_keymap[0])) + +static const razer_key blade_14_2021_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 2, KEY_EN_F1 }, + { 0, 0, 3, KEY_EN_F2 }, + { 0, 0, 4, KEY_EN_F3 }, + { 0, 0, 5, KEY_EN_F4 }, + { 0, 0, 6, KEY_EN_F5 }, + { 0, 0, 7, KEY_EN_F6 }, + { 0, 0, 8, KEY_EN_F7 }, + { 0, 0, 9, KEY_EN_F8 }, + { 0, 0, 10, KEY_EN_F9 }, + { 0, 0, 11, KEY_EN_F10 }, + { 0, 0, 12, KEY_EN_F11 }, + { 0, 0, 13, KEY_EN_F12 }, + { 0, 0, 14, KEY_EN_DELETE }, + { 0, 0, 15, "Key: Power" }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 15, KEY_EN_BACKSPACE }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 15, KEY_EN_ANSI_BACK_SLASH }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 15, KEY_EN_ANSI_ENTER }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 15, KEY_EN_RIGHT_SHIFT }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_FUNCTION }, + { 0, 5, 3, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 5, KEY_EN_LEFT_ALT }, + { 0, 5, 9, KEY_EN_RIGHT_ALT }, + { 0, 5, 11, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 12, KEY_EN_LEFT_ARROW }, + { 0, 5, 13, KEY_EN_UP_ARROW }, + { 0, 5, 14, KEY_EN_RIGHT_ARROW }, + { 0, 5, 15, KEY_EN_DOWN_ARROW }, +}; + +#define BLADE_17_PRO_2021_KEYMAP_SIZE (sizeof(blade_17_pro_2021_keymap) / sizeof(blade_17_pro_2021_keymap[0])) + +static const razer_key blade_17_pro_2021_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 2, KEY_EN_F1 }, + { 0, 0, 3, KEY_EN_F2 }, + { 0, 0, 4, KEY_EN_F3 }, + { 0, 0, 5, KEY_EN_F4 }, + { 0, 0, 6, KEY_EN_F5 }, + { 0, 0, 7, KEY_EN_F6 }, + { 0, 0, 8, KEY_EN_F7 }, + { 0, 0, 9, KEY_EN_F8 }, + { 0, 0, 10, KEY_EN_F9 }, + { 0, 0, 11, KEY_EN_F10 }, + { 0, 0, 12, KEY_EN_F11 }, + { 0, 0, 13, KEY_EN_F12 }, + { 0, 0, 14, KEY_EN_INSERT }, + { 0, 0, 15, KEY_EN_DELETE }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 15, KEY_EN_BACKSPACE }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_ENTER }, + { 0, 2, 15, KEY_EN_ANSI_BACK_SLASH }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 15, KEY_EN_RIGHT_SHIFT }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_FUNCTION }, + { 0, 5, 3, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 5, KEY_EN_LEFT_ALT }, + { 0, 5, 9, KEY_EN_RIGHT_ALT }, + { 0, 5, 10, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 11, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 12, KEY_EN_LEFT_ARROW }, + { 0, 5, 13, KEY_EN_UP_ARROW }, + { 0, 5, 14, KEY_EN_RIGHT_ARROW }, + { 0, 5, 15, KEY_EN_DOWN_ARROW }, +}; + +#define BLADE_PRO_2017_KEYMAP_SIZE (sizeof(blade_pro_2017_keymap) / sizeof(blade_pro_2017_keymap[0])) + +static const razer_key blade_pro_2017_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 2, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_INSERT }, + { 0, 0, 17, KEY_EN_DELETE }, + { 0, 0, 19, KEY_EN_MEDIA_PREVIOUS }, + { 0, 0, 20, KEY_EN_MEDIA_NEXT }, + { 0, 0, 21, "Key: Media Volume" }, + { 0, 0, 23, KEY_EN_MEDIA_PLAY_PAUSE }, + { 0, 0, 24, KEY_EN_MEDIA_MUTE }, + { 0, 1, 2, KEY_EN_BACK_TICK }, + { 0, 1, 3, KEY_EN_1 }, + { 0, 1, 4, KEY_EN_2 }, + { 0, 1, 5, KEY_EN_3 }, + { 0, 1, 6, KEY_EN_4 }, + { 0, 1, 7, KEY_EN_5 }, + { 0, 1, 8, KEY_EN_6 }, + { 0, 1, 9, KEY_EN_7 }, + { 0, 1, 10, KEY_EN_8 }, + { 0, 1, 11, KEY_EN_9 }, + { 0, 1, 12, KEY_EN_0 }, + { 0, 1, 13, KEY_EN_MINUS }, + { 0, 1, 14, KEY_EN_EQUALS }, + { 0, 1, 15, KEY_EN_BACKSPACE }, + { 0, 2, 2, KEY_EN_TAB }, + { 0, 2, 4, KEY_EN_Q }, + { 0, 2, 5, KEY_EN_W }, + { 0, 2, 6, KEY_EN_E }, + { 0, 2, 7, KEY_EN_R }, + { 0, 2, 8, KEY_EN_T }, + { 0, 2, 9, KEY_EN_Y }, + { 0, 2, 10, KEY_EN_U }, + { 0, 2, 11, KEY_EN_I }, + { 0, 2, 12, KEY_EN_O }, + { 0, 2, 13, KEY_EN_P }, + { 0, 2, 14, KEY_EN_LEFT_BRACKET }, + { 0, 2, 15, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 17, KEY_EN_ANSI_BACK_SLASH }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 4, KEY_EN_A }, + { 0, 3, 5, KEY_EN_S }, + { 0, 3, 6, KEY_EN_D }, + { 0, 3, 7, KEY_EN_F }, + { 0, 3, 8, KEY_EN_G }, + { 0, 3, 9, KEY_EN_H }, + { 0, 3, 10, KEY_EN_J }, + { 0, 3, 11, KEY_EN_K }, + { 0, 3, 12, KEY_EN_L }, + { 0, 3, 13, KEY_EN_SEMICOLON }, + { 0, 3, 14, KEY_EN_QUOTE }, + { 0, 3, 18, KEY_EN_ANSI_ENTER }, + { 0, 4, 0, KEY_EN_LEFT_SHIFT }, + { 0, 4, 4, KEY_EN_Z }, + { 0, 4, 5, KEY_EN_X }, + { 0, 4, 6, KEY_EN_C }, + { 0, 4, 7, KEY_EN_V }, + { 0, 4, 8, KEY_EN_B }, + { 0, 4, 9, KEY_EN_N }, + { 0, 4, 10, KEY_EN_M }, + { 0, 4, 11, KEY_EN_COMMA }, + { 0, 4, 12, KEY_EN_PERIOD }, + { 0, 4, 13, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_RIGHT_SHIFT }, + { 0, 5, 0, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_FUNCTION }, + { 0, 5, 3, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 5, KEY_EN_LEFT_ALT }, + { 0, 5, 7, KEY_EN_SPACE }, + { 0, 5, 10, KEY_EN_RIGHT_ALT }, + { 0, 5, 12, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 13, KEY_EN_LEFT_ARROW }, + { 0, 5, 14, KEY_EN_DOWN_ARROW }, + { 0, 5, 15, KEY_EN_RIGHT_ARROW }, + { 0, 5, 16, KEY_EN_RIGHT_FUNCTION }, +}; + +#define BLADE_STEALTH_2016_KEYMAP_SIZE (sizeof(blade_stealth_2016_keymap) / sizeof(blade_stealth_2016_keymap[0])) + +static const razer_key blade_stealth_2016_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 2, KEY_EN_F1 }, + { 0, 0, 3, KEY_EN_F2 }, + { 0, 0, 4, KEY_EN_F3 }, + { 0, 0, 5, KEY_EN_F4 }, + { 0, 0, 6, KEY_EN_F5 }, + { 0, 0, 7, KEY_EN_F6 }, + { 0, 0, 8, KEY_EN_F7 }, + { 0, 0, 9, KEY_EN_F8 }, + { 0, 0, 10, KEY_EN_F9 }, + { 0, 0, 11, KEY_EN_F10 }, + { 0, 0, 12, KEY_EN_F11 }, + { 0, 0, 13, KEY_EN_F12 }, + { 0, 0, 14, KEY_EN_INSERT }, + { 0, 0, 15, KEY_EN_DELETE }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_BACKSPACE }, + { 0, 2, 0, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_ANSI_BACK_SLASH }, + { 0, 3, 0, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 15, KEY_EN_ANSI_ENTER }, + { 0, 4, 0, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_Z }, + { 0, 4, 3, KEY_EN_X }, + { 0, 4, 4, KEY_EN_C }, + { 0, 4, 5, KEY_EN_V }, + { 0, 4, 6, KEY_EN_B }, + { 0, 4, 7, KEY_EN_N }, + { 0, 4, 8, KEY_EN_M }, + { 0, 4, 9, KEY_EN_COMMA }, + { 0, 4, 10, KEY_EN_PERIOD }, + { 0, 4, 11, KEY_EN_FORWARD_SLASH }, + { 0, 4, 12, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 13, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 5, 0, KEY_EN_LEFT_CONTROL }, + { 0, 5, 1, KEY_EN_LEFT_FUNCTION }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 5, KEY_EN_SPACE }, + { 0, 5, 6, KEY_EN_SPACE }, + { 0, 5, 8, KEY_EN_SPACE }, + { 0, 5, 9, KEY_EN_RIGHT_ALT }, + { 0, 5, 10, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 11, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 12, KEY_EN_LEFT_ARROW }, + { 0, 5, 13, KEY_EN_UP_ARROW }, + { 0, 5, 14, KEY_EN_RIGHT_ARROW }, + { 0, 5, 15, KEY_EN_DOWN_ARROW }, +}; + +#define CYNOSA_CHROMA_KEYMAP_SIZE (sizeof(cynosa_chroma_keymap) / sizeof(cynosa_chroma_keymap[0])) + +static const razer_key cynosa_chroma_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 0, 20, "Logo" }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 2, 18, KEY_EN_NUMPAD_7 }, + { 0, 2, 19, KEY_EN_NUMPAD_8 }, + { 0, 2, 20, KEY_EN_NUMPAD_9 }, + { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 18, KEY_EN_NUMPAD_4 }, + { 0, 3, 19, KEY_EN_NUMPAD_5 }, + { 0, 3, 20, KEY_EN_NUMPAD_6 }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_NUMPAD_1 }, + { 0, 4, 19, KEY_EN_NUMPAD_2 }, + { 0, 4, 20, KEY_EN_NUMPAD_3 }, + { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 7, KEY_EN_SPACE }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, + { 0, 5, 19, KEY_EN_NUMPAD_0 }, + { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, +}; + +#define CYNOSA_CHROMA_V2_KEYMAP_SIZE (sizeof(cynosa_chroma_v2_keymap) / sizeof(cynosa_chroma_v2_keymap[0])) + +static const razer_key cynosa_chroma_v2_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 0, 20, "Logo" }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 2, 18, KEY_EN_NUMPAD_7 }, + { 0, 2, 19, KEY_EN_NUMPAD_8 }, + { 0, 2, 20, KEY_EN_NUMPAD_9 }, + { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 18, KEY_EN_NUMPAD_4 }, + { 0, 3, 19, KEY_EN_NUMPAD_5 }, + { 0, 3, 20, KEY_EN_NUMPAD_6 }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_NUMPAD_1 }, + { 0, 4, 19, KEY_EN_NUMPAD_2 }, + { 0, 4, 20, KEY_EN_NUMPAD_3 }, + { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 7, KEY_EN_SPACE }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, + { 0, 5, 19, KEY_EN_NUMPAD_0 }, + { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, +}; + +#define HUNTSMAN_ELITE_KEYMAP_SIZE (sizeof(huntsman_elite_keymap) / sizeof(huntsman_elite_keymap[0])) + +static const razer_key huntsman_elite_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 0, 18, KEY_EN_MEDIA_PREVIOUS }, + { 0, 0, 19, KEY_EN_MEDIA_PLAY_PAUSE }, + { 0, 0, 20, KEY_EN_MEDIA_NEXT }, + { 0, 0, 21, KEY_EN_MEDIA_MUTE }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 2, 18, KEY_EN_NUMPAD_7 }, + { 0, 2, 19, KEY_EN_NUMPAD_8 }, + { 0, 2, 20, KEY_EN_NUMPAD_9 }, + { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 18, KEY_EN_NUMPAD_4 }, + { 0, 3, 19, KEY_EN_NUMPAD_5 }, + { 0, 3, 20, KEY_EN_NUMPAD_6 }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_NUMPAD_1 }, + { 0, 4, 19, KEY_EN_NUMPAD_2 }, + { 0, 4, 20, KEY_EN_NUMPAD_3 }, + { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 7, KEY_EN_SPACE }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, + { 0, 5, 19, KEY_EN_NUMPAD_0 }, + { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, +}; + +#define HUNTSMAN_V2_ANALOG_KEYMAP_SIZE (sizeof(huntsman_v2_analog_keymap) / sizeof(huntsman_v2_analog_keymap[0])) + +static const razer_key huntsman_v2_analog_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 0, 18, KEY_EN_MEDIA_PREVIOUS }, + { 0, 0, 19, KEY_EN_MEDIA_PLAY_PAUSE }, + { 0, 0, 20, KEY_EN_MEDIA_NEXT }, + { 0, 0, 21, KEY_EN_MEDIA_MUTE }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 2, 18, KEY_EN_NUMPAD_7 }, + { 0, 2, 19, KEY_EN_NUMPAD_8 }, + { 0, 2, 20, KEY_EN_NUMPAD_9 }, + { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 18, KEY_EN_NUMPAD_4 }, + { 0, 3, 19, KEY_EN_NUMPAD_5 }, + { 0, 3, 20, KEY_EN_NUMPAD_6 }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_NUMPAD_1 }, + { 0, 4, 19, KEY_EN_NUMPAD_2 }, + { 0, 4, 20, KEY_EN_NUMPAD_3 }, + { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 7, KEY_EN_SPACE }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, + { 0, 5, 19, KEY_EN_NUMPAD_0 }, + { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, +}; + +#define HUNTSMAN_KEYMAP_SIZE (sizeof(huntsman_keymap) / sizeof(huntsman_keymap[0])) + +static const razer_key huntsman_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 2, 18, KEY_EN_NUMPAD_7 }, + { 0, 2, 19, KEY_EN_NUMPAD_8 }, + { 0, 2, 20, KEY_EN_NUMPAD_9 }, + { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 18, KEY_EN_NUMPAD_4 }, + { 0, 3, 19, KEY_EN_NUMPAD_5 }, + { 0, 3, 20, KEY_EN_NUMPAD_6 }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_NUMPAD_1 }, + { 0, 4, 19, KEY_EN_NUMPAD_2 }, + { 0, 4, 20, KEY_EN_NUMPAD_3 }, + { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 7, KEY_EN_SPACE }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, + { 0, 5, 19, KEY_EN_NUMPAD_0 }, + { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, +}; + +#define HUNTSMAN_MINI_KEYMAP_SIZE (sizeof(huntsman_mini_keymap) / sizeof(huntsman_mini_keymap[0])) + +static const razer_key huntsman_mini_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 2, KEY_EN_1 }, + { 0, 0, 3, KEY_EN_2 }, + { 0, 0, 4, KEY_EN_3 }, + { 0, 0, 5, KEY_EN_4 }, + { 0, 0, 6, KEY_EN_5 }, + { 0, 0, 7, KEY_EN_6 }, + { 0, 0, 8, KEY_EN_7 }, + { 0, 0, 9, KEY_EN_8 }, + { 0, 0, 10, KEY_EN_9 }, + { 0, 0, 11, KEY_EN_0 }, + { 0, 0, 12, KEY_EN_MINUS }, + { 0, 0, 13, KEY_EN_EQUALS }, + { 0, 0, 14, KEY_EN_BACKSPACE }, + { 0, 1, 1, KEY_EN_TAB }, + { 0, 1, 2, KEY_EN_Q }, + { 0, 1, 3, KEY_EN_W }, + { 0, 1, 4, KEY_EN_E }, + { 0, 1, 5, KEY_EN_R }, + { 0, 1, 6, KEY_EN_T }, + { 0, 1, 7, KEY_EN_Y }, + { 0, 1, 8, KEY_EN_U }, + { 0, 1, 9, KEY_EN_I }, + { 0, 1, 10, KEY_EN_O }, + { 0, 1, 11, KEY_EN_P }, + { 0, 1, 12, KEY_EN_LEFT_BRACKET }, + { 0, 1, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 1, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 1, KEY_EN_CAPS_LOCK }, + { 0, 2, 2, KEY_EN_A }, + { 0, 2, 3, KEY_EN_S }, + { 0, 2, 4, KEY_EN_D }, + { 0, 2, 5, KEY_EN_F }, + { 0, 2, 6, KEY_EN_G }, + { 0, 2, 7, KEY_EN_H }, + { 0, 2, 8, KEY_EN_J }, + { 0, 2, 9, KEY_EN_K }, + { 0, 2, 10, KEY_EN_L }, + { 0, 2, 11, KEY_EN_SEMICOLON }, + { 0, 2, 12, KEY_EN_QUOTE }, + { 0, 2, 13, KEY_EN_POUND }, + { 0, 2, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 1, KEY_EN_LEFT_SHIFT }, + { 0, 3, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 3, 3, KEY_EN_Z }, + { 0, 3, 4, KEY_EN_X }, + { 0, 3, 5, KEY_EN_C }, + { 0, 3, 6, KEY_EN_V }, + { 0, 3, 7, KEY_EN_B }, + { 0, 3, 8, KEY_EN_N }, + { 0, 3, 9, KEY_EN_M }, + { 0, 3, 10, KEY_EN_COMMA }, + { 0, 3, 11, KEY_EN_PERIOD }, + { 0, 3, 12, KEY_EN_FORWARD_SLASH }, + { 0, 3, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 1, KEY_EN_LEFT_CONTROL }, + { 0, 4, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 4, 3, KEY_EN_LEFT_ALT }, + { 0, 4, 7, KEY_EN_SPACE }, + { 0, 4, 11, KEY_EN_RIGHT_ALT }, + { 0, 4, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 4, 13, KEY_EN_MENU }, + { 0, 4, 14, KEY_EN_RIGHT_CONTROL }, +}; + +#define HUNTSMAN_TE_KEYMAP_SIZE (sizeof(huntsman_te_keymap) / sizeof(huntsman_te_keymap[0])) + +static const razer_key huntsman_te_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 7, KEY_EN_SPACE }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, +}; + +#define HUNTSMAN_V2_KEYMAP_SIZE (sizeof(huntsman_v2_keymap) / sizeof(huntsman_v2_keymap[0])) + +static const razer_key huntsman_v2_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 0, KEY_EN_ESCAPE }, + { 0, 0, 2, KEY_EN_F1 }, + { 0, 0, 3, KEY_EN_F2 }, + { 0, 0, 4, KEY_EN_F3 }, + { 0, 0, 5, KEY_EN_F4 }, + { 0, 0, 6, KEY_EN_F5 }, + { 0, 0, 7, KEY_EN_F6 }, + { 0, 0, 8, KEY_EN_F7 }, + { 0, 0, 9, KEY_EN_F8 }, + { 0, 0, 10, KEY_EN_F9 }, + { 0, 0, 11, KEY_EN_F10 }, + { 0, 0, 12, KEY_EN_F11 }, + { 0, 0, 13, KEY_EN_F12 }, + { 0, 0, 14, KEY_EN_PRINT_SCREEN }, + { 0, 0, 15, KEY_EN_SCROLL_LOCK }, + { 0, 0, 16, KEY_EN_PAUSE_BREAK }, + { 0, 0, 17, KEY_EN_MEDIA_PREVIOUS }, + { 0, 0, 18, KEY_EN_MEDIA_PLAY_PAUSE }, + { 0, 0, 19, KEY_EN_MEDIA_NEXT }, + { 0, 0, 20, KEY_EN_MEDIA_MUTE }, + { 0, 1, 0, KEY_EN_BACK_TICK }, + { 0, 1, 1, KEY_EN_1 }, + { 0, 1, 2, KEY_EN_2 }, + { 0, 1, 3, KEY_EN_3 }, + { 0, 1, 4, KEY_EN_4 }, + { 0, 1, 5, KEY_EN_5 }, + { 0, 1, 6, KEY_EN_6 }, + { 0, 1, 7, KEY_EN_7 }, + { 0, 1, 8, KEY_EN_8 }, + { 0, 1, 9, KEY_EN_9 }, + { 0, 1, 10, KEY_EN_0 }, + { 0, 1, 11, KEY_EN_MINUS }, + { 0, 1, 12, KEY_EN_EQUALS }, + { 0, 1, 13, KEY_EN_BACKSPACE }, + { 0, 1, 14, KEY_EN_INSERT }, + { 0, 1, 15, KEY_EN_HOME }, + { 0, 1, 16, KEY_EN_PAGE_UP }, + { 0, 1, 17, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 18, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 19, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 20, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 0, KEY_EN_TAB }, + { 0, 2, 1, KEY_EN_Q }, + { 0, 2, 2, KEY_EN_W }, + { 0, 2, 3, KEY_EN_E }, + { 0, 2, 4, KEY_EN_R }, + { 0, 2, 5, KEY_EN_T }, + { 0, 2, 6, KEY_EN_Y }, + { 0, 2, 7, KEY_EN_U }, + { 0, 2, 8, KEY_EN_I }, + { 0, 2, 9, KEY_EN_O }, + { 0, 2, 10, KEY_EN_P }, + { 0, 2, 11, KEY_EN_LEFT_BRACKET }, + { 0, 2, 12, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 13, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 14, KEY_EN_DELETE }, + { 0, 2, 15, KEY_EN_END }, + { 0, 2, 16, KEY_EN_PAGE_DOWN }, + { 0, 2, 17, KEY_EN_NUMPAD_7 }, + { 0, 2, 18, KEY_EN_NUMPAD_8 }, + { 0, 2, 19, KEY_EN_NUMPAD_9 }, + { 0, 2, 20, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 0, KEY_EN_CAPS_LOCK }, + { 0, 3, 1, KEY_EN_A }, + { 0, 3, 2, KEY_EN_S }, + { 0, 3, 3, KEY_EN_D }, + { 0, 3, 4, KEY_EN_F }, + { 0, 3, 5, KEY_EN_G }, + { 0, 3, 6, KEY_EN_H }, + { 0, 3, 7, KEY_EN_J }, + { 0, 3, 8, KEY_EN_K }, + { 0, 3, 9, KEY_EN_L }, + { 0, 3, 10, KEY_EN_SEMICOLON }, + { 0, 3, 11, KEY_EN_QUOTE }, + { 0, 3, 12, KEY_EN_POUND }, + { 0, 3, 13, KEY_EN_ANSI_ENTER }, + { 0, 3, 17, KEY_EN_NUMPAD_4 }, + { 0, 3, 18, KEY_EN_NUMPAD_5 }, + { 0, 3, 19, KEY_EN_NUMPAD_6 }, + { 0, 4, 0, KEY_EN_LEFT_SHIFT }, + { 0, 4, 1, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 2, KEY_EN_Z }, + { 0, 4, 3, KEY_EN_X }, + { 0, 4, 4, KEY_EN_C }, + { 0, 4, 5, KEY_EN_V }, + { 0, 4, 6, KEY_EN_B }, + { 0, 4, 7, KEY_EN_N }, + { 0, 4, 8, KEY_EN_M }, + { 0, 4, 9, KEY_EN_COMMA }, + { 0, 4, 10, KEY_EN_PERIOD }, + { 0, 4, 11, KEY_EN_FORWARD_SLASH }, + { 0, 4, 13, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 15, KEY_EN_UP_ARROW }, + { 0, 4, 17, KEY_EN_NUMPAD_1 }, + { 0, 4, 18, KEY_EN_NUMPAD_2 }, + { 0, 4, 19, KEY_EN_NUMPAD_3 }, + { 0, 4, 20, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 0, KEY_EN_LEFT_CONTROL }, + { 0, 5, 1, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 2, KEY_EN_LEFT_ALT }, + { 0, 5, 6, KEY_EN_SPACE }, + { 0, 5, 10, KEY_EN_RIGHT_ALT }, + { 0, 5, 11, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 12, KEY_EN_MENU }, + { 0, 5, 13, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 14, KEY_EN_LEFT_ARROW }, + { 0, 5, 15, KEY_EN_DOWN_ARROW }, + { 0, 5, 16, KEY_EN_RIGHT_ARROW }, + { 0, 5, 18, KEY_EN_NUMPAD_0 }, + { 0, 5, 19, KEY_EN_NUMPAD_PERIOD }, +}; + +#define HUNTSMAN_V2_TKL_KEYMAP_SIZE (sizeof(huntsman_v2_tkl_keymap) / sizeof(huntsman_v2_tkl_keymap[0])) + +static const razer_key huntsman_v2_tkl_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 0, KEY_EN_ESCAPE }, + { 0, 0, 2, KEY_EN_F1 }, + { 0, 0, 3, KEY_EN_F2 }, + { 0, 0, 4, KEY_EN_F3 }, + { 0, 0, 5, KEY_EN_F4 }, + { 0, 0, 6, KEY_EN_F5 }, + { 0, 0, 7, KEY_EN_F6 }, + { 0, 0, 8, KEY_EN_F7 }, + { 0, 0, 9, KEY_EN_F8 }, + { 0, 0, 10, KEY_EN_F9 }, + { 0, 0, 11, KEY_EN_F10 }, + { 0, 0, 12, KEY_EN_F11 }, + { 0, 0, 13, KEY_EN_F12 }, + { 0, 0, 14, KEY_EN_PRINT_SCREEN }, + { 0, 0, 15, KEY_EN_SCROLL_LOCK }, + { 0, 0, 16, KEY_EN_PAUSE_BREAK }, + { 0, 1, 0, KEY_EN_BACK_TICK }, + { 0, 1, 1, KEY_EN_1 }, + { 0, 1, 2, KEY_EN_2 }, + { 0, 1, 3, KEY_EN_3 }, + { 0, 1, 4, KEY_EN_4 }, + { 0, 1, 5, KEY_EN_5 }, + { 0, 1, 6, KEY_EN_6 }, + { 0, 1, 7, KEY_EN_7 }, + { 0, 1, 8, KEY_EN_8 }, + { 0, 1, 9, KEY_EN_9 }, + { 0, 1, 10, KEY_EN_0 }, + { 0, 1, 11, KEY_EN_MINUS }, + { 0, 1, 12, KEY_EN_EQUALS }, + { 0, 1, 13, KEY_EN_BACKSPACE }, + { 0, 1, 14, KEY_EN_INSERT }, + { 0, 1, 15, KEY_EN_HOME }, + { 0, 1, 16, KEY_EN_PAGE_UP }, + { 0, 2, 0, KEY_EN_TAB }, + { 0, 2, 1, KEY_EN_Q }, + { 0, 2, 2, KEY_EN_W }, + { 0, 2, 3, KEY_EN_E }, + { 0, 2, 4, KEY_EN_R }, + { 0, 2, 5, KEY_EN_T }, + { 0, 2, 6, KEY_EN_Y }, + { 0, 2, 7, KEY_EN_U }, + { 0, 2, 8, KEY_EN_I }, + { 0, 2, 9, KEY_EN_O }, + { 0, 2, 10, KEY_EN_P }, + { 0, 2, 11, KEY_EN_LEFT_BRACKET }, + { 0, 2, 12, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 13, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 14, KEY_EN_DELETE }, + { 0, 2, 15, KEY_EN_END }, + { 0, 2, 16, KEY_EN_PAGE_DOWN }, + { 0, 3, 0, KEY_EN_CAPS_LOCK }, + { 0, 3, 1, KEY_EN_A }, + { 0, 3, 2, KEY_EN_S }, + { 0, 3, 3, KEY_EN_D }, + { 0, 3, 4, KEY_EN_F }, + { 0, 3, 5, KEY_EN_G }, + { 0, 3, 6, KEY_EN_H }, + { 0, 3, 7, KEY_EN_J }, + { 0, 3, 8, KEY_EN_K }, + { 0, 3, 9, KEY_EN_L }, + { 0, 3, 10, KEY_EN_SEMICOLON }, + { 0, 3, 11, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_ANSI_ENTER }, + { 0, 4, 0, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_Z }, + { 0, 4, 3, KEY_EN_X }, + { 0, 4, 4, KEY_EN_C }, + { 0, 4, 5, KEY_EN_V }, + { 0, 4, 6, KEY_EN_B }, + { 0, 4, 7, KEY_EN_N }, + { 0, 4, 8, KEY_EN_M }, + { 0, 4, 9, KEY_EN_COMMA }, + { 0, 4, 10, KEY_EN_PERIOD }, + { 0, 4, 11, KEY_EN_FORWARD_SLASH }, + { 0, 4, 13, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 15, KEY_EN_UP_ARROW }, + { 0, 5, 0, KEY_EN_LEFT_CONTROL }, + { 0, 5, 1, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 2, KEY_EN_LEFT_ALT }, + { 0, 5, 6, KEY_EN_SPACE }, + { 0, 5, 10, KEY_EN_RIGHT_ALT }, + { 0, 5, 11, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 12, KEY_EN_MENU }, + { 0, 5, 13, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 14, KEY_EN_LEFT_ARROW }, + { 0, 5, 15, KEY_EN_DOWN_ARROW }, + { 0, 5, 16, KEY_EN_RIGHT_ARROW }, +}; + +#define BLACKWIDOW_ELITE_KEYMAP_SIZE (sizeof(blackwidow_elite_keymap) / sizeof(blackwidow_elite_keymap[0])) + +static const razer_key blackwidow_elite_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 0, 18, KEY_EN_MEDIA_PREVIOUS }, + { 0, 0, 19, KEY_EN_MEDIA_PLAY_PAUSE }, + { 0, 0, 20, KEY_EN_MEDIA_NEXT }, + { 0, 0, 21, KEY_EN_MEDIA_MUTE }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 2, 18, KEY_EN_NUMPAD_7 }, + { 0, 2, 19, KEY_EN_NUMPAD_8 }, + { 0, 2, 20, KEY_EN_NUMPAD_9 }, + { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 18, KEY_EN_NUMPAD_4 }, + { 0, 3, 19, KEY_EN_NUMPAD_5 }, + { 0, 3, 20, KEY_EN_NUMPAD_6 }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_NUMPAD_1 }, + { 0, 4, 19, KEY_EN_NUMPAD_2 }, + { 0, 4, 20, KEY_EN_NUMPAD_3 }, + { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 6, KEY_EN_SPACE }, + { 0, 5, 10, KEY_EN_RIGHT_ALT }, + { 0, 5, 11, "Logo" }, + { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, + { 0, 5, 19, KEY_EN_NUMPAD_0 }, + { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, +}; + +#define BLACKWIDOW_CHROMA_V2_KEYMAP_SIZE (sizeof(blackwidow_chroma_v2_keymap) / sizeof(blackwidow_chroma_v2_keymap[0])) + +static const razer_key blackwidow_chroma_v2_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 0, 20, "Logo" }, + { 0, 1, 0, "Key: M1" }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 0, "Key: M2" }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 2, 18, KEY_EN_NUMPAD_7 }, + { 0, 2, 19, KEY_EN_NUMPAD_8 }, + { 0, 2, 20, KEY_EN_NUMPAD_9 }, + { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 0, "Key: M3" }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 18, KEY_EN_NUMPAD_4 }, + { 0, 3, 19, KEY_EN_NUMPAD_5 }, + { 0, 3, 20, KEY_EN_NUMPAD_6 }, + { 0, 4, 0, "Key: M4" }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_NUMPAD_1 }, + { 0, 4, 19, KEY_EN_NUMPAD_2 }, + { 0, 4, 20, KEY_EN_NUMPAD_3 }, + { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 0, "Key: M5" }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, + { 0, 5, 19, KEY_EN_NUMPAD_0 }, + { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, +}; + +#define BLACKWIDOW_2019_KEYMAP_SIZE (sizeof(blackwidow_2019_keymap) / sizeof(blackwidow_2019_keymap[0])) + +static const razer_key blackwidow_2019_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 2, 18, KEY_EN_NUMPAD_7 }, + { 0, 2, 19, KEY_EN_NUMPAD_8 }, + { 0, 2, 20, KEY_EN_NUMPAD_9 }, + { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 18, KEY_EN_NUMPAD_4 }, + { 0, 3, 19, KEY_EN_NUMPAD_5 }, + { 0, 3, 20, KEY_EN_NUMPAD_6 }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_NUMPAD_1 }, + { 0, 4, 19, KEY_EN_NUMPAD_2 }, + { 0, 4, 20, KEY_EN_NUMPAD_3 }, + { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 6, KEY_EN_SPACE }, + { 0, 5, 10, KEY_EN_RIGHT_ALT }, + { 0, 5, 11, "Logo" }, + { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, + { 0, 5, 19, KEY_EN_NUMPAD_0 }, + { 0, 5, 20, "Key: Number Pad ," }, +}; + +#define BLACKWIDOW_V3_PRO_KEYMAP_SIZE (sizeof(blackwidow_v3_pro_keymap) / sizeof(blackwidow_v3_pro_keymap[0])) + +static const razer_key blackwidow_v3_pro_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 0, KEY_EN_ESCAPE }, + { 0, 0, 2, KEY_EN_F1 }, + { 0, 0, 3, KEY_EN_F2 }, + { 0, 0, 4, KEY_EN_F3 }, + { 0, 0, 5, KEY_EN_F4 }, + { 0, 0, 6, KEY_EN_F5 }, + { 0, 0, 7, KEY_EN_F6 }, + { 0, 0, 8, KEY_EN_F7 }, + { 0, 0, 9, KEY_EN_F8 }, + { 0, 0, 10, KEY_EN_F9 }, + { 0, 0, 11, KEY_EN_F10 }, + { 0, 0, 12, KEY_EN_F11 }, + { 0, 0, 13, KEY_EN_F12 }, + { 0, 0, 14, KEY_EN_PRINT_SCREEN }, + { 0, 0, 15, KEY_EN_SCROLL_LOCK }, + { 0, 0, 16, KEY_EN_PAUSE_BREAK }, + { 0, 0, 18, KEY_EN_MEDIA_PREVIOUS }, + { 0, 0, 19, KEY_EN_MEDIA_PLAY_PAUSE }, + { 0, 0, 20, KEY_EN_MEDIA_NEXT }, + { 0, 0, 21, KEY_EN_MEDIA_MUTE }, + { 0, 1, 0, KEY_EN_BACK_TICK }, + { 0, 1, 1, KEY_EN_1 }, + { 0, 1, 2, KEY_EN_2 }, + { 0, 1, 3, KEY_EN_3 }, + { 0, 1, 4, KEY_EN_4 }, + { 0, 1, 5, KEY_EN_5 }, + { 0, 1, 6, KEY_EN_6 }, + { 0, 1, 7, KEY_EN_7 }, + { 0, 1, 8, KEY_EN_8 }, + { 0, 1, 9, KEY_EN_9 }, + { 0, 1, 10, KEY_EN_0 }, + { 0, 1, 11, KEY_EN_MINUS }, + { 0, 1, 12, KEY_EN_EQUALS }, + { 0, 1, 13, KEY_EN_BACKSPACE }, + { 0, 1, 14, KEY_EN_INSERT }, + { 0, 1, 15, KEY_EN_HOME }, + { 0, 1, 16, KEY_EN_PAGE_UP }, + { 0, 1, 17, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 18, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 19, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 20, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 0, KEY_EN_TAB }, + { 0, 2, 1, KEY_EN_Q }, + { 0, 2, 2, KEY_EN_W }, + { 0, 2, 3, KEY_EN_E }, + { 0, 2, 4, KEY_EN_R }, + { 0, 2, 5, KEY_EN_T }, + { 0, 2, 6, KEY_EN_Y }, + { 0, 2, 7, KEY_EN_U }, + { 0, 2, 8, KEY_EN_I }, + { 0, 2, 9, KEY_EN_O }, + { 0, 2, 10, KEY_EN_P }, + { 0, 2, 11, KEY_EN_LEFT_BRACKET }, + { 0, 2, 12, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 13, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 14, KEY_EN_DELETE }, + { 0, 2, 15, KEY_EN_END }, + { 0, 2, 16, KEY_EN_PAGE_DOWN }, + { 0, 2, 17, KEY_EN_NUMPAD_7 }, + { 0, 2, 18, KEY_EN_NUMPAD_8 }, + { 0, 2, 19, KEY_EN_NUMPAD_9 }, + { 0, 2, 20, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 0, KEY_EN_CAPS_LOCK }, + { 0, 3, 1, KEY_EN_A }, + { 0, 3, 2, KEY_EN_S }, + { 0, 3, 3, KEY_EN_D }, + { 0, 3, 4, KEY_EN_F }, + { 0, 3, 5, KEY_EN_G }, + { 0, 3, 6, KEY_EN_H }, + { 0, 3, 7, KEY_EN_J }, + { 0, 3, 8, KEY_EN_K }, + { 0, 3, 9, KEY_EN_L }, + { 0, 3, 10, KEY_EN_SEMICOLON }, + { 0, 3, 11, KEY_EN_QUOTE }, + { 0, 3, 12, KEY_EN_POUND }, + { 0, 3, 13, KEY_EN_ANSI_ENTER }, + { 0, 3, 14, "Logo" }, + { 0, 3, 17, KEY_EN_NUMPAD_4 }, + { 0, 3, 18, KEY_EN_NUMPAD_5 }, + { 0, 3, 19, KEY_EN_NUMPAD_6 }, + { 0, 4, 0, KEY_EN_LEFT_SHIFT }, + { 0, 4, 1, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 2, KEY_EN_Z }, + { 0, 4, 3, KEY_EN_X }, + { 0, 4, 4, KEY_EN_C }, + { 0, 4, 5, KEY_EN_V }, + { 0, 4, 6, KEY_EN_B }, + { 0, 4, 7, KEY_EN_N }, + { 0, 4, 8, KEY_EN_M }, + { 0, 4, 9, KEY_EN_COMMA }, + { 0, 4, 10, KEY_EN_PERIOD }, + { 0, 4, 11, KEY_EN_FORWARD_SLASH }, + { 0, 4, 13, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 15, KEY_EN_UP_ARROW }, + { 0, 4, 17, KEY_EN_NUMPAD_1 }, + { 0, 4, 18, KEY_EN_NUMPAD_2 }, + { 0, 4, 19, KEY_EN_NUMPAD_3 }, + { 0, 4, 20, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 0, KEY_EN_LEFT_CONTROL }, + { 0, 5, 1, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 2, KEY_EN_LEFT_ALT }, + { 0, 5, 6, KEY_EN_SPACE }, + { 0, 5, 10, KEY_EN_RIGHT_ALT }, + { 0, 5, 11, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 12, KEY_EN_MENU }, + { 0, 5, 13, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 14, KEY_EN_LEFT_ARROW }, + { 0, 5, 15, KEY_EN_DOWN_ARROW }, + { 0, 5, 16, KEY_EN_RIGHT_ARROW }, + { 0, 5, 18, KEY_EN_NUMPAD_0 }, + { 0, 5, 19, "Key: Number Pad ," }, +}; + +#define ORNATA_CHROMA_KEYMAP_SIZE (sizeof(ornata_chroma_keymap) / sizeof(ornata_chroma_keymap[0])) + +static const razer_key ornata_chroma_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 1, KEY_EN_ESCAPE }, + { 0, 0, 3, KEY_EN_F1 }, + { 0, 0, 4, KEY_EN_F2 }, + { 0, 0, 5, KEY_EN_F3 }, + { 0, 0, 6, KEY_EN_F4 }, + { 0, 0, 7, KEY_EN_F5 }, + { 0, 0, 8, KEY_EN_F6 }, + { 0, 0, 9, KEY_EN_F7 }, + { 0, 0, 10, KEY_EN_F8 }, + { 0, 0, 11, KEY_EN_F9 }, + { 0, 0, 12, KEY_EN_F10 }, + { 0, 0, 13, KEY_EN_F11 }, + { 0, 0, 14, KEY_EN_F12 }, + { 0, 0, 15, KEY_EN_PRINT_SCREEN }, + { 0, 0, 16, KEY_EN_SCROLL_LOCK }, + { 0, 0, 17, KEY_EN_PAUSE_BREAK }, + { 0, 1, 1, KEY_EN_BACK_TICK }, + { 0, 1, 2, KEY_EN_1 }, + { 0, 1, 3, KEY_EN_2 }, + { 0, 1, 4, KEY_EN_3 }, + { 0, 1, 5, KEY_EN_4 }, + { 0, 1, 6, KEY_EN_5 }, + { 0, 1, 7, KEY_EN_6 }, + { 0, 1, 8, KEY_EN_7 }, + { 0, 1, 9, KEY_EN_8 }, + { 0, 1, 10, KEY_EN_9 }, + { 0, 1, 11, KEY_EN_0 }, + { 0, 1, 12, KEY_EN_MINUS }, + { 0, 1, 13, KEY_EN_EQUALS }, + { 0, 1, 14, KEY_EN_BACKSPACE }, + { 0, 1, 15, KEY_EN_INSERT }, + { 0, 1, 16, KEY_EN_HOME }, + { 0, 1, 17, KEY_EN_PAGE_UP }, + { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, + { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, + { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, + { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, + { 0, 2, 1, KEY_EN_TAB }, + { 0, 2, 2, KEY_EN_Q }, + { 0, 2, 3, KEY_EN_W }, + { 0, 2, 4, KEY_EN_E }, + { 0, 2, 5, KEY_EN_R }, + { 0, 2, 6, KEY_EN_T }, + { 0, 2, 7, KEY_EN_Y }, + { 0, 2, 8, KEY_EN_U }, + { 0, 2, 9, KEY_EN_I }, + { 0, 2, 10, KEY_EN_O }, + { 0, 2, 11, KEY_EN_P }, + { 0, 2, 12, KEY_EN_LEFT_BRACKET }, + { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, + { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, + { 0, 2, 15, KEY_EN_DELETE }, + { 0, 2, 16, KEY_EN_END }, + { 0, 2, 17, KEY_EN_PAGE_DOWN }, + { 0, 2, 18, KEY_EN_NUMPAD_7 }, + { 0, 2, 19, KEY_EN_NUMPAD_8 }, + { 0, 2, 20, KEY_EN_NUMPAD_9 }, + { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, + { 0, 3, 1, KEY_EN_CAPS_LOCK }, + { 0, 3, 2, KEY_EN_A }, + { 0, 3, 3, KEY_EN_S }, + { 0, 3, 4, KEY_EN_D }, + { 0, 3, 5, KEY_EN_F }, + { 0, 3, 6, KEY_EN_G }, + { 0, 3, 7, KEY_EN_H }, + { 0, 3, 8, KEY_EN_J }, + { 0, 3, 9, KEY_EN_K }, + { 0, 3, 10, KEY_EN_L }, + { 0, 3, 11, KEY_EN_SEMICOLON }, + { 0, 3, 12, KEY_EN_QUOTE }, + { 0, 3, 13, KEY_EN_POUND }, + { 0, 3, 14, KEY_EN_ANSI_ENTER }, + { 0, 3, 18, KEY_EN_NUMPAD_4 }, + { 0, 3, 19, KEY_EN_NUMPAD_5 }, + { 0, 3, 20, KEY_EN_NUMPAD_6 }, + { 0, 4, 1, KEY_EN_LEFT_SHIFT }, + { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, + { 0, 4, 3, KEY_EN_Z }, + { 0, 4, 4, KEY_EN_X }, + { 0, 4, 5, KEY_EN_C }, + { 0, 4, 6, KEY_EN_V }, + { 0, 4, 7, KEY_EN_B }, + { 0, 4, 8, KEY_EN_N }, + { 0, 4, 9, KEY_EN_M }, + { 0, 4, 10, KEY_EN_COMMA }, + { 0, 4, 11, KEY_EN_PERIOD }, + { 0, 4, 12, KEY_EN_FORWARD_SLASH }, + { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, + { 0, 4, 16, KEY_EN_UP_ARROW }, + { 0, 4, 18, KEY_EN_NUMPAD_1 }, + { 0, 4, 19, KEY_EN_NUMPAD_2 }, + { 0, 4, 20, KEY_EN_NUMPAD_3 }, + { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, + { 0, 5, 1, KEY_EN_LEFT_CONTROL }, + { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, + { 0, 5, 3, KEY_EN_LEFT_ALT }, + { 0, 5, 7, KEY_EN_SPACE }, + { 0, 5, 11, KEY_EN_RIGHT_ALT }, + { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, + { 0, 5, 13, KEY_EN_MENU }, + { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, + { 0, 5, 15, KEY_EN_LEFT_ARROW }, + { 0, 5, 16, KEY_EN_DOWN_ARROW }, + { 0, 5, 17, KEY_EN_RIGHT_ARROW }, + { 0, 5, 19, KEY_EN_NUMPAD_0 }, + { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, +}; + +#define TARTARUS_V2_KEYMAP_SIZE (sizeof(tartarus_v2_keymap) / sizeof(tartarus_v2_keymap[0])) + +static const razer_key tartarus_v2_keymap[] = +{ + /*---------------------------------------------------------------------*\ + | Zone, Row, Column, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 0, "Key: 01" }, + { 0, 0, 1, "Key: 02" }, + { 0, 0, 2, "Key: 03" }, + { 0, 0, 3, "Key: 04" }, + { 0, 0, 4, "Key: 05" }, + { 0, 1, 0, "Key: 06" }, + { 0, 1, 1, "Key: 07" }, + { 0, 1, 2, "Key: 08" }, + { 0, 1, 3, "Key: 09" }, + { 0, 1, 4, "Key: 10" }, + { 0, 2, 0, "Key: 11" }, + { 0, 2, 1, "Key: 12" }, + { 0, 2, 2, "Key: 13" }, + { 0, 2, 3, "Key: 14" }, + { 0, 2, 4, "Key: 15" }, + { 0, 3, 0, "Key: 16" }, + { 0, 3, 1, "Key: 17" }, + { 0, 3, 2, "Key: 18" }, + { 0, 3, 3, "Key: 19" }, + { 0, 3, 4, "Key: Scroll Wheel" }, + { 0, 3, 5, "Key: 20" }, +}; + +/*-------------------------------------------------------------------------*\ +| KEYBOARDS | +\*-------------------------------------------------------------------------*/ + +/*-------------------------------------------------------------*\ +| Razer Blackwidow 2019 1532:0241 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_2019_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_2019_device = +{ + "Razer BlackWidow 2019", + RAZER_BLACKWIDOW_2019_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_2019_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_2019_keymap, + BLACKWIDOW_2019_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer BlackWidow Chroma | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_chroma_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_chroma_device = +{ + "Razer BlackWidow Chroma", + RAZER_BLACKWIDOW_CHROMA_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_chroma_keymap, + BLACKWIDOW_CHROMA_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow Chroma Overwatch 1532:0211 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_chroma_overwatch_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_chroma_overwatch_device = +{ + "Razer Blackwidow Chroma Overwatch", + RAZER_BLACKWIDOW_OVERWATCH_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_chroma_overwatch_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow V3 1532:024E | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_v3_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_v3_device = +{ + "Razer Blackwidow V3", + RAZER_BLACKWIDOW_V3_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_v3_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer BlackWidow Chroma Tournament Edition | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_chroma_te_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_chroma_te_device = +{ + "Razer BlackWidow Chroma Tournament Edition", + RAZER_BLACKWIDOW_CHROMA_TE_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_chroma_te_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_chroma_te_keymap, + BLACKWIDOW_CHROMA_TE_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow Elite 1532:0228 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_elite_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_elite_device = +{ + "Razer BlackWidow Elite", + RAZER_BLACKWIDOW_ELITE_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_elite_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_elite_keymap, + BLACKWIDOW_ELITE_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow Chroma V2 1532:0221 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_chroma_v2_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_chroma_v2_device = +{ + "Razer BlackWidow Chroma V2", + RAZER_BLACKWIDOW_CHROMA_V2_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_chroma_v2_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_chroma_v2_keymap, + BLACKWIDOW_CHROMA_V2_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow V3 Pro (Wired) 1532:025A | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_v3_pro_wired_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_v3_pro_wired_device = +{ + "Razer BlackWidow V3 Pro (Wired)", + RAZER_BLACKWIDOW_V3_PRO_WIRED_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_v3_pro_wired_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_v3_pro_keymap, + BLACKWIDOW_V3_PRO_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow V3 Pro (Bluetooth) 1532:025B | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_v3_pro_bluetooth_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_v3_pro_bluetooth_device = +{ + "Razer BlackWidow V3 Pro (Bluetooth)", + RAZER_BLACKWIDOW_V3_PRO_BLUETOOTH_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_v3_pro_bluetooth_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_v3_pro_keymap, + BLACKWIDOW_V3_PRO_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow V3 Pro (Wireless) 1532:025C | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_v3_pro_wireless_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_v3_pro_wireless_device = +{ + "Razer BlackWidow V3 Pro (Wireless)", + RAZER_BLACKWIDOW_V3_PRO_WIRELESS_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_v3_pro_wireless_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_v3_pro_keymap, + BLACKWIDOW_V3_PRO_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow V3 TKL 1532:0A24 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 18 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_v3_tkl_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 18 +}; + +static const razer_device blackwidow_v3_tkl_device = +{ + "Razer BlackWidow V3 TKL", + RAZER_BLACKWIDOW_V3_TKL_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 18, + { + &blackwidow_v3_tkl_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_v3_tkl_keymap, + BLACKWIDOW_V3_TKL_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow V3 Mini (Wired) 1532:0258 | +| | +| Zone "Keyboard" | +| Matrix | +| 5 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_v3_mini_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 5, + 16 +}; + +static const razer_device blackwidow_v3_mini_wired_device = +{ + "Razer BlackWidow V3 Mini (Wired)", + RAZER_BLACKWIDOW_V3_MINI_WIRED_PID, + DEVICE_TYPE_KEYBOARD, + true, + 5, + 16, + { + &blackwidow_v3_mini_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_v3_mini_keymap, + BLACKWIDOW_V3_MINI_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow V3 Mini (Wireless) 1532:0271 | +| | +| Zone "Keyboard" | +| Matrix | +| 5 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_device blackwidow_v3_mini_wireless_device = +{ + "Razer BlackWidow V3 Mini (Wireless)", + RAZER_BLACKWIDOW_V3_MINI_WIRELESS_PID, + DEVICE_TYPE_KEYBOARD, + true, + 5, + 16, + { + &blackwidow_v3_mini_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_v3_mini_keymap, + BLACKWIDOW_V3_MINI_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blackwidow X Chroma 1532:0216 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_x_chroma_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_x_chroma_device = +{ + "Razer BlackWidow X Chroma", + RAZER_BLACKWIDOW_X_CHROMA_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_x_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer BlackWidow X Chroma Tournament Edition 1532:021A | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blackwidow_x_chroma_te_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device blackwidow_x_chroma_te_device = +{ + "Razer BlackWidow X Chroma Tournament Edition", + RAZER_BLACKWIDOW_X_CHROMA_TE_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &blackwidow_x_chroma_te_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blackwidow_chroma_te_keymap, + BLACKWIDOW_CHROMA_TE_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Cynosa Chroma 1532:022A | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone cynosa_chroma_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device cynosa_chroma_device = +{ + "Razer Cynosa Chroma", + RAZER_CYNOSA_CHROMA_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &cynosa_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + cynosa_chroma_keymap, + CYNOSA_CHROMA_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Cynosa v2 1532:025E | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone cynosa_v2_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device cynosa_v2_device = +{ + "Razer Cynosa v2", + RAZER_CYNOSA_V2_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &cynosa_v2_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + cynosa_chroma_v2_keymap, + CYNOSA_CHROMA_V2_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Cynosa Lite 1532:023F | +| | +| Zone "Keyboard" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone cynosa_lite_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device cynosa_lite_device = +{ + "Razer Cynosa Lite", + RAZER_CYNOSA_LITE_PID, + DEVICE_TYPE_KEYBOARD, + true, + 1, + 1, + { + &cynosa_lite_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Ornata Chroma | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone ornata_chroma_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device ornata_chroma_device = +{ + "Razer Ornata Chroma", + RAZER_ORNATA_CHROMA_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &ornata_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + ornata_chroma_keymap, + ORNATA_CHROMA_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer DeathStalker Chroma | +| | +| Zone "Keyboard" | +| Linear | +| 12 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone deathstalker_chroma_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_LINEAR, + 1, + 12 +}; + +static const razer_device deathstalker_chroma_device = +{ + "Razer DeathStalker Chroma", + RAZER_DEATHSTALKER_CHROMA_PID, + DEVICE_TYPE_KEYBOARD, + true, + 1, + 12, + { + &deathstalker_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Huntsman 1532:0227 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone huntsman_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device huntsman_device = +{ + "Razer Huntsman", + RAZER_HUNTSMAN_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &huntsman_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + huntsman_keymap, + HUNTSMAN_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Huntsman Elite | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +| | +| Zone "Underglow" | +| Matrix | +| 3 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone huntsman_elite_keyboard_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_zone huntsman_elite_underglow_zone = +{ + "Underglow", + ZONE_TYPE_MATRIX, + 3, + 22 +}; + +static const razer_device huntsman_elite_device = +{ + "Razer Huntsman Elite", + RAZER_HUNTSMAN_ELITE_PID, + DEVICE_TYPE_KEYBOARD, + true, + 9, + 22, + { + &huntsman_elite_keyboard_zone, + &huntsman_elite_underglow_zone, + NULL, + NULL, + NULL, + NULL + }, + huntsman_elite_keymap, + HUNTSMAN_ELITE_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Huntsman V2 Analog | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +| | +| Zone "Underglow" | +| Matrix | +| 3 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone huntsman_v2_analog_keyboard_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_zone huntsman_v2_analog_underglow_zone = +{ + "Underglow", + ZONE_TYPE_MATRIX, + 3, + 22 +}; + +static const razer_device huntsman_v2_analog_device = +{ + "Razer Huntsman V2 Analog", + RAZER_HUNTSMAN_V2_ANALOG_PID, + DEVICE_TYPE_KEYBOARD, + true, + 9, + 22, + { + &huntsman_v2_analog_keyboard_zone, + &huntsman_v2_analog_underglow_zone, + NULL, + NULL, + NULL, + NULL + }, + huntsman_v2_analog_keymap, + HUNTSMAN_V2_ANALOG_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Huntsman Mini 1532:0257 | +| | +| Zone "Keyboard" | +| Matrix | +| 5 Rows, 15 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone huntsman_mini_keyboard_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 5, + 15 +}; + +static const razer_device huntsman_mini_device = +{ + "Razer Huntsman Mini", + RAZER_HUNTSMAN_MINI_PID, + DEVICE_TYPE_KEYBOARD, + true, + 5, + 15, + { + &huntsman_mini_keyboard_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + huntsman_mini_keymap, + HUNTSMAN_MINI_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Huntsman TE 1532:0243 | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 18 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone huntsman_te_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 18 +}; + +static const razer_device huntsman_te_device = +{ + "Razer Huntsman Tournament Edition", + RAZER_HUNTSMAN_TE_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 18, + { + &huntsman_te_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + huntsman_te_keymap, + HUNTSMAN_TE_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Huntsman V2 TKL 1532:026B | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 17 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone huntsman_v2_tkl_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 17 +}; + +static const razer_device huntsman_v2_tkl_device = +{ + "Razer Huntsman V2 TKL", + RAZER_HUNTSMAN_V2_TKL_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 17, + { + &huntsman_v2_tkl_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + huntsman_v2_tkl_keymap, + HUNTSMAN_V2_TKL_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Huntsman V2 1532:026C | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 22 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone huntsman_v2_keyboard_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 22 +}; + +static const razer_device huntsman_v2_device = +{ + "Razer Huntsman V2", + RAZER_HUNTSMAN_V2_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 22, + { + &huntsman_v2_keyboard_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + huntsman_v2_keymap, + HUNTSMAN_V2_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------------------*\ +| LAPTOPS | +\*-------------------------------------------------------------------------*/ + +/*-------------------------------------------------------------*\ +| Razer Blade (2016) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_2016_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_2016_device = +{ + "Razer Blade (2016)", + RAZER_BLADE_2016_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_2016_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade (Late 2016) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_late_2016_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_late_2016_device = +{ + "Razer Blade (Late 2016)", + RAZER_BLADE_LATE_2016_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_late_2016_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2018 Advanced) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2018_advanced_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_15_2018_advanced_device = +{ + "Razer Blade 15 (2018 Advanced)", + RAZER_BLADE_2018_ADVANCED_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_15_2018_advanced_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2018 Base) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2018_base_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_15_2018_base_device = +{ + "Razer Blade 15 (2018 Base)", + RAZER_BLADE_2018_BASE_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_15_2018_base_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2018 Mercury) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2018_mercury_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_15_2018_mercury_device = +{ + "Razer Blade 15 (2018 Mercury)", + RAZER_BLADE_2018_MERCURY_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_15_2018_mercury_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2019 Advanced) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2019_advanced_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_15_2019_advanced_device = +{ + "Razer Blade 15 (2019 Advanced)", + RAZER_BLADE_2019_ADVANCED_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_15_2019_advanced_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2019 Base) | +| | +| Zone "Keyboard" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2019_base_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device blade_15_2019_base_device = +{ + "Razer Blade 15 (2019 Base)", + RAZER_BLADE_2019_BASE_PID, + DEVICE_TYPE_KEYBOARD, + false, + 1, + 1, + { + &blade_15_2019_base_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2019 Mercury) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2019_mercury_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_15_2019_mercury_device = +{ + "Razer Blade 15 (2019 Mercury)", + RAZER_BLADE_2019_MERCURY_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_15_2019_mercury_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2019 Studio) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2019_studio_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_15_2019_studio_device = +{ + "Razer Blade 15 (2019 Studio)", + RAZER_BLADE_2019_STUDIO_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_15_2019_studio_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2020 Advanced) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2020_advanced_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_15_2020_advanced_device = +{ + "Razer Blade 15 (2020 Advanced)", + RAZER_BLADE_2020_ADVANCED_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_15_2020_advanced_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2020 Base) | +| | +| Zone "Keyboard" | +| Linear | +| 1 Row, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2020_base_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_LINEAR, + 1, + 16 +}; + +static const razer_device blade_15_2020_base_device = +{ + "Razer Blade 15 (2020 Base)", + RAZER_BLADE_2020_BASE_PID, + DEVICE_TYPE_KEYBOARD, + true, + 1, + 16, + { + &blade_15_2020_base_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade (Late 2020) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_late_2020_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_late_2020_device = +{ + "Razer Blade (Late 2020)", + RAZER_BLADE_LATE_2020_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_late_2020_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2021 Advanced) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2021_advanced_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_15_2021_advanced_device = +{ + "Razer Blade 15 (2021 Advanced)", + RAZER_BLADE_2021_ADVANCED_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_15_2021_advanced_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2021 Base) | +| | +| Zone "Keyboard" | +| Linear | +| 1 Row, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2021_base_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_LINEAR, + 1, + 16 +}; + +static const razer_device blade_15_2021_base_device = +{ + "Razer Blade 15 (2021 Base)", + RAZER_BLADE_2021_BASE_PID, + DEVICE_TYPE_KEYBOARD, + true, + 1, + 16, + { + &blade_15_2021_base_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 15 (2021 Base) 1532:027A | +| | +| Zone "Keyboard" | +| Linear | +| 1 Row, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_15_2021_base_v2_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_LINEAR, + 1, + 16 +}; + +static const razer_device blade_15_2021_base_v2_device = +{ + "Razer Blade 15 (2021 Base)", + RAZER_BLADE_2021_BASE_V2_PID, + DEVICE_TYPE_KEYBOARD, + true, + 1, + 16, + { + &blade_15_2021_base_v2_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade 14 (2021) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_14_2021_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_14_2021_device = +{ + "Razer Blade 14 (2021)", + RAZER_BLADE_14_2021_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_14_2021_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blade_14_2021_keymap, + BLADE_14_2021_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Book 13 (2020) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone book_13_2020_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device book_13_2020_device = +{ + "Razer Book 13 (2020)", + RAZER_BOOK_13_2020_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &book_13_2020_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + book_13_2020_keymap, + BOOK_13_2020_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Pro (2016) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 25 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_pro_2016_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 25 +}; + +static const razer_device blade_pro_2016_device = +{ + "Razer Blade Pro (2016)", + RAZER_BLADE_PRO_2016_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 25, + { + &blade_pro_2016_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Pro (2017) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 25 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_pro_2017_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 25 +}; + +static const razer_device blade_pro_2017_device = +{ + "Razer Blade Pro (2017)", + RAZER_BLADE_PRO_2017_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 25, + { + &blade_pro_2017_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blade_pro_2017_keymap, + BLADE_PRO_2017_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Pro (2017 FullHD) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 25 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_pro_2017_fullhd_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 25 +}; + +static const razer_device blade_pro_2017_fullhd_device = +{ + "Razer Blade Pro (2017 FullHD)", + RAZER_BLADE_PRO_2017_FULLHD_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 25, + { + &blade_pro_2017_fullhd_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Pro (2019) | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_pro_2019_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_pro_2019_device = +{ + "Razer Blade Pro (2019)", + RAZER_BLADE_PRO_2019_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_pro_2019_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Pro (Late 2019) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_pro_late_2019_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_pro_late_2019_device = +{ + "Razer Blade Pro (Late 2019)", + RAZER_BLADE_PRO_LATE_2019_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_pro_late_2019_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Pro 17 (2020) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_pro_17_2020_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_pro_17_2020_device = +{ + "Razer Blade Pro 17 (2020)", + RAZER_BLADE_PRO_17_2020_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_pro_17_2020_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Pro 17 (2021) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_pro_17_2021_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_pro_17_2021_device = +{ + "Razer Blade Pro 17 (2021)", + RAZER_BLADE_PRO_17_2021_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_pro_17_2021_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blade_17_pro_2021_keymap, + BLADE_17_PRO_2021_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Stealth (2016) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_stealth_2016_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_stealth_2016_device = +{ + "Razer Blade Stealth (2016)", + RAZER_BLADE_STEALTH_2016_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_stealth_2016_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + blade_stealth_2016_keymap, + BLADE_STEALTH_2016_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Stealth (Late 2016) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_stealth_late_2016_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_stealth_late_2016_device = +{ + "Razer Blade Stealth (Late 2016)", + RAZER_BLADE_STEALTH_LATE_2016_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_stealth_late_2016_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Stealth (2017) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_stealth_2017_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_stealth_2017_device = +{ + "Razer Blade Stealth (2017)", + RAZER_BLADE_STEALTH_2017_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_stealth_2017_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Stealth (Late 2017) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_stealth_late_2017_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_stealth_late_2017_device = +{ + "Razer Blade Stealth (Late 2017)", + RAZER_BLADE_STEALTH_LATE_2017_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_stealth_late_2017_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Stealth (2019) | +| | +| Zone "Keyboard" | +| Matrix | +| 6 Rows, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_stealth_2019_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 16 +}; + +static const razer_device blade_stealth_2019_device = +{ + "Razer Blade Stealth (2019)", + RAZER_BLADE_STEALTH_2019_PID, + DEVICE_TYPE_KEYBOARD, + true, + 6, + 16, + { + &blade_stealth_2019_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Stealth (Late 2019) | +| | +| Zone "Keyboard" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone blade_stealth_late_2019_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device blade_stealth_late_2019_device = +{ + "Razer Blade Stealth (Late 2019)", + RAZER_BLADE_STEALTH_LATE_2019_PID, + DEVICE_TYPE_KEYBOARD, + false, + 1, + 1, + { + &blade_stealth_late_2019_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Stealth (2020) | +| | +| Zone "Keyboard" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone blade_stealth_2020_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device blade_stealth_2020_device = +{ + "Razer Blade Stealth (2020)", + RAZER_BLADE_STEALTH_2020_PID, + DEVICE_TYPE_KEYBOARD, + false, + 1, + 1, + { + &blade_stealth_2020_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Blade Stealth (Late 2020) | +| | +| Zone "Keyboard" | +| Linear | +| 1 Row, 16 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone blade_stealth_late_2020_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_LINEAR, + 1, + 16 +}; + +static const razer_device blade_stealth_late_2020_device = +{ + "Razer Blade Stealth (Late 2020)", + RAZER_BLADE_STEALTH_LATE_2020_PID, + DEVICE_TYPE_KEYBOARD, + true, + 1, + 16, + { + &blade_stealth_late_2020_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------------------*\ +| MICE | +\*-------------------------------------------------------------------------*/ + +/*-------------------------------------------------------------*\ +| Razer Abyssus Elite DVa Edition 1532:006A | +| | +| Zone "Logo" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone abyssus_elite_dva_edition_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device abyssus_elite_dva_edition_device = +{ + "Razer Abyssus Elite DVa Edition", + RAZER_ABYSSUS_ELITE_DVA_EDITION_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 1, + { + &abyssus_elite_dva_edition_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Abyssus Essential 1532:006B | +| | +| Zone "Logo" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone abyssus_essential_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device abyssus_essential_device = +{ + "Razer Abyssus Essential", + RAZER_ABYSSUS_ESSENTIAL_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 1, + { + &abyssus_essential_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Basilisk 1532:0064 | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone basilisk_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone basilisk_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device basilisk_device = +{ + "Razer Basilisk", + RAZER_BASILISK_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 2, + { + &basilisk_logo_zone, + &basilisk_scroll_wheel_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Basilisk Essential | +| | +| Zone "Logo" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone basilisk_essential_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device basilisk_essential_device = +{ + "Razer Basilisk Essential", + RAZER_BASILISK_ESSENTIAL_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 1, + { + &basilisk_essential_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Basilisk Ultimate (Wired) 1532:0086 | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Left LED Strip" | +| Linear | +| 8 LED | +| | +| Zone "Right LED Strip" | +| Linear | +| 4 LED | +\*-------------------------------------------------------------*/ +static const razer_zone basilisk_ultimate_wired_right_zone = +{ + "Right LED Strip", + ZONE_TYPE_LINEAR, + 1, + 4 +}; + +static const razer_zone basilisk_ultimate_wired_left_zone = +{ + "Left LED Strip", + ZONE_TYPE_LINEAR, + 1, + 8 +}; + +static const razer_zone basilisk_ultimate_wired_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone basilisk_ultimate_wired_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device basilisk_ultimate_wired_device = +{ + "Razer Basilisk Ultimate", + RAZER_BASILISK_ULTIMATE_WIRED_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 14, + { + &basilisk_ultimate_wired_scroll_wheel_zone, + &basilisk_ultimate_wired_logo_zone, + &basilisk_ultimate_wired_left_zone, + &basilisk_ultimate_wired_right_zone, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Basilisk Ultimate (Wireless) 1532:0088 | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Left LED Strip" | +| Linear | +| 8 LED | +| | +| Zone "Right LED Strip" | +| Linear | +| 4 LED | +\*-------------------------------------------------------------*/ +static const razer_zone basilisk_ultimate_wireless_right_zone = +{ + "Right LED Strip", + ZONE_TYPE_LINEAR, + 1, + 4 +}; + +static const razer_zone basilisk_ultimate_wireless_left_zone = +{ + "Left LED Strip", + ZONE_TYPE_LINEAR, + 1, + 8 +}; + +static const razer_zone basilisk_ultimate_wireless_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone basilisk_ultimate_wireless_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device basilisk_ultimate_wireless_device = +{ + "Razer Basilisk Ultimate (Wireless)", + RAZER_BASILISK_ULTIMATE_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 14, + { + &basilisk_ultimate_wireless_scroll_wheel_zone, + &basilisk_ultimate_wireless_logo_zone, + &basilisk_ultimate_wireless_left_zone, + &basilisk_ultimate_wireless_right_zone, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Basilisk V2 1532:0085 | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Logo" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone basilisk_v2_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone basilisk_v2_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device basilisk_v2_device = +{ + "Razer Basilisk V2", + RAZER_BASILISK_V2_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 2, + { + &basilisk_v2_scroll_wheel_zone, + &basilisk_v2_logo_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Basilisk V3 1532:0099 | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "LED Strip" | +| Linear | +| 9 LED | +\*-------------------------------------------------------------*/ +static const razer_zone basilisk_v3_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone basilisk_v3_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone basilisk_v3_ledstrip_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 9 +}; + +static const razer_device basilisk_v3_device = +{ + "Razer Basilisk V3", + RAZER_BASILISK_V3_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 11, + { + &basilisk_v3_logo_zone, + &basilisk_v3_scroll_wheel_zone, + &basilisk_v3_ledstrip_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer DeathAdder Chroma | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone deathadder_chroma_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone deathadder_chroma_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device deathadder_chroma_device = +{ + "Razer DeathAdder Chroma", + RAZER_DEATHADDER_CHROMA_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 2, + { + &deathadder_chroma_logo_zone, + &deathadder_chroma_scroll_wheel_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Deathadder Elite | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone deathadder_elite_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone deathadder_elite_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device deathadder_elite_device = +{ + "Razer DeathAdder Elite", + RAZER_DEATHADDER_ELITE_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 2, + { + &deathadder_elite_logo_zone, + &deathadder_elite_scroll_wheel_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Deathadder Essential 1532:006E | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone deathadder_essential_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone deathadder_essential_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device deathadder_essential_device = +{ + "Razer DeathAdder Essential", + RAZER_DEATHADDER_ESSENTIAL_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 2, + { + &deathadder_essential_logo_zone, + &deathadder_essential_scroll_wheel_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Deathadder Essential V2 1532:0098 | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone deathadder_essential_v2_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone deathadder_essential_v2_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device deathadder_essential_v2_device = +{ + "Razer DeathAdder Essential V2", + RAZER_DEATHADDER_ESSENTIAL_V2_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 2, + { + &deathadder_essential_v2_logo_zone, + &deathadder_essential_v2_scroll_wheel_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Deathadder Essential White Edition 1532:0071 | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone deathadder_essential_white_edition_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone deathadder_essential_white_edition_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device deathadder_essential_white_edition_device = +{ + "Razer DeathAdder Essential (White Edition)", + RAZER_DEATHADDER_ESSENTIAL_WHITE_EDITION_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 2, + { + &deathadder_essential_white_edition_logo_zone, + &deathadder_essential_white_edition_scroll_wheel_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer DeathAdder V2 1532:0084 | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone deathadder_v2_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone deathadder_v2_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device deathadder_v2_device = +{ + "Razer DeathAdder V2", + RAZER_DEATHADDER_V2_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 2, + { + &deathadder_v2_scroll_wheel_zone, + &deathadder_v2_logo_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer DeathAdder V2 Mini 1532:008C | +| | +| Zone "Logo" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone deathadder_v2_mini_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device deathadder_v2_mini_device = +{ + "Razer DeathAdder V2 Mini", + RAZER_DEATHADDER_V2_MINI_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 1, + { + &deathadder_v2_mini_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer DeathAdder V2 Pro (Wired) 1532:007C | +| | +| Zone "Logo" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone deathadder_v2_pro_wired_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device deathadder_v2_pro_wired_device = +{ + "Razer DeathAdder V2 (Wired)", + RAZER_DEATHADDER_V2_PRO_WIRED_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 1, + { + &deathadder_v2_pro_wired_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer DeathAdder V2 Pro (Wireless) 1532:007D | +| | +| Zone "Logo" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone deathadder_v2_pro_wireless_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device deathadder_v2_pro_wireless_device = +{ + "Razer DeathAdder V2 (Wireless)", + RAZER_DEATHADDER_V2_PRO_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 1, + { + &deathadder_v2_pro_wireless_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Diamondback Chroma | +| | +| Zone "LED Strip" | +| Linear | +| 19 LEDs | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone diamondback_chroma_led_strip_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 19 +}; + +static const razer_zone diamondback_chroma_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone diamondback_chroma_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device diamondback_chroma_device = +{ + "Razer Diamondback Chroma", + RAZER_DIAMONDBACK_CHROMA_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 21, + { + &diamondback_chroma_led_strip_zone, + &diamondback_chroma_logo_zone, + &diamondback_chroma_scroll_wheel_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Lancehead 2017 (Wired) | +| | +| Zone "Right" | +| Linear | +| 7 LEDs | +| | +| Zone "Left" | +| Linear | +| 7 LEDs | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone lancehead_2017_wired_right_zone = +{ + "Right LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone lancehead_2017_wired_left_zone = +{ + "Left LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone lancehead_2017_wired_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone lancehead_2017_wired_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device lancehead_2017_wired_device = +{ + "Razer Lancehead 2017 (Wired)", + RAZER_LANCEHEAD_2017_WIRED_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 16, + { + &lancehead_2017_wired_right_zone, + &lancehead_2017_wired_left_zone, + &lancehead_2017_wired_logo_zone, + &lancehead_2017_wired_scroll_wheel_zone, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Lancehead 2017 (Wireless) | +| | +| Zone "Right" | +| Linear | +| 7 LEDs | +| | +| Zone "Left" | +| Linear | +| 7 LEDs | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone lancehead_2017_wireless_right_zone = +{ + "Right LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone lancehead_2017_wireless_left_zone = +{ + "Left LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone lancehead_2017_wireless_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone lancehead_2017_wireless_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device lancehead_2017_wireless_device = +{ + "Razer Lancehead 2017 (Wireless)", + RAZER_LANCEHEAD_2017_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 16, + { + &lancehead_2017_wireless_right_zone, + &lancehead_2017_wireless_left_zone, + &lancehead_2017_wireless_logo_zone, + &lancehead_2017_wireless_scroll_wheel_zone, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Lancehead 2019 (Wired) | +| | +| Zone "Right" | +| Linear | +| 7 LEDs | +| | +| Zone "Left" | +| Linear | +| 7 LEDs | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone lancehead_2019_wired_right_zone = +{ + "Right LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone lancehead_2019_wired_left_zone = +{ + "Left LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone lancehead_2019_wired_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone lancehead_2019_wired_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device lancehead_2019_wired_device = +{ + "Razer Lancehead 2019 (Wired)", + RAZER_LANCEHEAD_2019_WIRED_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 16, + { + &lancehead_2019_wired_right_zone, + &lancehead_2019_wired_left_zone, + &lancehead_2019_wired_logo_zone, + &lancehead_2019_wired_scroll_wheel_zone, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Lancehead 2019 (Wireless) | +| | +| Zone "Right" | +| Linear | +| 7 LEDs | +| | +| Zone "Left" | +| Linear | +| 7 LEDs | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone lancehead_2019_wireless_right_zone = +{ + "Right LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone lancehead_2019_wireless_left_zone = +{ + "Left LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone lancehead_2019_wireless_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone lancehead_2019_wireless_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device lancehead_2019_wireless_device = +{ + "Razer Lancehead 2019 (Wireless)", + RAZER_LANCEHEAD_2019_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 16, + { + &lancehead_2019_wireless_right_zone, + &lancehead_2019_wireless_left_zone, + &lancehead_2019_wireless_logo_zone, + &lancehead_2019_wireless_scroll_wheel_zone, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Lancehead Tournament Edition 1532:0060 | +| | +| Zone "Right" | +| Linear | +| 7 LEDs | +| | +| Zone "Left" | +| Linear | +| 7 LEDs | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone lancehead_te_right_zone = +{ + "Right LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone lancehead_te_left_zone = +{ + "Left LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone lancehead_te_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone lancehead_te_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device lancehead_te_device = +{ + "Razer Lancehead Tournament Edition", + RAZER_LANCEHEAD_TE_WIRED_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 16, + { + &lancehead_te_scroll_wheel_zone, + &lancehead_te_logo_zone, + &lancehead_te_right_zone, + &lancehead_te_left_zone, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Mamba 2012 (Wired) | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone mamba_2012_wired_zone = +{ + "Scroll Wheel", + ZONE_TYPE_LINEAR, + 1, + 1 +}; + +static const razer_device mamba_2012_wired_device = +{ + "Razer Mamba 2012 (Wired)", + RAZER_MAMBA_2012_WIRED_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 15, + { + &mamba_2012_wired_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Mamba 2012 (Wireless) | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone mamba_2012_wireless_zone = +{ + "Scroll Wheel", + ZONE_TYPE_LINEAR, + 1, + 1 +}; + +static const razer_device mamba_2012_wireless_device = +{ + "Razer Mamba 2012 (Wireless)", + RAZER_MAMBA_2012_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 15, + { + &mamba_2012_wireless_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Mamba 2015 (Wired) | +| | +| Zone "Chroma Zone" | +| Single | +| 15 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone mamba_2015_wired_zone = +{ + "Chroma Zone", + ZONE_TYPE_LINEAR, + 1, + 15 +}; + +static const razer_device mamba_2015_wired_device = +{ + "Razer Mamba 2015 (Wired)", + RAZER_MAMBA_2015_WIRED_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 15, + { + &mamba_2015_wired_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Mamba 2015 (Wireless) | +| | +| Zone "Chroma Zone" | +| Single | +| 15 LED | +\*-------------------------------------------------------------*/ +static const razer_zone mamba_2015_wireless_zone = +{ + "Chroma Zone", + ZONE_TYPE_LINEAR, + 1, + 15 +}; + +static const razer_device mamba_2015_wireless_device = +{ + "Razer Mamba (Wireless)", + RAZER_MAMBA_2015_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 15, + { + &mamba_2015_wireless_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Mamba 2018 (Wired) | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone mamba_2018_wired_logo_zone = +{ + "Logo Zone", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone mamba_2018_wired_scroll_wheel_zone = +{ + "Scroll Wheel Zone", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device mamba_2018_wired_device = +{ + "Razer Mamba 2018 (Wired)", + RAZER_MAMBA_2018_WIRED_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 2, + { + &mamba_2018_wired_scroll_wheel_zone, + &mamba_2018_wired_logo_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Mamba Wireless (2018) Wireless 1532:0072 | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ + +static const razer_zone mamba_2018_wireless_logo_zone = +{ + "Logo Zone", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone mamba_2018_wireless_scroll_wheel_zone = +{ + "Scroll Wheel Zone", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device mamba_2018_wireless_device = +{ + "Razer Mamba 2018 (Wireless)", + RAZER_MAMBA_2018_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 2, + { + &mamba_2018_wireless_scroll_wheel_zone, + &mamba_2018_wireless_logo_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Mamba Elite | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Left" | +| Linear | +| 9 LEDs | +| | +| Zone "Right" | +| Linear | +| 9 LEDs | +| | +\*-------------------------------------------------------------*/ +static const razer_zone mamba_elite_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone mamba_elite_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone mamba_elite_left_zone = +{ + "Left LED Strip", + ZONE_TYPE_LINEAR, + 1, + 9 +}; + +static const razer_zone mamba_elite_right_zone = +{ + "Right LED Strip", + ZONE_TYPE_LINEAR, + 1, + 9 +}; + +static const razer_device mamba_elite_device = +{ + "Razer Mamba Elite", + RAZER_MAMBA_ELITE_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 20, + { + &mamba_elite_scroll_wheel_zone, + &mamba_elite_logo_zone, + &mamba_elite_left_zone, + &mamba_elite_right_zone, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Mamba Tournament Edition | +| | +| Zone "Left" | +| Linear | +| 7 LEDs | +| | +| Zone "Right" | +| Linear | +| 7 LEDs | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone mamba_te_left_zone = +{ + "Left LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone mamba_te_right_zone = +{ + "Right LED Strip", + ZONE_TYPE_LINEAR, + 1, + 7 +}; + +static const razer_zone mamba_te_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone mamba_te_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device mamba_te_device = +{ + "Razer Mamba Tournament Edition", + RAZER_MAMBA_TE_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 16, + { + &mamba_te_left_zone, + &mamba_te_right_zone, + &mamba_te_logo_zone, + &mamba_te_scroll_wheel_zone, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Naga Chroma | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Numpad" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone naga_chroma_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_chroma_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_chroma_numpad_zone = +{ + "Numpad", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device naga_chroma_device = +{ + "Razer Naga Chroma", + RAZER_NAGA_CHROMA_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 3, + { + &naga_chroma_logo_zone, + &naga_chroma_scroll_wheel_zone, + &naga_chroma_numpad_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Naga Classic 1532:0093 | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Numpad" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone naga_classic_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_classic_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_classic_numpad_zone = +{ + "Numpad", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device naga_classic_device = +{ + "Razer Naga Classic", + RAZER_NAGA_CLASSIC_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 3, + { + &naga_classic_logo_zone, + &naga_classic_scroll_wheel_zone, + &naga_classic_numpad_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Naga Hex V2 1532:0050 | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Numpad" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone naga_hex_v2_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_hex_v2_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_hex_v2_numpad_zone = +{ + "Numpad", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device naga_hex_v2_device = +{ + "Razer Naga Hex V2", + RAZER_NAGA_HEX_V2_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 3, + { + &naga_hex_v2_logo_zone, + &naga_hex_v2_scroll_wheel_zone, + &naga_hex_v2_numpad_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Naga Left Handed 1532:008D | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Numpad" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone naga_left_handed_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_left_handed_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_left_handed_numpad_zone = +{ + "Numpad", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device naga_left_handed_device = +{ + "Razer Naga Left Handed", + RAZER_NAGA_LEFT_HANDED_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 3, + { + &naga_left_handed_logo_zone, + &naga_left_handed_scroll_wheel_zone, + &naga_left_handed_numpad_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Naga Trinity 1532:0067 | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Numpad" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone naga_trinity_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_trinity_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_trinity_numpad_zone = +{ + "Numpad", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device naga_trinity_device = +{ + "Razer Naga Trinity", + RAZER_NAGA_TRINITY_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 3, + { + &naga_trinity_scroll_wheel_zone, + &naga_trinity_logo_zone, + &naga_trinity_numpad_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Naga Pro 1532:008F (wired) 1532:0090 (wireless) | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Logo" | +| Single | +| 1 LED | +| | +| Zone "Numpad" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone naga_pro_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_pro_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_pro_numpad_zone = +{ + "Numpad", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device naga_pro_wired_device = +{ + "Razer Naga Pro (Wired)", + RAZER_NAGA_PRO_WIRED_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 3, + { + &naga_pro_scroll_wheel_zone, + &naga_pro_logo_zone, + &naga_pro_numpad_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +static const razer_device naga_pro_wireless_device = +{ + "Razer Naga Pro (Wireless)", + RAZER_NAGA_PRO_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 3, + { + &naga_pro_scroll_wheel_zone, + &naga_pro_logo_zone, + &naga_pro_numpad_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Viper 8kHz 1532:0091 | +| | +| Zone "Logo" | +| Matrix | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone viper_8khz_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device viper_8khz_device = +{ + "Razer Viper 8kHz", + RAZER_VIPER_8KHZ_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 1, + { + &viper_8khz_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Viper Mini 1532:008A | +| | +| Zone "Logo" | +| Matrix | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone viper_mini_logo_zone = +{ + "Logo", //Matrix of one as per https://github.com/openrazer/openrazer/blob/master/daemon/openrazer_daemon/hardware/mouse.py#L27 + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device viper_mini_device = +{ + "Razer Viper Mini", + RAZER_VIPER_MINI_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 1, + { + &viper_mini_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Viper Ultimate Wired 1532:007A | +| | +| Zone "Logo" | +| Matrix | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone viper_ultimate_wired_logo_zone = +{ + "Logo", //Matrix of one as per https://github.com/openrazer/openrazer/blob/master/daemon/openrazer_daemon/hardware/mouse.py#L1690 + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device viper_ultimate_wired_device = +{ + "Razer Viper Ultimate (Wired)", + RAZER_VIPER_ULTIMATE_WIRED_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 1, + { + &viper_ultimate_wired_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Viper Ultimate Wireless 1532:007B | +| | +| Zone "Logo" | +| Matrix | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone viper_ultimate_wireless_logo_zone = +{ + "Logo", //Matrix of one as per https://github.com/openrazer/openrazer/blob/master/daemon/openrazer_daemon/hardware/mouse.py#L1690 + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device viper_ultimate_wireless_device = +{ + "Razer Viper Ultimate (Wireless)", + RAZER_VIPER_ULTIMATE_WIRELESS_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 1, + { + &viper_ultimate_wireless_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Viper 1532:0078 | +| | +| Zone "Logo" | +| Matrix | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone viper_logo_zone = +{ + "Logo", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device viper_device = +{ + "Razer Viper", + RAZER_VIPER_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 1, + { + &viper_logo_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Naga Epic Chroma | +| | +| Zone "Scroll Wheel" | +| Single | +| 1 LED | +| | +| Zone "Numpad" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone naga_epic_chroma_scroll_wheel_zone = +{ + "Scroll Wheel", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone naga_epic_chroma_numpad_zone = +{ + "Numpad", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device naga_epic_chroma_device = +{ + "Razer Naga Epic Chroma", + RAZER_NAGA_EPIC_CHROMA_PID, + DEVICE_TYPE_MOUSE, + false, + 1, + 2, + { + &naga_epic_chroma_scroll_wheel_zone, + &naga_epic_chroma_numpad_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------------------*\ +| KEYPADS | +\*-------------------------------------------------------------------------*/ + +/*-------------------------------------------------------------*\ +| Razer Orbweaver Chroma | +| | +| Zone "Keypad" | +| Matrix | +| 4 Rows, 5 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone orbweaver_chroma_zone = +{ + "Keypad", + ZONE_TYPE_MATRIX, + 4, + 5 +}; + +static const razer_device orbweaver_chroma_device = +{ + "Razer Orbweaver Chroma", + RAZER_ORBWEAVER_CHROMA_PID, + DEVICE_TYPE_KEYBOARD, + true, + 4, + 5, + { + &orbweaver_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Tartarus Chroma | +| | +| Zone "Keypad" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone tartarus_chroma_zone = +{ + "Keypad", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device tartarus_chroma_device = +{ + "Razer Tartarus Chroma", + RAZER_TARTARUS_CHROMA_PID, + DEVICE_TYPE_KEYBOARD, + true, + 1, + 1, + { + &tartarus_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Tartarus V2 1532:0208 | +| | +| Zone "Keypad" | +| Matrix | +| 4 Rows, 6 Columns | +\*-------------------------------------------------------------*/ +static const razer_zone tartarus_v2_zone = +{ + "Keypad", + ZONE_TYPE_MATRIX, + 4, + 6 +}; + +static const razer_device tartarus_v2_device = +{ + "Razer Tartarus V2", + RAZER_TARTARUS_V2_PID, + DEVICE_TYPE_KEYBOARD, + true, + 4, + 6, + { + &tartarus_v2_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + tartarus_v2_keymap, + TARTARUS_V2_KEYMAP_SIZE +}; + +/*-------------------------------------------------------------------------*\ +| MOUSEMATS | +\*-------------------------------------------------------------------------*/ + +/*-------------------------------------------------------------*\ +| Razer Firefly | +| | +| Zone "LED Strip" | +| Linear | +| 15 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone firefly_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 15 +}; + +static const razer_device firefly_device = +{ + "Razer Firefly", + RAZER_FIREFLY_PID, + DEVICE_TYPE_MOUSEMAT, + true, + 1, + 15, + { + &firefly_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Firefly Hyperflux | +| | +| Zone "LED Strip" | +| Linear | +| 1 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone firefly_hyperflux_zone = +{ + "LED Strip", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device firefly_hyperflux_device = +{ + "Razer Firefly Hyperflux", + RAZER_FIREFLY_HYPERFLUX_PID, + DEVICE_TYPE_MOUSEMAT, + true, + 1, + 1, + { + &firefly_hyperflux_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Firefly V2 | +| | +| Zone "LED Strip" | +| Matrix | +| 19 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone firefly_v2_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 19 +}; + +static const razer_device firefly_v2_device = +{ + "Razer Firefly V2", + RAZER_FIREFLY_V2_PID, + DEVICE_TYPE_MOUSEMAT, + true, + 1, + 19, + { + &firefly_v2_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Goliathus | +| | +| Zone "LED Strip" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone goliathus_zone = +{ + "LED Strip", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device goliathus_device = +{ + "Razer Goliathus", + RAZER_GOLIATHUS_CHROMA_PID, + DEVICE_TYPE_MOUSEMAT, + true, + 1, + 1, + { + &goliathus_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Goliathus Extended | +| | +| Zone "LED Strip" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone goliathus_extended_zone = +{ + "LED Strip", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device goliathus_extended_device = +{ + "Razer Goliathus Extended", + RAZER_GOLIATHUS_CHROMA_EXTENDED_PID, + DEVICE_TYPE_MOUSEMAT, + true, + 1, + 1, + { + &goliathus_extended_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------------------*\ +| HEADSETS | +\*-------------------------------------------------------------------------*/ + +/*-------------------------------------------------------------*\ +| Razer Kraken 7.1 Chroma | +| | +| Zone "Headset" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone kraken_chroma_zone = +{ + "Headset", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device kraken_chroma_device = +{ + "Razer Kraken 7.1 Chroma", + RAZER_KRAKEN_PID, + DEVICE_TYPE_HEADSET, + true, + 1, + 1, + { + &kraken_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Kraken 7.1 V2 | +| | +| Zone "Headset" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone kraken_v2_zone = +{ + "Headset", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device kraken_v2_device = +{ + "Razer Kraken 7.1 V2", + RAZER_KRAKEN_V2_PID, + DEVICE_TYPE_HEADSET, + true, + 1, + 1, + { + &kraken_v2_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Kraken Ultimate 1532:0527 | +| | +| Zone "Headset" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone kraken_ultimate_zone = +{ + "Headset", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device kraken_ultimate_device = +{ + "Razer Kraken Ultimate", + RAZER_KRAKEN_ULTIMATE_PID, + DEVICE_TYPE_HEADSET, + true, + 1, + 1, + { + &kraken_ultimate_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Kraken Kitty Edition 1532:0F19 | +| | +| Zone "Headset" | +| Matrix | +| 4 LED | +\*-------------------------------------------------------------*/ +static const razer_zone kraken_kitty_zone = +{ + "Headset", + ZONE_TYPE_LINEAR, + 1, + 4 +}; + +static const razer_device kraken_kitty_device = +{ + "Razer Kraken Kitty Edition", + RAZER_KRAKEN_KITTY_EDITION_PID, + DEVICE_TYPE_HEADSET, + true, + 1, + 4, + { + &kraken_kitty_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Tiamat 7.1 V2 | +| | +| Zone "Controller" | +| Linear | +| 15 LEDs | +| | +| Zone "Headset Left" | +| Single | +| 1 LED | +| | +| Zone "Headset Right" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone tiamat_71_v2_controller_zone = +{ + "Controller", + ZONE_TYPE_LINEAR, + 1, + 15 +}; + +static const razer_zone tiamat_71_v2_headset_left_zone = +{ + "Headset Left", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone tiamat_71_v2_headset_right_zone = +{ + "Headset Right", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device tiamat_71_v2_device = +{ + "Razer Tiamat 7.1 V2", + RAZER_TIAMAT_71_V2_PID, + DEVICE_TYPE_HEADSET, + true, + 1, + 17, + { + &tiamat_71_v2_controller_zone, + &tiamat_71_v2_headset_left_zone, + &tiamat_71_v2_headset_right_zone, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------------------*\ +| OTHER | +\*-------------------------------------------------------------------------*/ + +/*-------------------------------------------------------------*\ +| Razer Core | +| | +| Zone "Side Window Lights" | +| Single | +| 1 LED | +| | +| Zone "LED Strip" | +| Linear | +| 8 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone core_side_zone = +{ + "Side Window Lights", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone core_led_strip_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 8 +}; + +static const razer_device core_device = +{ + "Razer Core", + RAZER_CORE_PID, + DEVICE_TYPE_UNKNOWN, + true, + 1, + 9, + { + &core_side_zone, + &core_led_strip_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Core X | +| | +| Zone "Side Window Lights" | +| Single | +| 1 LED | +| | +| Zone "LED Strip" | +| Linear | +| 15 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone core_x_side_zone = +{ + "Side Window Lights", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_zone core_x_led_strip_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 15 +}; + +static const razer_device core_x_device = +{ + "Razer Core X", + RAZER_CORE_X_PID, + DEVICE_TYPE_UNKNOWN, + true, + 1, + 16, + { + &core_x_side_zone, + &core_x_led_strip_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Chroma Mug Holder | +| | +| Zone "LED Strip" | +| Linear | +| 15 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone mug_holder_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 15 +}; + +static const razer_device mug_holder_device = +{ + "Razer Chroma Mug Holder", + RAZER_CHROMA_MUG_PID, + DEVICE_TYPE_UNKNOWN, + true, + 1, + 15, + { + &mug_holder_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Chroma Addressable RGB Controller | +| | +| Zone "LED Strip" | +| Linear | +| 80 LEDs | +| | +| Zone "LED Strip" | +| Linear | +| 80 LEDs | +| | +| Zone "LED Strip" | +| Linear | +| 80 LEDs | +| | +| Zone "LED Strip" | +| Linear | +| 80 LEDs | +| | +| Zone "LED Strip" | +| Linear | +| 80 LEDs | +| | +| Zone "LED Strip" | +| Linear | +| 80 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone chromaargb_zone_1 = +{ + "Channel 1", + ZONE_TYPE_LINEAR, + 1, + 80 +}; + +static const razer_zone chromaargb_zone_2 = +{ + "Channel 2", + ZONE_TYPE_LINEAR, + 1, + 80 +}; + +static const razer_zone chromaargb_zone_3 = +{ + "Channel 3", + ZONE_TYPE_LINEAR, + 1, + 80 +}; + +static const razer_zone chromaargb_zone_4 = +{ + "Channel 4", + ZONE_TYPE_LINEAR, + 1, + 80 +}; + +static const razer_zone chromaargb_zone_5 = +{ + "Channel 5", + ZONE_TYPE_LINEAR, + 1, + 80 +}; + +static const razer_zone chromaargb_zone_6 = +{ + "Channel 6", + ZONE_TYPE_LINEAR, + 1, + 80 +}; + +static const razer_device chromaargb_device = +{ + "Razer Chroma Addressable RGB Controller", + RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID, + DEVICE_TYPE_LEDSTRIP, + true, + 6, + 80, + { + &chromaargb_zone_1, + &chromaargb_zone_2, + &chromaargb_zone_3, + &chromaargb_zone_4, + &chromaargb_zone_5, + &chromaargb_zone_6 + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Chroma HDK | +| | +| Zone "LED Strip" | +| Linear | +| 16 LEDs | +| | +| Zone "LED Strip" | +| Linear | +| 16 LEDs | +| | +| Zone "LED Strip" | +| Linear | +| 16 LEDs | +| | +| Zone "LED Strip" | +| Linear | +| 16 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone chromahdk_zone_1 = +{ + "Channel 1", + ZONE_TYPE_LINEAR, + 1, + 16 +}; + +static const razer_zone chromahdk_zone_2 = +{ + "Channel 2", + ZONE_TYPE_LINEAR, + 1, + 16 +}; + +static const razer_zone chromahdk_zone_3 = +{ + "Channel 3", + ZONE_TYPE_LINEAR, + 1, + 16 +}; + +static const razer_zone chromahdk_zone_4 = +{ + "Channel 4", + ZONE_TYPE_LINEAR, + 1, + 16 +}; + +static const razer_device chromahdk_device = +{ + "Razer Chroma HDK", + RAZER_CHROMA_HDK_PID, + DEVICE_TYPE_LEDSTRIP, + true, + 4, + 16, + { + &chromahdk_zone_1, + &chromahdk_zone_2, + &chromahdk_zone_3, + &chromahdk_zone_4, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Chroma PC Case Lighting Kit | +| | +| Zone "LED Strip" | +| Linear | +| 16 LEDs | +| | +| Zone "LED Strip" | +| Linear | +| 16 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone chroma_pc_case_lighting_kit_zone_1 = +{ + "Channel 1", + ZONE_TYPE_LINEAR, + 1, + 16 +}; + +static const razer_zone chroma_pc_case_lighting_kit_zone_2 = +{ + "Channel 2", + ZONE_TYPE_LINEAR, + 1, + 16 +}; + +static const razer_device chroma_pc_case_lighting_kit_device = +{ + "Razer Chroma PC Case Lighting Kit", + RAZER_CHROMA_PC_CASE_LIGHTING_KIT_PID, + DEVICE_TYPE_LEDSTRIP, + true, + 2, + 16, + { + &chroma_pc_case_lighting_kit_zone_1, + &chroma_pc_case_lighting_kit_zone_2, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Base Station Chroma | +| | +| Zone "LED Strip" | +| Linear | +| 15 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone base_station_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 15 +}; + +static const razer_device base_station_device = +{ + "Razer Base Station Chroma", + RAZER_BASE_STATION_CHROMA_PID, + DEVICE_TYPE_HEADSET_STAND, + true, + 1, + 15, + { + &base_station_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + + +/*-------------------------------------------------------------*\ +| Razer Mouse Bungee V3 Chroma | +| | +| Zone "LED Strip" | +| Linear | +| 8 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone mouse_bungee_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 8 +}; + +static const razer_device mouse_bungee_device = +{ + "Razer Mouse Bungee V3 Chroma", + RAZER_MOUSE_BUNGEE_V3_CHROMA_PID, + DEVICE_TYPE_MOUSE, + true, + 1, + 8, + { + &mouse_bungee_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Base Station V2 Chroma | +| | +| Zone "LED Strip" | +| Linear | +| 8 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone base_station_v2_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 8 +}; + +static const razer_device base_station_v2_device = +{ + "Razer Base Station V2 Chroma", + RAZER_BASE_STATION_V2_CHROMA_PID, + DEVICE_TYPE_HEADSET_STAND, + true, + 1, + 8, + { + &base_station_v2_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Laptop Stand Chroma 1532:0F0D | +| | +| Zone "LED Strip" | +| Linear | +| 15 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone laptop_stand_chroma_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 15 +}; + +static const razer_device laptop_stand_chroma_device = +{ + "Razer Laptop Stand Chroma", + RAZER_LAPTOP_STAND_CHROMA_PID, + DEVICE_TYPE_LEDSTRIP, + true, + 1, + 15, + { + &laptop_stand_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Laptop Stand Chroma V2 1532:0F2B | +| | +| Zone "LED Strip" | +| Linear | +| 15 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone laptop_stand_chroma_v2_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 15 +}; + +static const razer_device laptop_stand_chroma_v2_device = +{ + "Razer Laptop Stand Chroma V2", + RAZER_LAPTOP_STAND_CHROMA_V2_PID, + DEVICE_TYPE_LEDSTRIP, + true, + 1, + 15, + { + &laptop_stand_chroma_v2_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Mouse Dock Chroma 1532:007E | +| | +| Zone "Base" | +| Single | +| 1 LED | +\*-------------------------------------------------------------*/ +static const razer_zone mouse_dock_chroma_base_zone = +{ + "Base", + ZONE_TYPE_SINGLE, + 1, + 1 +}; + +static const razer_device mouse_dock_chroma_device = +{ + "Razer Mouse Dock Chroma", + RAZER_MOUSE_DOCK_CHROMA_PID, + DEVICE_TYPE_LIGHT, + true, + 1, + 1, + { + &mouse_dock_chroma_base_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Nommo Pro | +| | +| Zone "Left Speaker" | +| Linear | +| 8 LEDs | +| | +| Zone "Right Speaker" | +| Linear | +| 8 LEDs | +| | +\*-------------------------------------------------------------*/ +static const razer_zone nommo_pro_left_zone = +{ + "Left Speaker", + ZONE_TYPE_LINEAR, + 1, + 8 +}; + +static const razer_zone nommo_pro_right_zone = +{ + "Right Speaker", + ZONE_TYPE_LINEAR, + 1, + 8 +}; + +static const razer_device nommo_pro_device = +{ + "Razer Nommo Pro", + RAZER_NOMMO_PRO_PID, + DEVICE_TYPE_SPEAKER, + true, + 2, + 8, + { + &nommo_pro_left_zone, + &nommo_pro_right_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Nommo Chroma | +| | +| Zone "Right Speaker" | +| Linear | +| 8 LEDs | +| | +| Zone "Left Speaker" | +| Linear | +| 8 LEDs | +| | +\*-------------------------------------------------------------*/ +static const razer_zone nommo_chroma_right_zone = +{ + "Right Speaker", + ZONE_TYPE_LINEAR, + 1, + 24 +}; + +static const razer_zone nommo_chroma_left_zone = +{ + "Left Speaker", + ZONE_TYPE_LINEAR, + 1, + 24 +}; + +static const razer_device nommo_chroma_device = +{ + "Razer Nommo Chroma", + RAZER_NOMMO_CHROMA_PID, + DEVICE_TYPE_SPEAKER, + true, + 2, + 24, + { + &nommo_chroma_right_zone, + &nommo_chroma_left_zone, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Charging Pad Chroma | +| | +| Zone "LED Strip" | +| Linear | +| 10 LEDs | +| | +\*-------------------------------------------------------------*/ +static const razer_zone charging_pad_chroma_zone = +{ + "LED Strip", + ZONE_TYPE_LINEAR, + 1, + 10 +}; + +static const razer_device charging_pad_chroma_device = +{ + "Razer Charging Pad Chroma", + RAZER_CHARGING_PAD_CHROMA_PID, + DEVICE_TYPE_UNKNOWN, + true, + 1, + 10, + { + &charging_pad_chroma_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| O11 Dynamic - Razer Edition 1532:0F13 | +| | +| Zone "Case LEDs" | +| Matrix | +| 64 LEDs | +| | +\*-------------------------------------------------------------*/ +static const razer_zone o11_dynamic_case_zone = +{ + "Case LEDs", + ZONE_TYPE_LINEAR, + 4, + 16 +}; + +static const razer_device o11_dynamic_device = +{ + "Lian Li O11 Dynamic - Razer Edition", + RAZER_O11_DYNAMIC_PID, + DEVICE_TYPE_LEDSTRIP, + true, + 4, + 16, + { + &o11_dynamic_case_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------*\ +| Razer Seiren Emote 1532:0F1B | +| | +| Zone "8-Bit LED Matrix" | +| Matrix | +| 64 LEDs | +| | +\*-------------------------------------------------------------*/ +static const razer_zone seiren_emote_zone = +{ + "8-Bit LED Matrix", + ZONE_TYPE_MATRIX, + 8, + 8 +}; + +static const razer_device seiren_emote_device = +{ + "Razer Seiren Emote", + RAZER_SEIREN_EMOTE_PID, + DEVICE_TYPE_MICROPHONE, + true, + 4, + 16, + { + &seiren_emote_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + NULL, + 0 +}; + +/*-------------------------------------------------------------------------*\ +| DEVICE MASTER LIST | +\*-------------------------------------------------------------------------*/ +const razer_device* razer_device_list[] = +{ +/*-----------------------------------------------------------------*\ +| KEYBOARDS | +\*-----------------------------------------------------------------*/ + &blackwidow_2019_device, + &blackwidow_chroma_device, + &blackwidow_chroma_overwatch_device, + &blackwidow_chroma_te_device, + &blackwidow_chroma_v2_device, + &blackwidow_elite_device, + &blackwidow_v3_device, + &blackwidow_v3_pro_wired_device, + &blackwidow_v3_pro_wireless_device, + &blackwidow_v3_pro_bluetooth_device, + &blackwidow_v3_tkl_device, + &blackwidow_v3_mini_wired_device, + &blackwidow_v3_mini_wireless_device, + &blackwidow_x_chroma_device, + &blackwidow_x_chroma_te_device, + &cynosa_chroma_device, + &cynosa_v2_device, + &cynosa_lite_device, + &deathstalker_chroma_device, + &huntsman_device, + &huntsman_elite_device, + &huntsman_mini_device, + &huntsman_te_device, + &huntsman_v2_device, + &huntsman_v2_analog_device, + &huntsman_v2_tkl_device, + &ornata_chroma_device, +/*-----------------------------------------------------------------*\ +| LAPTOPS | +\*-----------------------------------------------------------------*/ + &blade_2016_device, + &blade_late_2016_device, + &blade_15_2018_advanced_device, + &blade_15_2018_base_device, + &blade_15_2018_mercury_device, + &blade_15_2019_advanced_device, + &blade_15_2019_base_device, + &blade_15_2019_mercury_device, + &blade_15_2019_studio_device, + &blade_15_2020_advanced_device, + &blade_15_2020_base_device, + &blade_late_2020_device, + &blade_15_2021_advanced_device, + &blade_15_2021_base_device, + &blade_15_2021_base_v2_device, + &blade_14_2021_device, + &book_13_2020_device, + &blade_pro_2016_device, + &blade_pro_2017_device, + &blade_pro_2017_fullhd_device, + &blade_pro_2019_device, + &blade_pro_late_2019_device, + &blade_pro_17_2020_device, + &blade_pro_17_2021_device, + &blade_stealth_2019_device, + &blade_stealth_2016_device, + &blade_stealth_late_2016_device, + &blade_stealth_2017_device, + &blade_stealth_late_2017_device, + &blade_stealth_2019_device, + &blade_stealth_late_2019_device, + &blade_stealth_2020_device, + &blade_stealth_late_2020_device, +/*-----------------------------------------------------------------*\ +| MICE | +\*-----------------------------------------------------------------*/ + &abyssus_elite_dva_edition_device, + &abyssus_essential_device, + &basilisk_device, + &basilisk_essential_device, + &basilisk_ultimate_wired_device, + &basilisk_ultimate_wireless_device, + &basilisk_v2_device, + &basilisk_v3_device, + &deathadder_chroma_device, + &deathadder_elite_device, + &deathadder_essential_device, + &deathadder_essential_v2_device, + &deathadder_essential_white_edition_device, + &deathadder_v2_device, + &deathadder_v2_mini_device, + &deathadder_v2_pro_wired_device, + &deathadder_v2_pro_wireless_device, + &diamondback_chroma_device, + &lancehead_2017_wired_device, + &lancehead_2017_wireless_device, + &lancehead_2019_wired_device, + &lancehead_2019_wireless_device, + &lancehead_te_device, + &mamba_2012_wired_device, + &mamba_2012_wireless_device, + &mamba_2015_wired_device, + &mamba_2015_wireless_device, + &mamba_2018_wired_device, + &mamba_2018_wireless_device, + &mamba_te_device, + &mamba_elite_device, + &naga_chroma_device, + &naga_classic_device, + &naga_epic_chroma_device, + &naga_hex_v2_device, + &naga_left_handed_device, + &naga_trinity_device, + &naga_pro_wired_device, + &naga_pro_wireless_device, + &viper_8khz_device, + &viper_mini_device, + &viper_ultimate_wired_device, + &viper_ultimate_wireless_device, + &viper_device, +/*-----------------------------------------------------------------*\ +| KEYPADS | +\*-----------------------------------------------------------------*/ + &orbweaver_chroma_device, + &tartarus_chroma_device, + &tartarus_v2_device, +/*-----------------------------------------------------------------*\ +| MOUSEMATS | +\*-----------------------------------------------------------------*/ + &firefly_device, + &firefly_hyperflux_device, + &firefly_v2_device, + &goliathus_device, + &goliathus_extended_device, +/*-----------------------------------------------------------------*\ +| HEADSETS | +\*-----------------------------------------------------------------*/ + &kraken_chroma_device, + &kraken_v2_device, + &kraken_ultimate_device, + &kraken_kitty_device, + &tiamat_71_v2_device, +/*-----------------------------------------------------------------*\ +| OTHER | +\*-----------------------------------------------------------------*/ + &base_station_device, + &base_station_v2_device, + &mouse_bungee_device, + &charging_pad_chroma_device, + &chromaargb_device, + &chromahdk_device, + &chroma_pc_case_lighting_kit_device, + &core_device, + &core_x_device, + &laptop_stand_chroma_device, + &laptop_stand_chroma_v2_device, + &mug_holder_device, + &mouse_dock_chroma_device, + &nommo_chroma_device, + &nommo_pro_device, + &o11_dynamic_device, + &seiren_emote_device, +}; + +const unsigned int RAZER_NUM_DEVICES = (sizeof(razer_device_list) / sizeof(razer_device_list[ 0 ])); +const razer_device** device_list = razer_device_list; \ No newline at end of file diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index 4288d233c..8a33f448b 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -1,4 +1,10 @@ -#define RAZER_MAX_ZONES 6 +/*-----------------------------------------*\ +| RazerDevices.h | +| | +| Razer device table definitions | +| | +| Adam Honse (CalcProgrammer1) 9/4/2021 | +\*-----------------------------------------*/ #include #include "RGBController.h" @@ -9,6 +15,14 @@ \*-----------------------------------------------------*/ #define RAZER_VID 0x1532 +/*-----------------------------------------------------*\ +| Razer maximum zones | +| If a new device has more than RAZER_MAX_ZONES, | +| increment RAZER_MAX_ZONES and update all device | +| tables accordingly. | +\*-----------------------------------------------------*/ +#define RAZER_MAX_ZONES 6 + /*-----------------------------------------------------*\ | Keyboard product IDs | | List taken from OpenRazer | @@ -224,8126 +238,8 @@ typedef struct unsigned int keymap_size; } razer_device; -/*-------------------------------------------------------------------------*\ -| KEYMAPS | -\*-------------------------------------------------------------------------*/ -#define BLACKWIDOW_CHROMA_KEYMAP_SIZE (sizeof(blackwidow_chroma_keymap) / sizeof(blackwidow_chroma_keymap[0])) - -static const razer_key blackwidow_chroma_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 0, 20, "Logo" }, - { 0, 1, 0, "Key: M1" }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 0, "Key: M2" }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 2, 18, KEY_EN_NUMPAD_7 }, - { 0, 2, 19, KEY_EN_NUMPAD_8 }, - { 0, 2, 20, KEY_EN_NUMPAD_9 }, - { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 0, "Key: M3" }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 18, KEY_EN_NUMPAD_4 }, - { 0, 3, 19, KEY_EN_NUMPAD_5 }, - { 0, 3, 20, KEY_EN_NUMPAD_6 }, - { 0, 4, 0, "Key: M4" }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_NUMPAD_1 }, - { 0, 4, 19, KEY_EN_NUMPAD_2 }, - { 0, 4, 20, KEY_EN_NUMPAD_3 }, - { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 0, "Key: M5" }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, - { 0, 5, 19, KEY_EN_NUMPAD_0 }, - { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, -}; - -#define BLACKWIDOW_CHROMA_TE_KEYMAP_SIZE (sizeof(blackwidow_chroma_te_keymap) / sizeof(blackwidow_chroma_te_keymap[0])) - -static const razer_key blackwidow_chroma_te_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 0, 20, "Logo" }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 7, KEY_EN_SPACE }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, -}; - -#define BLACKWIDOW_V3_TKL_KEYMAP_SIZE (sizeof(blackwidow_v3_tkl_keymap) / sizeof(blackwidow_v3_tkl_keymap[0])) - -static const razer_key blackwidow_v3_tkl_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, -}; - -#define BLACKWIDOW_V3_MINI_KEYMAP_SIZE (sizeof(blackwidow_v3_mini_keymap) / sizeof(blackwidow_v3_mini_keymap[0])) - -static const razer_key blackwidow_v3_mini_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 0, KEY_EN_ESCAPE }, - { 0, 0, 1, KEY_EN_1 }, - { 0, 0, 2, KEY_EN_2 }, - { 0, 0, 3, KEY_EN_3 }, - { 0, 0, 4, KEY_EN_4 }, - { 0, 0, 5, KEY_EN_5 }, - { 0, 0, 6, KEY_EN_6 }, - { 0, 0, 7, KEY_EN_7 }, - { 0, 0, 8, KEY_EN_8 }, - { 0, 0, 9, KEY_EN_9 }, - { 0, 0, 10, KEY_EN_0 }, - { 0, 0, 11, KEY_EN_MINUS }, - { 0, 0, 12, KEY_EN_EQUALS }, - { 0, 0, 14, KEY_EN_BACKSPACE }, - { 0, 0, 15, KEY_EN_DELETE }, - { 0, 1, 0, KEY_EN_TAB }, - { 0, 1, 1, KEY_EN_Q }, - { 0, 1, 2, KEY_EN_W }, - { 0, 1, 3, KEY_EN_E }, - { 0, 1, 4, KEY_EN_R }, - { 0, 1, 5, KEY_EN_T }, - { 0, 1, 6, KEY_EN_Y }, - { 0, 1, 7, KEY_EN_U }, - { 0, 1, 8, KEY_EN_I }, - { 0, 1, 9, KEY_EN_O }, - { 0, 1, 10, KEY_EN_P }, - { 0, 1, 11, KEY_EN_LEFT_BRACKET }, - { 0, 1, 12, KEY_EN_RIGHT_BRACKET }, - { 0, 1, 13, KEY_EN_ANSI_BACK_SLASH }, - { 0, 1, 15, KEY_EN_PAGE_UP }, - { 0, 2, 0, KEY_EN_CAPS_LOCK }, - { 0, 2, 1, KEY_EN_A }, - { 0, 2, 2, KEY_EN_S }, - { 0, 2, 3, KEY_EN_D }, - { 0, 2, 4, KEY_EN_F }, - { 0, 2, 5, KEY_EN_G }, - { 0, 2, 6, KEY_EN_H }, - { 0, 2, 7, KEY_EN_J }, - { 0, 2, 8, KEY_EN_K }, - { 0, 2, 9, KEY_EN_L }, - { 0, 2, 10, KEY_EN_SEMICOLON }, - { 0, 2, 11, KEY_EN_QUOTE }, - { 0, 2, 12, KEY_EN_POUND }, - { 0, 2, 13, KEY_EN_ANSI_ENTER }, - { 0, 2, 15, KEY_EN_PAGE_DOWN }, - { 0, 3, 0, KEY_EN_LEFT_SHIFT }, - { 0, 3, 1, KEY_EN_ISO_BACK_SLASH }, - { 0, 3, 2, KEY_EN_Z }, - { 0, 3, 3, KEY_EN_X }, - { 0, 3, 4, KEY_EN_C }, - { 0, 3, 5, KEY_EN_V }, - { 0, 3, 6, KEY_EN_B }, - { 0, 3, 7, KEY_EN_N }, - { 0, 3, 8, KEY_EN_M }, - { 0, 3, 9, KEY_EN_COMMA }, - { 0, 3, 10, KEY_EN_PERIOD }, - { 0, 3, 11, KEY_EN_FORWARD_SLASH }, - { 0, 3, 13, KEY_EN_RIGHT_SHIFT }, - { 0, 3, 14, KEY_EN_UP_ARROW }, - { 0, 3, 15, KEY_EN_INSERT }, - { 0, 4, 0, KEY_EN_LEFT_CONTROL }, - { 0, 4, 1, KEY_EN_LEFT_WINDOWS }, - { 0, 4, 2, KEY_EN_LEFT_ALT }, - { 0, 4, 6, KEY_EN_SPACE }, - { 0, 4, 7, "Logo" }, - { 0, 4, 10, KEY_EN_RIGHT_ALT }, - { 0, 4, 11, KEY_EN_RIGHT_FUNCTION }, - { 0, 4, 12, KEY_EN_RIGHT_CONTROL }, - { 0, 4, 13, KEY_EN_LEFT_ARROW }, - { 0, 4, 14, KEY_EN_DOWN_ARROW }, - { 0, 4, 15, KEY_EN_RIGHT_ARROW }, -}; - -#define BOOK_13_2020_KEYMAP_SIZE (sizeof(book_13_2020_keymap) / sizeof(book_13_2020_keymap[0])) - -static const razer_key book_13_2020_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 2, KEY_EN_F1 }, - { 0, 0, 3, KEY_EN_F2 }, - { 0, 0, 4, KEY_EN_F3 }, - { 0, 0, 5, KEY_EN_F4 }, - { 0, 0, 6, KEY_EN_F5 }, - { 0, 0, 7, KEY_EN_F6 }, - { 0, 0, 8, KEY_EN_F7 }, - { 0, 0, 9, KEY_EN_F8 }, - { 0, 0, 10, KEY_EN_F9 }, - { 0, 0, 11, KEY_EN_F10 }, - { 0, 0, 12, KEY_EN_F11 }, - { 0, 0, 13, KEY_EN_F12 }, - { 0, 0, 14, KEY_EN_DELETE }, - { 0, 0, 15, "Key: Power" }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 15, KEY_EN_BACKSPACE }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 15, KEY_EN_ANSI_BACK_SLASH }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 15, KEY_EN_ANSI_ENTER }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 15, KEY_EN_RIGHT_SHIFT }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_FUNCTION }, - { 0, 5, 3, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 5, KEY_EN_LEFT_ALT }, - { 0, 5, 9, KEY_EN_RIGHT_ALT }, - { 0, 5, 11, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 12, KEY_EN_LEFT_ARROW }, - { 0, 5, 13, KEY_EN_UP_ARROW }, - { 0, 5, 14, KEY_EN_RIGHT_ARROW }, - { 0, 5, 15, KEY_EN_DOWN_ARROW }, -}; - -#define BLADE_14_2021_KEYMAP_SIZE (sizeof(blade_14_2021_keymap) / sizeof(blade_14_2021_keymap[0])) - -static const razer_key blade_14_2021_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 2, KEY_EN_F1 }, - { 0, 0, 3, KEY_EN_F2 }, - { 0, 0, 4, KEY_EN_F3 }, - { 0, 0, 5, KEY_EN_F4 }, - { 0, 0, 6, KEY_EN_F5 }, - { 0, 0, 7, KEY_EN_F6 }, - { 0, 0, 8, KEY_EN_F7 }, - { 0, 0, 9, KEY_EN_F8 }, - { 0, 0, 10, KEY_EN_F9 }, - { 0, 0, 11, KEY_EN_F10 }, - { 0, 0, 12, KEY_EN_F11 }, - { 0, 0, 13, KEY_EN_F12 }, - { 0, 0, 14, KEY_EN_DELETE }, - { 0, 0, 15, "Key: Power" }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 15, KEY_EN_BACKSPACE }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 15, KEY_EN_ANSI_BACK_SLASH }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 15, KEY_EN_ANSI_ENTER }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 15, KEY_EN_RIGHT_SHIFT }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_FUNCTION }, - { 0, 5, 3, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 5, KEY_EN_LEFT_ALT }, - { 0, 5, 9, KEY_EN_RIGHT_ALT }, - { 0, 5, 11, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 12, KEY_EN_LEFT_ARROW }, - { 0, 5, 13, KEY_EN_UP_ARROW }, - { 0, 5, 14, KEY_EN_RIGHT_ARROW }, - { 0, 5, 15, KEY_EN_DOWN_ARROW }, -}; - -#define BLADE_17_PRO_2021_KEYMAP_SIZE (sizeof(blade_17_pro_2021_keymap) / sizeof(blade_17_pro_2021_keymap[0])) - -static const razer_key blade_17_pro_2021_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 2, KEY_EN_F1 }, - { 0, 0, 3, KEY_EN_F2 }, - { 0, 0, 4, KEY_EN_F3 }, - { 0, 0, 5, KEY_EN_F4 }, - { 0, 0, 6, KEY_EN_F5 }, - { 0, 0, 7, KEY_EN_F6 }, - { 0, 0, 8, KEY_EN_F7 }, - { 0, 0, 9, KEY_EN_F8 }, - { 0, 0, 10, KEY_EN_F9 }, - { 0, 0, 11, KEY_EN_F10 }, - { 0, 0, 12, KEY_EN_F11 }, - { 0, 0, 13, KEY_EN_F12 }, - { 0, 0, 14, KEY_EN_INSERT }, - { 0, 0, 15, KEY_EN_DELETE }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 15, KEY_EN_BACKSPACE }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_ENTER }, - { 0, 2, 15, KEY_EN_ANSI_BACK_SLASH }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 15, KEY_EN_RIGHT_SHIFT }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_FUNCTION }, - { 0, 5, 3, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 5, KEY_EN_LEFT_ALT }, - { 0, 5, 9, KEY_EN_RIGHT_ALT }, - { 0, 5, 10, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 11, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 12, KEY_EN_LEFT_ARROW }, - { 0, 5, 13, KEY_EN_UP_ARROW }, - { 0, 5, 14, KEY_EN_RIGHT_ARROW }, - { 0, 5, 15, KEY_EN_DOWN_ARROW }, -}; - -#define BLADE_PRO_2017_KEYMAP_SIZE (sizeof(blade_pro_2017_keymap) / sizeof(blade_pro_2017_keymap[0])) - -static const razer_key blade_pro_2017_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 2, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_INSERT }, - { 0, 0, 17, KEY_EN_DELETE }, - { 0, 0, 19, KEY_EN_MEDIA_PREVIOUS }, - { 0, 0, 20, KEY_EN_MEDIA_NEXT }, - { 0, 0, 21, "Key: Media Volume" }, - { 0, 0, 23, KEY_EN_MEDIA_PLAY_PAUSE }, - { 0, 0, 24, KEY_EN_MEDIA_MUTE }, - { 0, 1, 2, KEY_EN_BACK_TICK }, - { 0, 1, 3, KEY_EN_1 }, - { 0, 1, 4, KEY_EN_2 }, - { 0, 1, 5, KEY_EN_3 }, - { 0, 1, 6, KEY_EN_4 }, - { 0, 1, 7, KEY_EN_5 }, - { 0, 1, 8, KEY_EN_6 }, - { 0, 1, 9, KEY_EN_7 }, - { 0, 1, 10, KEY_EN_8 }, - { 0, 1, 11, KEY_EN_9 }, - { 0, 1, 12, KEY_EN_0 }, - { 0, 1, 13, KEY_EN_MINUS }, - { 0, 1, 14, KEY_EN_EQUALS }, - { 0, 1, 15, KEY_EN_BACKSPACE }, - { 0, 2, 2, KEY_EN_TAB }, - { 0, 2, 4, KEY_EN_Q }, - { 0, 2, 5, KEY_EN_W }, - { 0, 2, 6, KEY_EN_E }, - { 0, 2, 7, KEY_EN_R }, - { 0, 2, 8, KEY_EN_T }, - { 0, 2, 9, KEY_EN_Y }, - { 0, 2, 10, KEY_EN_U }, - { 0, 2, 11, KEY_EN_I }, - { 0, 2, 12, KEY_EN_O }, - { 0, 2, 13, KEY_EN_P }, - { 0, 2, 14, KEY_EN_LEFT_BRACKET }, - { 0, 2, 15, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 17, KEY_EN_ANSI_BACK_SLASH }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 4, KEY_EN_A }, - { 0, 3, 5, KEY_EN_S }, - { 0, 3, 6, KEY_EN_D }, - { 0, 3, 7, KEY_EN_F }, - { 0, 3, 8, KEY_EN_G }, - { 0, 3, 9, KEY_EN_H }, - { 0, 3, 10, KEY_EN_J }, - { 0, 3, 11, KEY_EN_K }, - { 0, 3, 12, KEY_EN_L }, - { 0, 3, 13, KEY_EN_SEMICOLON }, - { 0, 3, 14, KEY_EN_QUOTE }, - { 0, 3, 18, KEY_EN_ANSI_ENTER }, - { 0, 4, 0, KEY_EN_LEFT_SHIFT }, - { 0, 4, 4, KEY_EN_Z }, - { 0, 4, 5, KEY_EN_X }, - { 0, 4, 6, KEY_EN_C }, - { 0, 4, 7, KEY_EN_V }, - { 0, 4, 8, KEY_EN_B }, - { 0, 4, 9, KEY_EN_N }, - { 0, 4, 10, KEY_EN_M }, - { 0, 4, 11, KEY_EN_COMMA }, - { 0, 4, 12, KEY_EN_PERIOD }, - { 0, 4, 13, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_RIGHT_SHIFT }, - { 0, 5, 0, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_FUNCTION }, - { 0, 5, 3, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 5, KEY_EN_LEFT_ALT }, - { 0, 5, 7, KEY_EN_SPACE }, - { 0, 5, 10, KEY_EN_RIGHT_ALT }, - { 0, 5, 12, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 13, KEY_EN_LEFT_ARROW }, - { 0, 5, 14, KEY_EN_DOWN_ARROW }, - { 0, 5, 15, KEY_EN_RIGHT_ARROW }, - { 0, 5, 16, KEY_EN_RIGHT_FUNCTION }, -}; - -#define BLADE_STEALTH_2016_KEYMAP_SIZE (sizeof(blade_stealth_2016_keymap) / sizeof(blade_stealth_2016_keymap[0])) - -static const razer_key blade_stealth_2016_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 2, KEY_EN_F1 }, - { 0, 0, 3, KEY_EN_F2 }, - { 0, 0, 4, KEY_EN_F3 }, - { 0, 0, 5, KEY_EN_F4 }, - { 0, 0, 6, KEY_EN_F5 }, - { 0, 0, 7, KEY_EN_F6 }, - { 0, 0, 8, KEY_EN_F7 }, - { 0, 0, 9, KEY_EN_F8 }, - { 0, 0, 10, KEY_EN_F9 }, - { 0, 0, 11, KEY_EN_F10 }, - { 0, 0, 12, KEY_EN_F11 }, - { 0, 0, 13, KEY_EN_F12 }, - { 0, 0, 14, KEY_EN_INSERT }, - { 0, 0, 15, KEY_EN_DELETE }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_BACKSPACE }, - { 0, 2, 0, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_ANSI_BACK_SLASH }, - { 0, 3, 0, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 15, KEY_EN_ANSI_ENTER }, - { 0, 4, 0, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_Z }, - { 0, 4, 3, KEY_EN_X }, - { 0, 4, 4, KEY_EN_C }, - { 0, 4, 5, KEY_EN_V }, - { 0, 4, 6, KEY_EN_B }, - { 0, 4, 7, KEY_EN_N }, - { 0, 4, 8, KEY_EN_M }, - { 0, 4, 9, KEY_EN_COMMA }, - { 0, 4, 10, KEY_EN_PERIOD }, - { 0, 4, 11, KEY_EN_FORWARD_SLASH }, - { 0, 4, 12, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 13, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 5, 0, KEY_EN_LEFT_CONTROL }, - { 0, 5, 1, KEY_EN_LEFT_FUNCTION }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 5, KEY_EN_SPACE }, - { 0, 5, 6, KEY_EN_SPACE }, - { 0, 5, 8, KEY_EN_SPACE }, - { 0, 5, 9, KEY_EN_RIGHT_ALT }, - { 0, 5, 10, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 11, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 12, KEY_EN_LEFT_ARROW }, - { 0, 5, 13, KEY_EN_UP_ARROW }, - { 0, 5, 14, KEY_EN_RIGHT_ARROW }, - { 0, 5, 15, KEY_EN_DOWN_ARROW }, -}; - -#define CYNOSA_CHROMA_KEYMAP_SIZE (sizeof(cynosa_chroma_keymap) / sizeof(cynosa_chroma_keymap[0])) - -static const razer_key cynosa_chroma_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 0, 20, "Logo" }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 2, 18, KEY_EN_NUMPAD_7 }, - { 0, 2, 19, KEY_EN_NUMPAD_8 }, - { 0, 2, 20, KEY_EN_NUMPAD_9 }, - { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 18, KEY_EN_NUMPAD_4 }, - { 0, 3, 19, KEY_EN_NUMPAD_5 }, - { 0, 3, 20, KEY_EN_NUMPAD_6 }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_NUMPAD_1 }, - { 0, 4, 19, KEY_EN_NUMPAD_2 }, - { 0, 4, 20, KEY_EN_NUMPAD_3 }, - { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 7, KEY_EN_SPACE }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, - { 0, 5, 19, KEY_EN_NUMPAD_0 }, - { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, -}; - -#define CYNOSA_CHROMA_V2_KEYMAP_SIZE (sizeof(cynosa_chroma_v2_keymap) / sizeof(cynosa_chroma_v2_keymap[0])) - -static const razer_key cynosa_chroma_v2_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 0, 20, "Logo" }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 2, 18, KEY_EN_NUMPAD_7 }, - { 0, 2, 19, KEY_EN_NUMPAD_8 }, - { 0, 2, 20, KEY_EN_NUMPAD_9 }, - { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 18, KEY_EN_NUMPAD_4 }, - { 0, 3, 19, KEY_EN_NUMPAD_5 }, - { 0, 3, 20, KEY_EN_NUMPAD_6 }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_NUMPAD_1 }, - { 0, 4, 19, KEY_EN_NUMPAD_2 }, - { 0, 4, 20, KEY_EN_NUMPAD_3 }, - { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 7, KEY_EN_SPACE }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, - { 0, 5, 19, KEY_EN_NUMPAD_0 }, - { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, -}; - -#define HUNTSMAN_ELITE_KEYMAP_SIZE (sizeof(huntsman_elite_keymap) / sizeof(huntsman_elite_keymap[0])) - -static const razer_key huntsman_elite_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 0, 18, KEY_EN_MEDIA_PREVIOUS }, - { 0, 0, 19, KEY_EN_MEDIA_PLAY_PAUSE }, - { 0, 0, 20, KEY_EN_MEDIA_NEXT }, - { 0, 0, 21, KEY_EN_MEDIA_MUTE }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 2, 18, KEY_EN_NUMPAD_7 }, - { 0, 2, 19, KEY_EN_NUMPAD_8 }, - { 0, 2, 20, KEY_EN_NUMPAD_9 }, - { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 18, KEY_EN_NUMPAD_4 }, - { 0, 3, 19, KEY_EN_NUMPAD_5 }, - { 0, 3, 20, KEY_EN_NUMPAD_6 }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_NUMPAD_1 }, - { 0, 4, 19, KEY_EN_NUMPAD_2 }, - { 0, 4, 20, KEY_EN_NUMPAD_3 }, - { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 7, KEY_EN_SPACE }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, - { 0, 5, 19, KEY_EN_NUMPAD_0 }, - { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, -}; - -#define HUNTSMAN_V2_ANALOG_KEYMAP_SIZE (sizeof(huntsman_v2_analog_keymap) / sizeof(huntsman_v2_analog_keymap[0])) - -static const razer_key huntsman_v2_analog_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 0, 18, KEY_EN_MEDIA_PREVIOUS }, - { 0, 0, 19, KEY_EN_MEDIA_PLAY_PAUSE }, - { 0, 0, 20, KEY_EN_MEDIA_NEXT }, - { 0, 0, 21, KEY_EN_MEDIA_MUTE }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 2, 18, KEY_EN_NUMPAD_7 }, - { 0, 2, 19, KEY_EN_NUMPAD_8 }, - { 0, 2, 20, KEY_EN_NUMPAD_9 }, - { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 18, KEY_EN_NUMPAD_4 }, - { 0, 3, 19, KEY_EN_NUMPAD_5 }, - { 0, 3, 20, KEY_EN_NUMPAD_6 }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_NUMPAD_1 }, - { 0, 4, 19, KEY_EN_NUMPAD_2 }, - { 0, 4, 20, KEY_EN_NUMPAD_3 }, - { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 7, KEY_EN_SPACE }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, - { 0, 5, 19, KEY_EN_NUMPAD_0 }, - { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, -}; - -#define HUNTSMAN_KEYMAP_SIZE (sizeof(huntsman_keymap) / sizeof(huntsman_keymap[0])) - -static const razer_key huntsman_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 2, 18, KEY_EN_NUMPAD_7 }, - { 0, 2, 19, KEY_EN_NUMPAD_8 }, - { 0, 2, 20, KEY_EN_NUMPAD_9 }, - { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 18, KEY_EN_NUMPAD_4 }, - { 0, 3, 19, KEY_EN_NUMPAD_5 }, - { 0, 3, 20, KEY_EN_NUMPAD_6 }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_NUMPAD_1 }, - { 0, 4, 19, KEY_EN_NUMPAD_2 }, - { 0, 4, 20, KEY_EN_NUMPAD_3 }, - { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 7, KEY_EN_SPACE }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, - { 0, 5, 19, KEY_EN_NUMPAD_0 }, - { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, -}; - -#define HUNTSMAN_MINI_KEYMAP_SIZE (sizeof(huntsman_mini_keymap) / sizeof(huntsman_mini_keymap[0])) - -static const razer_key huntsman_mini_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 2, KEY_EN_1 }, - { 0, 0, 3, KEY_EN_2 }, - { 0, 0, 4, KEY_EN_3 }, - { 0, 0, 5, KEY_EN_4 }, - { 0, 0, 6, KEY_EN_5 }, - { 0, 0, 7, KEY_EN_6 }, - { 0, 0, 8, KEY_EN_7 }, - { 0, 0, 9, KEY_EN_8 }, - { 0, 0, 10, KEY_EN_9 }, - { 0, 0, 11, KEY_EN_0 }, - { 0, 0, 12, KEY_EN_MINUS }, - { 0, 0, 13, KEY_EN_EQUALS }, - { 0, 0, 14, KEY_EN_BACKSPACE }, - { 0, 1, 1, KEY_EN_TAB }, - { 0, 1, 2, KEY_EN_Q }, - { 0, 1, 3, KEY_EN_W }, - { 0, 1, 4, KEY_EN_E }, - { 0, 1, 5, KEY_EN_R }, - { 0, 1, 6, KEY_EN_T }, - { 0, 1, 7, KEY_EN_Y }, - { 0, 1, 8, KEY_EN_U }, - { 0, 1, 9, KEY_EN_I }, - { 0, 1, 10, KEY_EN_O }, - { 0, 1, 11, KEY_EN_P }, - { 0, 1, 12, KEY_EN_LEFT_BRACKET }, - { 0, 1, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 1, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 1, KEY_EN_CAPS_LOCK }, - { 0, 2, 2, KEY_EN_A }, - { 0, 2, 3, KEY_EN_S }, - { 0, 2, 4, KEY_EN_D }, - { 0, 2, 5, KEY_EN_F }, - { 0, 2, 6, KEY_EN_G }, - { 0, 2, 7, KEY_EN_H }, - { 0, 2, 8, KEY_EN_J }, - { 0, 2, 9, KEY_EN_K }, - { 0, 2, 10, KEY_EN_L }, - { 0, 2, 11, KEY_EN_SEMICOLON }, - { 0, 2, 12, KEY_EN_QUOTE }, - { 0, 2, 13, KEY_EN_POUND }, - { 0, 2, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 1, KEY_EN_LEFT_SHIFT }, - { 0, 3, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 3, 3, KEY_EN_Z }, - { 0, 3, 4, KEY_EN_X }, - { 0, 3, 5, KEY_EN_C }, - { 0, 3, 6, KEY_EN_V }, - { 0, 3, 7, KEY_EN_B }, - { 0, 3, 8, KEY_EN_N }, - { 0, 3, 9, KEY_EN_M }, - { 0, 3, 10, KEY_EN_COMMA }, - { 0, 3, 11, KEY_EN_PERIOD }, - { 0, 3, 12, KEY_EN_FORWARD_SLASH }, - { 0, 3, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 1, KEY_EN_LEFT_CONTROL }, - { 0, 4, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 4, 3, KEY_EN_LEFT_ALT }, - { 0, 4, 7, KEY_EN_SPACE }, - { 0, 4, 11, KEY_EN_RIGHT_ALT }, - { 0, 4, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 4, 13, KEY_EN_MENU }, - { 0, 4, 14, KEY_EN_RIGHT_CONTROL }, -}; - -#define HUNTSMAN_TE_KEYMAP_SIZE (sizeof(huntsman_te_keymap) / sizeof(huntsman_te_keymap[0])) - -static const razer_key huntsman_te_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 7, KEY_EN_SPACE }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, -}; - -#define HUNTSMAN_V2_KEYMAP_SIZE (sizeof(huntsman_v2_keymap) / sizeof(huntsman_v2_keymap[0])) - -static const razer_key huntsman_v2_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 0, KEY_EN_ESCAPE }, - { 0, 0, 2, KEY_EN_F1 }, - { 0, 0, 3, KEY_EN_F2 }, - { 0, 0, 4, KEY_EN_F3 }, - { 0, 0, 5, KEY_EN_F4 }, - { 0, 0, 6, KEY_EN_F5 }, - { 0, 0, 7, KEY_EN_F6 }, - { 0, 0, 8, KEY_EN_F7 }, - { 0, 0, 9, KEY_EN_F8 }, - { 0, 0, 10, KEY_EN_F9 }, - { 0, 0, 11, KEY_EN_F10 }, - { 0, 0, 12, KEY_EN_F11 }, - { 0, 0, 13, KEY_EN_F12 }, - { 0, 0, 14, KEY_EN_PRINT_SCREEN }, - { 0, 0, 15, KEY_EN_SCROLL_LOCK }, - { 0, 0, 16, KEY_EN_PAUSE_BREAK }, - { 0, 0, 17, KEY_EN_MEDIA_PREVIOUS }, - { 0, 0, 18, KEY_EN_MEDIA_PLAY_PAUSE }, - { 0, 0, 19, KEY_EN_MEDIA_NEXT }, - { 0, 0, 20, KEY_EN_MEDIA_MUTE }, - { 0, 1, 0, KEY_EN_BACK_TICK }, - { 0, 1, 1, KEY_EN_1 }, - { 0, 1, 2, KEY_EN_2 }, - { 0, 1, 3, KEY_EN_3 }, - { 0, 1, 4, KEY_EN_4 }, - { 0, 1, 5, KEY_EN_5 }, - { 0, 1, 6, KEY_EN_6 }, - { 0, 1, 7, KEY_EN_7 }, - { 0, 1, 8, KEY_EN_8 }, - { 0, 1, 9, KEY_EN_9 }, - { 0, 1, 10, KEY_EN_0 }, - { 0, 1, 11, KEY_EN_MINUS }, - { 0, 1, 12, KEY_EN_EQUALS }, - { 0, 1, 13, KEY_EN_BACKSPACE }, - { 0, 1, 14, KEY_EN_INSERT }, - { 0, 1, 15, KEY_EN_HOME }, - { 0, 1, 16, KEY_EN_PAGE_UP }, - { 0, 1, 17, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 18, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 19, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 20, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 0, KEY_EN_TAB }, - { 0, 2, 1, KEY_EN_Q }, - { 0, 2, 2, KEY_EN_W }, - { 0, 2, 3, KEY_EN_E }, - { 0, 2, 4, KEY_EN_R }, - { 0, 2, 5, KEY_EN_T }, - { 0, 2, 6, KEY_EN_Y }, - { 0, 2, 7, KEY_EN_U }, - { 0, 2, 8, KEY_EN_I }, - { 0, 2, 9, KEY_EN_O }, - { 0, 2, 10, KEY_EN_P }, - { 0, 2, 11, KEY_EN_LEFT_BRACKET }, - { 0, 2, 12, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 13, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 14, KEY_EN_DELETE }, - { 0, 2, 15, KEY_EN_END }, - { 0, 2, 16, KEY_EN_PAGE_DOWN }, - { 0, 2, 17, KEY_EN_NUMPAD_7 }, - { 0, 2, 18, KEY_EN_NUMPAD_8 }, - { 0, 2, 19, KEY_EN_NUMPAD_9 }, - { 0, 2, 20, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 0, KEY_EN_CAPS_LOCK }, - { 0, 3, 1, KEY_EN_A }, - { 0, 3, 2, KEY_EN_S }, - { 0, 3, 3, KEY_EN_D }, - { 0, 3, 4, KEY_EN_F }, - { 0, 3, 5, KEY_EN_G }, - { 0, 3, 6, KEY_EN_H }, - { 0, 3, 7, KEY_EN_J }, - { 0, 3, 8, KEY_EN_K }, - { 0, 3, 9, KEY_EN_L }, - { 0, 3, 10, KEY_EN_SEMICOLON }, - { 0, 3, 11, KEY_EN_QUOTE }, - { 0, 3, 12, KEY_EN_POUND }, - { 0, 3, 13, KEY_EN_ANSI_ENTER }, - { 0, 3, 17, KEY_EN_NUMPAD_4 }, - { 0, 3, 18, KEY_EN_NUMPAD_5 }, - { 0, 3, 19, KEY_EN_NUMPAD_6 }, - { 0, 4, 0, KEY_EN_LEFT_SHIFT }, - { 0, 4, 1, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 2, KEY_EN_Z }, - { 0, 4, 3, KEY_EN_X }, - { 0, 4, 4, KEY_EN_C }, - { 0, 4, 5, KEY_EN_V }, - { 0, 4, 6, KEY_EN_B }, - { 0, 4, 7, KEY_EN_N }, - { 0, 4, 8, KEY_EN_M }, - { 0, 4, 9, KEY_EN_COMMA }, - { 0, 4, 10, KEY_EN_PERIOD }, - { 0, 4, 11, KEY_EN_FORWARD_SLASH }, - { 0, 4, 13, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 15, KEY_EN_UP_ARROW }, - { 0, 4, 17, KEY_EN_NUMPAD_1 }, - { 0, 4, 18, KEY_EN_NUMPAD_2 }, - { 0, 4, 19, KEY_EN_NUMPAD_3 }, - { 0, 4, 20, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 0, KEY_EN_LEFT_CONTROL }, - { 0, 5, 1, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 2, KEY_EN_LEFT_ALT }, - { 0, 5, 6, KEY_EN_SPACE }, - { 0, 5, 10, KEY_EN_RIGHT_ALT }, - { 0, 5, 11, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 12, KEY_EN_MENU }, - { 0, 5, 13, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 14, KEY_EN_LEFT_ARROW }, - { 0, 5, 15, KEY_EN_DOWN_ARROW }, - { 0, 5, 16, KEY_EN_RIGHT_ARROW }, - { 0, 5, 18, KEY_EN_NUMPAD_0 }, - { 0, 5, 19, KEY_EN_NUMPAD_PERIOD }, -}; - -#define HUNTSMAN_V2_TKL_KEYMAP_SIZE (sizeof(huntsman_v2_tkl_keymap) / sizeof(huntsman_v2_tkl_keymap[0])) - -static const razer_key huntsman_v2_tkl_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 0, KEY_EN_ESCAPE }, - { 0, 0, 2, KEY_EN_F1 }, - { 0, 0, 3, KEY_EN_F2 }, - { 0, 0, 4, KEY_EN_F3 }, - { 0, 0, 5, KEY_EN_F4 }, - { 0, 0, 6, KEY_EN_F5 }, - { 0, 0, 7, KEY_EN_F6 }, - { 0, 0, 8, KEY_EN_F7 }, - { 0, 0, 9, KEY_EN_F8 }, - { 0, 0, 10, KEY_EN_F9 }, - { 0, 0, 11, KEY_EN_F10 }, - { 0, 0, 12, KEY_EN_F11 }, - { 0, 0, 13, KEY_EN_F12 }, - { 0, 0, 14, KEY_EN_PRINT_SCREEN }, - { 0, 0, 15, KEY_EN_SCROLL_LOCK }, - { 0, 0, 16, KEY_EN_PAUSE_BREAK }, - { 0, 1, 0, KEY_EN_BACK_TICK }, - { 0, 1, 1, KEY_EN_1 }, - { 0, 1, 2, KEY_EN_2 }, - { 0, 1, 3, KEY_EN_3 }, - { 0, 1, 4, KEY_EN_4 }, - { 0, 1, 5, KEY_EN_5 }, - { 0, 1, 6, KEY_EN_6 }, - { 0, 1, 7, KEY_EN_7 }, - { 0, 1, 8, KEY_EN_8 }, - { 0, 1, 9, KEY_EN_9 }, - { 0, 1, 10, KEY_EN_0 }, - { 0, 1, 11, KEY_EN_MINUS }, - { 0, 1, 12, KEY_EN_EQUALS }, - { 0, 1, 13, KEY_EN_BACKSPACE }, - { 0, 1, 14, KEY_EN_INSERT }, - { 0, 1, 15, KEY_EN_HOME }, - { 0, 1, 16, KEY_EN_PAGE_UP }, - { 0, 2, 0, KEY_EN_TAB }, - { 0, 2, 1, KEY_EN_Q }, - { 0, 2, 2, KEY_EN_W }, - { 0, 2, 3, KEY_EN_E }, - { 0, 2, 4, KEY_EN_R }, - { 0, 2, 5, KEY_EN_T }, - { 0, 2, 6, KEY_EN_Y }, - { 0, 2, 7, KEY_EN_U }, - { 0, 2, 8, KEY_EN_I }, - { 0, 2, 9, KEY_EN_O }, - { 0, 2, 10, KEY_EN_P }, - { 0, 2, 11, KEY_EN_LEFT_BRACKET }, - { 0, 2, 12, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 13, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 14, KEY_EN_DELETE }, - { 0, 2, 15, KEY_EN_END }, - { 0, 2, 16, KEY_EN_PAGE_DOWN }, - { 0, 3, 0, KEY_EN_CAPS_LOCK }, - { 0, 3, 1, KEY_EN_A }, - { 0, 3, 2, KEY_EN_S }, - { 0, 3, 3, KEY_EN_D }, - { 0, 3, 4, KEY_EN_F }, - { 0, 3, 5, KEY_EN_G }, - { 0, 3, 6, KEY_EN_H }, - { 0, 3, 7, KEY_EN_J }, - { 0, 3, 8, KEY_EN_K }, - { 0, 3, 9, KEY_EN_L }, - { 0, 3, 10, KEY_EN_SEMICOLON }, - { 0, 3, 11, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_ANSI_ENTER }, - { 0, 4, 0, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_Z }, - { 0, 4, 3, KEY_EN_X }, - { 0, 4, 4, KEY_EN_C }, - { 0, 4, 5, KEY_EN_V }, - { 0, 4, 6, KEY_EN_B }, - { 0, 4, 7, KEY_EN_N }, - { 0, 4, 8, KEY_EN_M }, - { 0, 4, 9, KEY_EN_COMMA }, - { 0, 4, 10, KEY_EN_PERIOD }, - { 0, 4, 11, KEY_EN_FORWARD_SLASH }, - { 0, 4, 13, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 15, KEY_EN_UP_ARROW }, - { 0, 5, 0, KEY_EN_LEFT_CONTROL }, - { 0, 5, 1, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 2, KEY_EN_LEFT_ALT }, - { 0, 5, 6, KEY_EN_SPACE }, - { 0, 5, 10, KEY_EN_RIGHT_ALT }, - { 0, 5, 11, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 12, KEY_EN_MENU }, - { 0, 5, 13, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 14, KEY_EN_LEFT_ARROW }, - { 0, 5, 15, KEY_EN_DOWN_ARROW }, - { 0, 5, 16, KEY_EN_RIGHT_ARROW }, -}; - -#define BLACKWIDOW_ELITE_KEYMAP_SIZE (sizeof(blackwidow_elite_keymap) / sizeof(blackwidow_elite_keymap[0])) - -static const razer_key blackwidow_elite_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 0, 18, KEY_EN_MEDIA_PREVIOUS }, - { 0, 0, 19, KEY_EN_MEDIA_PLAY_PAUSE }, - { 0, 0, 20, KEY_EN_MEDIA_NEXT }, - { 0, 0, 21, KEY_EN_MEDIA_MUTE }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 2, 18, KEY_EN_NUMPAD_7 }, - { 0, 2, 19, KEY_EN_NUMPAD_8 }, - { 0, 2, 20, KEY_EN_NUMPAD_9 }, - { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 18, KEY_EN_NUMPAD_4 }, - { 0, 3, 19, KEY_EN_NUMPAD_5 }, - { 0, 3, 20, KEY_EN_NUMPAD_6 }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_NUMPAD_1 }, - { 0, 4, 19, KEY_EN_NUMPAD_2 }, - { 0, 4, 20, KEY_EN_NUMPAD_3 }, - { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 6, KEY_EN_SPACE }, - { 0, 5, 10, KEY_EN_RIGHT_ALT }, - { 0, 5, 11, "Logo" }, - { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, - { 0, 5, 19, KEY_EN_NUMPAD_0 }, - { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, -}; - -#define BLACKWIDOW_CHROMA_V2_KEYMAP_SIZE (sizeof(blackwidow_chroma_v2_keymap) / sizeof(blackwidow_chroma_v2_keymap[0])) - -static const razer_key blackwidow_chroma_v2_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 0, 20, "Logo" }, - { 0, 1, 0, "Key: M1" }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 0, "Key: M2" }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 2, 18, KEY_EN_NUMPAD_7 }, - { 0, 2, 19, KEY_EN_NUMPAD_8 }, - { 0, 2, 20, KEY_EN_NUMPAD_9 }, - { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 0, "Key: M3" }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 18, KEY_EN_NUMPAD_4 }, - { 0, 3, 19, KEY_EN_NUMPAD_5 }, - { 0, 3, 20, KEY_EN_NUMPAD_6 }, - { 0, 4, 0, "Key: M4" }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_NUMPAD_1 }, - { 0, 4, 19, KEY_EN_NUMPAD_2 }, - { 0, 4, 20, KEY_EN_NUMPAD_3 }, - { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 0, "Key: M5" }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, - { 0, 5, 19, KEY_EN_NUMPAD_0 }, - { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, -}; - -#define BLACKWIDOW_2019_KEYMAP_SIZE (sizeof(blackwidow_2019_keymap) / sizeof(blackwidow_2019_keymap[0])) - -static const razer_key blackwidow_2019_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 2, 18, KEY_EN_NUMPAD_7 }, - { 0, 2, 19, KEY_EN_NUMPAD_8 }, - { 0, 2, 20, KEY_EN_NUMPAD_9 }, - { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 18, KEY_EN_NUMPAD_4 }, - { 0, 3, 19, KEY_EN_NUMPAD_5 }, - { 0, 3, 20, KEY_EN_NUMPAD_6 }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_NUMPAD_1 }, - { 0, 4, 19, KEY_EN_NUMPAD_2 }, - { 0, 4, 20, KEY_EN_NUMPAD_3 }, - { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 6, KEY_EN_SPACE }, - { 0, 5, 10, KEY_EN_RIGHT_ALT }, - { 0, 5, 11, "Logo" }, - { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, - { 0, 5, 19, KEY_EN_NUMPAD_0 }, - { 0, 5, 20, "Key: Number Pad ," }, -}; - -#define BLACKWIDOW_V3_PRO_KEYMAP_SIZE (sizeof(blackwidow_v3_pro_keymap) / sizeof(blackwidow_v3_pro_keymap[0])) - -static const razer_key blackwidow_v3_pro_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 0, KEY_EN_ESCAPE }, - { 0, 0, 2, KEY_EN_F1 }, - { 0, 0, 3, KEY_EN_F2 }, - { 0, 0, 4, KEY_EN_F3 }, - { 0, 0, 5, KEY_EN_F4 }, - { 0, 0, 6, KEY_EN_F5 }, - { 0, 0, 7, KEY_EN_F6 }, - { 0, 0, 8, KEY_EN_F7 }, - { 0, 0, 9, KEY_EN_F8 }, - { 0, 0, 10, KEY_EN_F9 }, - { 0, 0, 11, KEY_EN_F10 }, - { 0, 0, 12, KEY_EN_F11 }, - { 0, 0, 13, KEY_EN_F12 }, - { 0, 0, 14, KEY_EN_PRINT_SCREEN }, - { 0, 0, 15, KEY_EN_SCROLL_LOCK }, - { 0, 0, 16, KEY_EN_PAUSE_BREAK }, - { 0, 0, 18, KEY_EN_MEDIA_PREVIOUS }, - { 0, 0, 19, KEY_EN_MEDIA_PLAY_PAUSE }, - { 0, 0, 20, KEY_EN_MEDIA_NEXT }, - { 0, 0, 21, KEY_EN_MEDIA_MUTE }, - { 0, 1, 0, KEY_EN_BACK_TICK }, - { 0, 1, 1, KEY_EN_1 }, - { 0, 1, 2, KEY_EN_2 }, - { 0, 1, 3, KEY_EN_3 }, - { 0, 1, 4, KEY_EN_4 }, - { 0, 1, 5, KEY_EN_5 }, - { 0, 1, 6, KEY_EN_6 }, - { 0, 1, 7, KEY_EN_7 }, - { 0, 1, 8, KEY_EN_8 }, - { 0, 1, 9, KEY_EN_9 }, - { 0, 1, 10, KEY_EN_0 }, - { 0, 1, 11, KEY_EN_MINUS }, - { 0, 1, 12, KEY_EN_EQUALS }, - { 0, 1, 13, KEY_EN_BACKSPACE }, - { 0, 1, 14, KEY_EN_INSERT }, - { 0, 1, 15, KEY_EN_HOME }, - { 0, 1, 16, KEY_EN_PAGE_UP }, - { 0, 1, 17, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 18, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 19, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 20, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 0, KEY_EN_TAB }, - { 0, 2, 1, KEY_EN_Q }, - { 0, 2, 2, KEY_EN_W }, - { 0, 2, 3, KEY_EN_E }, - { 0, 2, 4, KEY_EN_R }, - { 0, 2, 5, KEY_EN_T }, - { 0, 2, 6, KEY_EN_Y }, - { 0, 2, 7, KEY_EN_U }, - { 0, 2, 8, KEY_EN_I }, - { 0, 2, 9, KEY_EN_O }, - { 0, 2, 10, KEY_EN_P }, - { 0, 2, 11, KEY_EN_LEFT_BRACKET }, - { 0, 2, 12, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 13, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 14, KEY_EN_DELETE }, - { 0, 2, 15, KEY_EN_END }, - { 0, 2, 16, KEY_EN_PAGE_DOWN }, - { 0, 2, 17, KEY_EN_NUMPAD_7 }, - { 0, 2, 18, KEY_EN_NUMPAD_8 }, - { 0, 2, 19, KEY_EN_NUMPAD_9 }, - { 0, 2, 20, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 0, KEY_EN_CAPS_LOCK }, - { 0, 3, 1, KEY_EN_A }, - { 0, 3, 2, KEY_EN_S }, - { 0, 3, 3, KEY_EN_D }, - { 0, 3, 4, KEY_EN_F }, - { 0, 3, 5, KEY_EN_G }, - { 0, 3, 6, KEY_EN_H }, - { 0, 3, 7, KEY_EN_J }, - { 0, 3, 8, KEY_EN_K }, - { 0, 3, 9, KEY_EN_L }, - { 0, 3, 10, KEY_EN_SEMICOLON }, - { 0, 3, 11, KEY_EN_QUOTE }, - { 0, 3, 12, KEY_EN_POUND }, - { 0, 3, 13, KEY_EN_ANSI_ENTER }, - { 0, 3, 14, "Logo" }, - { 0, 3, 17, KEY_EN_NUMPAD_4 }, - { 0, 3, 18, KEY_EN_NUMPAD_5 }, - { 0, 3, 19, KEY_EN_NUMPAD_6 }, - { 0, 4, 0, KEY_EN_LEFT_SHIFT }, - { 0, 4, 1, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 2, KEY_EN_Z }, - { 0, 4, 3, KEY_EN_X }, - { 0, 4, 4, KEY_EN_C }, - { 0, 4, 5, KEY_EN_V }, - { 0, 4, 6, KEY_EN_B }, - { 0, 4, 7, KEY_EN_N }, - { 0, 4, 8, KEY_EN_M }, - { 0, 4, 9, KEY_EN_COMMA }, - { 0, 4, 10, KEY_EN_PERIOD }, - { 0, 4, 11, KEY_EN_FORWARD_SLASH }, - { 0, 4, 13, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 15, KEY_EN_UP_ARROW }, - { 0, 4, 17, KEY_EN_NUMPAD_1 }, - { 0, 4, 18, KEY_EN_NUMPAD_2 }, - { 0, 4, 19, KEY_EN_NUMPAD_3 }, - { 0, 4, 20, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 0, KEY_EN_LEFT_CONTROL }, - { 0, 5, 1, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 2, KEY_EN_LEFT_ALT }, - { 0, 5, 6, KEY_EN_SPACE }, - { 0, 5, 10, KEY_EN_RIGHT_ALT }, - { 0, 5, 11, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 12, KEY_EN_MENU }, - { 0, 5, 13, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 14, KEY_EN_LEFT_ARROW }, - { 0, 5, 15, KEY_EN_DOWN_ARROW }, - { 0, 5, 16, KEY_EN_RIGHT_ARROW }, - { 0, 5, 18, KEY_EN_NUMPAD_0 }, - { 0, 5, 19, "Key: Number Pad ," }, -}; - -#define ORNATA_CHROMA_KEYMAP_SIZE (sizeof(ornata_chroma_keymap) / sizeof(ornata_chroma_keymap[0])) - -static const razer_key ornata_chroma_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE }, - { 0, 0, 3, KEY_EN_F1 }, - { 0, 0, 4, KEY_EN_F2 }, - { 0, 0, 5, KEY_EN_F3 }, - { 0, 0, 6, KEY_EN_F4 }, - { 0, 0, 7, KEY_EN_F5 }, - { 0, 0, 8, KEY_EN_F6 }, - { 0, 0, 9, KEY_EN_F7 }, - { 0, 0, 10, KEY_EN_F8 }, - { 0, 0, 11, KEY_EN_F9 }, - { 0, 0, 12, KEY_EN_F10 }, - { 0, 0, 13, KEY_EN_F11 }, - { 0, 0, 14, KEY_EN_F12 }, - { 0, 0, 15, KEY_EN_PRINT_SCREEN }, - { 0, 0, 16, KEY_EN_SCROLL_LOCK }, - { 0, 0, 17, KEY_EN_PAUSE_BREAK }, - { 0, 1, 1, KEY_EN_BACK_TICK }, - { 0, 1, 2, KEY_EN_1 }, - { 0, 1, 3, KEY_EN_2 }, - { 0, 1, 4, KEY_EN_3 }, - { 0, 1, 5, KEY_EN_4 }, - { 0, 1, 6, KEY_EN_5 }, - { 0, 1, 7, KEY_EN_6 }, - { 0, 1, 8, KEY_EN_7 }, - { 0, 1, 9, KEY_EN_8 }, - { 0, 1, 10, KEY_EN_9 }, - { 0, 1, 11, KEY_EN_0 }, - { 0, 1, 12, KEY_EN_MINUS }, - { 0, 1, 13, KEY_EN_EQUALS }, - { 0, 1, 14, KEY_EN_BACKSPACE }, - { 0, 1, 15, KEY_EN_INSERT }, - { 0, 1, 16, KEY_EN_HOME }, - { 0, 1, 17, KEY_EN_PAGE_UP }, - { 0, 1, 18, KEY_EN_NUMPAD_LOCK }, - { 0, 1, 19, KEY_EN_NUMPAD_DIVIDE }, - { 0, 1, 20, KEY_EN_NUMPAD_TIMES }, - { 0, 1, 21, KEY_EN_NUMPAD_MINUS }, - { 0, 2, 1, KEY_EN_TAB }, - { 0, 2, 2, KEY_EN_Q }, - { 0, 2, 3, KEY_EN_W }, - { 0, 2, 4, KEY_EN_E }, - { 0, 2, 5, KEY_EN_R }, - { 0, 2, 6, KEY_EN_T }, - { 0, 2, 7, KEY_EN_Y }, - { 0, 2, 8, KEY_EN_U }, - { 0, 2, 9, KEY_EN_I }, - { 0, 2, 10, KEY_EN_O }, - { 0, 2, 11, KEY_EN_P }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET }, - { 0, 2, 14, KEY_EN_ANSI_BACK_SLASH }, - { 0, 2, 15, KEY_EN_DELETE }, - { 0, 2, 16, KEY_EN_END }, - { 0, 2, 17, KEY_EN_PAGE_DOWN }, - { 0, 2, 18, KEY_EN_NUMPAD_7 }, - { 0, 2, 19, KEY_EN_NUMPAD_8 }, - { 0, 2, 20, KEY_EN_NUMPAD_9 }, - { 0, 2, 21, KEY_EN_NUMPAD_PLUS }, - { 0, 3, 1, KEY_EN_CAPS_LOCK }, - { 0, 3, 2, KEY_EN_A }, - { 0, 3, 3, KEY_EN_S }, - { 0, 3, 4, KEY_EN_D }, - { 0, 3, 5, KEY_EN_F }, - { 0, 3, 6, KEY_EN_G }, - { 0, 3, 7, KEY_EN_H }, - { 0, 3, 8, KEY_EN_J }, - { 0, 3, 9, KEY_EN_K }, - { 0, 3, 10, KEY_EN_L }, - { 0, 3, 11, KEY_EN_SEMICOLON }, - { 0, 3, 12, KEY_EN_QUOTE }, - { 0, 3, 13, KEY_EN_POUND }, - { 0, 3, 14, KEY_EN_ANSI_ENTER }, - { 0, 3, 18, KEY_EN_NUMPAD_4 }, - { 0, 3, 19, KEY_EN_NUMPAD_5 }, - { 0, 3, 20, KEY_EN_NUMPAD_6 }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH }, - { 0, 4, 3, KEY_EN_Z }, - { 0, 4, 4, KEY_EN_X }, - { 0, 4, 5, KEY_EN_C }, - { 0, 4, 6, KEY_EN_V }, - { 0, 4, 7, KEY_EN_B }, - { 0, 4, 8, KEY_EN_N }, - { 0, 4, 9, KEY_EN_M }, - { 0, 4, 10, KEY_EN_COMMA }, - { 0, 4, 11, KEY_EN_PERIOD }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH }, - { 0, 4, 14, KEY_EN_RIGHT_SHIFT }, - { 0, 4, 16, KEY_EN_UP_ARROW }, - { 0, 4, 18, KEY_EN_NUMPAD_1 }, - { 0, 4, 19, KEY_EN_NUMPAD_2 }, - { 0, 4, 20, KEY_EN_NUMPAD_3 }, - { 0, 4, 21, KEY_EN_NUMPAD_ENTER }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL }, - { 0, 5, 2, KEY_EN_LEFT_WINDOWS }, - { 0, 5, 3, KEY_EN_LEFT_ALT }, - { 0, 5, 7, KEY_EN_SPACE }, - { 0, 5, 11, KEY_EN_RIGHT_ALT }, - { 0, 5, 12, KEY_EN_RIGHT_FUNCTION }, - { 0, 5, 13, KEY_EN_MENU }, - { 0, 5, 14, KEY_EN_RIGHT_CONTROL }, - { 0, 5, 15, KEY_EN_LEFT_ARROW }, - { 0, 5, 16, KEY_EN_DOWN_ARROW }, - { 0, 5, 17, KEY_EN_RIGHT_ARROW }, - { 0, 5, 19, KEY_EN_NUMPAD_0 }, - { 0, 5, 20, KEY_EN_NUMPAD_PERIOD }, -}; - -#define TARTARUS_V2_KEYMAP_SIZE (sizeof(tartarus_v2_keymap) / sizeof(tartarus_v2_keymap[0])) - -static const razer_key tartarus_v2_keymap[] = -{ - /*---------------------------------------------------------------------*\ - | Zone, Row, Column, Key | - \*---------------------------------------------------------------------*/ - { 0, 0, 0, "Key: 01" }, - { 0, 0, 1, "Key: 02" }, - { 0, 0, 2, "Key: 03" }, - { 0, 0, 3, "Key: 04" }, - { 0, 0, 4, "Key: 05" }, - { 0, 1, 0, "Key: 06" }, - { 0, 1, 1, "Key: 07" }, - { 0, 1, 2, "Key: 08" }, - { 0, 1, 3, "Key: 09" }, - { 0, 1, 4, "Key: 10" }, - { 0, 2, 0, "Key: 11" }, - { 0, 2, 1, "Key: 12" }, - { 0, 2, 2, "Key: 13" }, - { 0, 2, 3, "Key: 14" }, - { 0, 2, 4, "Key: 15" }, - { 0, 3, 0, "Key: 16" }, - { 0, 3, 1, "Key: 17" }, - { 0, 3, 2, "Key: 18" }, - { 0, 3, 3, "Key: 19" }, - { 0, 3, 4, "Key: Scroll Wheel" }, - { 0, 3, 5, "Key: 20" }, -}; - -/*-------------------------------------------------------------------------*\ -| KEYBOARDS | -\*-------------------------------------------------------------------------*/ - -/*-------------------------------------------------------------*\ -| Razer Blackwidow 2019 1532:0241 | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_2019_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_2019_device = -{ - "Razer BlackWidow 2019", - RAZER_BLACKWIDOW_2019_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_2019_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_2019_keymap, - BLACKWIDOW_2019_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer BlackWidow Chroma | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_chroma_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_chroma_device = -{ - "Razer BlackWidow Chroma", - RAZER_BLACKWIDOW_CHROMA_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_chroma_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_chroma_keymap, - BLACKWIDOW_CHROMA_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow Chroma Overwatch 1532:0211 | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_chroma_overwatch_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_chroma_overwatch_device = -{ - "Razer Blackwidow Chroma Overwatch", - RAZER_BLACKWIDOW_OVERWATCH_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_chroma_overwatch_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow V3 1532:024E | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_v3_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_v3_device = -{ - "Razer Blackwidow V3", - RAZER_BLACKWIDOW_V3_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_v3_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer BlackWidow Chroma Tournament Edition | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_chroma_te_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_chroma_te_device = -{ - "Razer BlackWidow Chroma Tournament Edition", - RAZER_BLACKWIDOW_CHROMA_TE_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_chroma_te_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_chroma_te_keymap, - BLACKWIDOW_CHROMA_TE_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow Elite 1532:0228 | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_elite_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_elite_device = -{ - "Razer BlackWidow Elite", - RAZER_BLACKWIDOW_ELITE_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_elite_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_elite_keymap, - BLACKWIDOW_ELITE_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow Chroma V2 1532:0221 | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_chroma_v2_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_chroma_v2_device = -{ - "Razer BlackWidow Chroma V2", - RAZER_BLACKWIDOW_CHROMA_V2_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_chroma_v2_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_chroma_v2_keymap, - BLACKWIDOW_CHROMA_V2_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow V3 Pro (Wired) 1532:025A | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_v3_pro_wired_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_v3_pro_wired_device = -{ - "Razer BlackWidow V3 Pro (Wired)", - RAZER_BLACKWIDOW_V3_PRO_WIRED_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_v3_pro_wired_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_v3_pro_keymap, - BLACKWIDOW_V3_PRO_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow V3 Pro (Bluetooth) 1532:025B | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_v3_pro_bluetooth_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_v3_pro_bluetooth_device = -{ - "Razer BlackWidow V3 Pro (Bluetooth)", - RAZER_BLACKWIDOW_V3_PRO_BLUETOOTH_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_v3_pro_bluetooth_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_v3_pro_keymap, - BLACKWIDOW_V3_PRO_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow V3 Pro (Wireless) 1532:025C | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_v3_pro_wireless_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_v3_pro_wireless_device = -{ - "Razer BlackWidow V3 Pro (Wireless)", - RAZER_BLACKWIDOW_V3_PRO_WIRELESS_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_v3_pro_wireless_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_v3_pro_keymap, - BLACKWIDOW_V3_PRO_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow V3 TKL 1532:0A24 | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 18 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_v3_tkl_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 18 -}; - -static const razer_device blackwidow_v3_tkl_device = -{ - "Razer BlackWidow V3 TKL", - RAZER_BLACKWIDOW_V3_TKL_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 18, - { - &blackwidow_v3_tkl_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_v3_tkl_keymap, - BLACKWIDOW_V3_TKL_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow V3 Mini (Wired) 1532:0258 | -| | -| Zone "Keyboard" | -| Matrix | -| 5 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_v3_mini_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 5, - 16 -}; - -static const razer_device blackwidow_v3_mini_wired_device = -{ - "Razer BlackWidow V3 Mini (Wired)", - RAZER_BLACKWIDOW_V3_MINI_WIRED_PID, - DEVICE_TYPE_KEYBOARD, - true, - 5, - 16, - { - &blackwidow_v3_mini_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_v3_mini_keymap, - BLACKWIDOW_V3_MINI_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow V3 Mini (Wireless) 1532:0271 | -| | -| Zone "Keyboard" | -| Matrix | -| 5 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_device blackwidow_v3_mini_wireless_device = -{ - "Razer BlackWidow V3 Mini (Wireless)", - RAZER_BLACKWIDOW_V3_MINI_WIRELESS_PID, - DEVICE_TYPE_KEYBOARD, - true, - 5, - 16, - { - &blackwidow_v3_mini_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_v3_mini_keymap, - BLACKWIDOW_V3_MINI_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blackwidow X Chroma 1532:0216 | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_x_chroma_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_x_chroma_device = -{ - "Razer BlackWidow X Chroma", - RAZER_BLACKWIDOW_X_CHROMA_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_x_chroma_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer BlackWidow X Chroma Tournament Edition 1532:021A | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blackwidow_x_chroma_te_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device blackwidow_x_chroma_te_device = -{ - "Razer BlackWidow X Chroma Tournament Edition", - RAZER_BLACKWIDOW_X_CHROMA_TE_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &blackwidow_x_chroma_te_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blackwidow_chroma_te_keymap, - BLACKWIDOW_CHROMA_TE_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Cynosa Chroma 1532:022A | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone cynosa_chroma_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device cynosa_chroma_device = -{ - "Razer Cynosa Chroma", - RAZER_CYNOSA_CHROMA_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &cynosa_chroma_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - cynosa_chroma_keymap, - CYNOSA_CHROMA_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Cynosa v2 1532:025E | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone cynosa_v2_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device cynosa_v2_device = -{ - "Razer Cynosa v2", - RAZER_CYNOSA_V2_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &cynosa_v2_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - cynosa_chroma_v2_keymap, - CYNOSA_CHROMA_V2_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Cynosa Lite 1532:023F | -| | -| Zone "Keyboard" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone cynosa_lite_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device cynosa_lite_device = -{ - "Razer Cynosa Lite", - RAZER_CYNOSA_LITE_PID, - DEVICE_TYPE_KEYBOARD, - true, - 1, - 1, - { - &cynosa_lite_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Ornata Chroma | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone ornata_chroma_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device ornata_chroma_device = -{ - "Razer Ornata Chroma", - RAZER_ORNATA_CHROMA_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &ornata_chroma_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - ornata_chroma_keymap, - ORNATA_CHROMA_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer DeathStalker Chroma | -| | -| Zone "Keyboard" | -| Linear | -| 12 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone deathstalker_chroma_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_LINEAR, - 1, - 12 -}; - -static const razer_device deathstalker_chroma_device = -{ - "Razer DeathStalker Chroma", - RAZER_DEATHSTALKER_CHROMA_PID, - DEVICE_TYPE_KEYBOARD, - true, - 1, - 12, - { - &deathstalker_chroma_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Huntsman 1532:0227 | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone huntsman_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device huntsman_device = -{ - "Razer Huntsman", - RAZER_HUNTSMAN_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &huntsman_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - huntsman_keymap, - HUNTSMAN_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Huntsman Elite | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -| | -| Zone "Underglow" | -| Matrix | -| 3 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone huntsman_elite_keyboard_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_zone huntsman_elite_underglow_zone = -{ - "Underglow", - ZONE_TYPE_MATRIX, - 3, - 22 -}; - -static const razer_device huntsman_elite_device = -{ - "Razer Huntsman Elite", - RAZER_HUNTSMAN_ELITE_PID, - DEVICE_TYPE_KEYBOARD, - true, - 9, - 22, - { - &huntsman_elite_keyboard_zone, - &huntsman_elite_underglow_zone, - NULL, - NULL, - NULL, - NULL - }, - huntsman_elite_keymap, - HUNTSMAN_ELITE_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Huntsman V2 Analog | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -| | -| Zone "Underglow" | -| Matrix | -| 3 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone huntsman_v2_analog_keyboard_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_zone huntsman_v2_analog_underglow_zone = -{ - "Underglow", - ZONE_TYPE_MATRIX, - 3, - 22 -}; - -static const razer_device huntsman_v2_analog_device = -{ - "Razer Huntsman V2 Analog", - RAZER_HUNTSMAN_V2_ANALOG_PID, - DEVICE_TYPE_KEYBOARD, - true, - 9, - 22, - { - &huntsman_v2_analog_keyboard_zone, - &huntsman_v2_analog_underglow_zone, - NULL, - NULL, - NULL, - NULL - }, - huntsman_v2_analog_keymap, - HUNTSMAN_V2_ANALOG_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Huntsman Mini 1532:0257 | -| | -| Zone "Keyboard" | -| Matrix | -| 5 Rows, 15 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone huntsman_mini_keyboard_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 5, - 15 -}; - -static const razer_device huntsman_mini_device = -{ - "Razer Huntsman Mini", - RAZER_HUNTSMAN_MINI_PID, - DEVICE_TYPE_KEYBOARD, - true, - 5, - 15, - { - &huntsman_mini_keyboard_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - huntsman_mini_keymap, - HUNTSMAN_MINI_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Huntsman TE 1532:0243 | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 18 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone huntsman_te_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 18 -}; - -static const razer_device huntsman_te_device = -{ - "Razer Huntsman Tournament Edition", - RAZER_HUNTSMAN_TE_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 18, - { - &huntsman_te_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - huntsman_te_keymap, - HUNTSMAN_TE_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Huntsman V2 TKL 1532:026B | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 17 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone huntsman_v2_tkl_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 17 -}; - -static const razer_device huntsman_v2_tkl_device = -{ - "Razer Huntsman V2 TKL", - RAZER_HUNTSMAN_V2_TKL_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 17, - { - &huntsman_v2_tkl_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - huntsman_v2_tkl_keymap, - HUNTSMAN_V2_TKL_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Huntsman V2 1532:026C | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 22 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone huntsman_v2_keyboard_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 22 -}; - -static const razer_device huntsman_v2_device = -{ - "Razer Huntsman V2", - RAZER_HUNTSMAN_V2_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 22, - { - &huntsman_v2_keyboard_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - huntsman_v2_keymap, - HUNTSMAN_V2_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------------------*\ -| LAPTOPS | -\*-------------------------------------------------------------------------*/ - -/*-------------------------------------------------------------*\ -| Razer Blade (2016) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_2016_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_2016_device = -{ - "Razer Blade (2016)", - RAZER_BLADE_2016_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_2016_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade (Late 2016) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_late_2016_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_late_2016_device = -{ - "Razer Blade (Late 2016)", - RAZER_BLADE_LATE_2016_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_late_2016_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2018 Advanced) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2018_advanced_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_15_2018_advanced_device = -{ - "Razer Blade 15 (2018 Advanced)", - RAZER_BLADE_2018_ADVANCED_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_15_2018_advanced_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2018 Base) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2018_base_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_15_2018_base_device = -{ - "Razer Blade 15 (2018 Base)", - RAZER_BLADE_2018_BASE_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_15_2018_base_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2018 Mercury) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2018_mercury_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_15_2018_mercury_device = -{ - "Razer Blade 15 (2018 Mercury)", - RAZER_BLADE_2018_MERCURY_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_15_2018_mercury_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2019 Advanced) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2019_advanced_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_15_2019_advanced_device = -{ - "Razer Blade 15 (2019 Advanced)", - RAZER_BLADE_2019_ADVANCED_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_15_2019_advanced_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2019 Base) | -| | -| Zone "Keyboard" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2019_base_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device blade_15_2019_base_device = -{ - "Razer Blade 15 (2019 Base)", - RAZER_BLADE_2019_BASE_PID, - DEVICE_TYPE_KEYBOARD, - false, - 1, - 1, - { - &blade_15_2019_base_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2019 Mercury) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2019_mercury_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_15_2019_mercury_device = -{ - "Razer Blade 15 (2019 Mercury)", - RAZER_BLADE_2019_MERCURY_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_15_2019_mercury_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2019 Studio) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2019_studio_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_15_2019_studio_device = -{ - "Razer Blade 15 (2019 Studio)", - RAZER_BLADE_2019_STUDIO_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_15_2019_studio_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2020 Advanced) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2020_advanced_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_15_2020_advanced_device = -{ - "Razer Blade 15 (2020 Advanced)", - RAZER_BLADE_2020_ADVANCED_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_15_2020_advanced_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2020 Base) | -| | -| Zone "Keyboard" | -| Linear | -| 1 Row, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2020_base_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_LINEAR, - 1, - 16 -}; - -static const razer_device blade_15_2020_base_device = -{ - "Razer Blade 15 (2020 Base)", - RAZER_BLADE_2020_BASE_PID, - DEVICE_TYPE_KEYBOARD, - true, - 1, - 16, - { - &blade_15_2020_base_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade (Late 2020) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_late_2020_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_late_2020_device = -{ - "Razer Blade (Late 2020)", - RAZER_BLADE_LATE_2020_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_late_2020_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2021 Advanced) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2021_advanced_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_15_2021_advanced_device = -{ - "Razer Blade 15 (2021 Advanced)", - RAZER_BLADE_2021_ADVANCED_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_15_2021_advanced_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2021 Base) | -| | -| Zone "Keyboard" | -| Linear | -| 1 Row, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2021_base_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_LINEAR, - 1, - 16 -}; - -static const razer_device blade_15_2021_base_device = -{ - "Razer Blade 15 (2021 Base)", - RAZER_BLADE_2021_BASE_PID, - DEVICE_TYPE_KEYBOARD, - true, - 1, - 16, - { - &blade_15_2021_base_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 15 (2021 Base) 1532:027A | -| | -| Zone "Keyboard" | -| Linear | -| 1 Row, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_15_2021_base_v2_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_LINEAR, - 1, - 16 -}; - -static const razer_device blade_15_2021_base_v2_device = -{ - "Razer Blade 15 (2021 Base)", - RAZER_BLADE_2021_BASE_V2_PID, - DEVICE_TYPE_KEYBOARD, - true, - 1, - 16, - { - &blade_15_2021_base_v2_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade 14 (2021) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_14_2021_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_14_2021_device = -{ - "Razer Blade 14 (2021)", - RAZER_BLADE_14_2021_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_14_2021_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blade_14_2021_keymap, - BLADE_14_2021_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Book 13 (2020) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone book_13_2020_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device book_13_2020_device = -{ - "Razer Book 13 (2020)", - RAZER_BOOK_13_2020_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &book_13_2020_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - book_13_2020_keymap, - BOOK_13_2020_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Pro (2016) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 25 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_pro_2016_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 25 -}; - -static const razer_device blade_pro_2016_device = -{ - "Razer Blade Pro (2016)", - RAZER_BLADE_PRO_2016_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 25, - { - &blade_pro_2016_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Pro (2017) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 25 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_pro_2017_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 25 -}; - -static const razer_device blade_pro_2017_device = -{ - "Razer Blade Pro (2017)", - RAZER_BLADE_PRO_2017_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 25, - { - &blade_pro_2017_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blade_pro_2017_keymap, - BLADE_PRO_2017_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Pro (2017 FullHD) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 25 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_pro_2017_fullhd_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 25 -}; - -static const razer_device blade_pro_2017_fullhd_device = -{ - "Razer Blade Pro (2017 FullHD)", - RAZER_BLADE_PRO_2017_FULLHD_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 25, - { - &blade_pro_2017_fullhd_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Pro (2019) | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_pro_2019_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_pro_2019_device = -{ - "Razer Blade Pro (2019)", - RAZER_BLADE_PRO_2019_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_pro_2019_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Pro (Late 2019) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_pro_late_2019_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_pro_late_2019_device = -{ - "Razer Blade Pro (Late 2019)", - RAZER_BLADE_PRO_LATE_2019_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_pro_late_2019_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Pro 17 (2020) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_pro_17_2020_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_pro_17_2020_device = -{ - "Razer Blade Pro 17 (2020)", - RAZER_BLADE_PRO_17_2020_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_pro_17_2020_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Pro 17 (2021) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_pro_17_2021_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_pro_17_2021_device = -{ - "Razer Blade Pro 17 (2021)", - RAZER_BLADE_PRO_17_2021_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_pro_17_2021_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blade_17_pro_2021_keymap, - BLADE_17_PRO_2021_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Stealth (2016) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_stealth_2016_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_stealth_2016_device = -{ - "Razer Blade Stealth (2016)", - RAZER_BLADE_STEALTH_2016_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_stealth_2016_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - blade_stealth_2016_keymap, - BLADE_STEALTH_2016_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Stealth (Late 2016) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_stealth_late_2016_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_stealth_late_2016_device = -{ - "Razer Blade Stealth (Late 2016)", - RAZER_BLADE_STEALTH_LATE_2016_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_stealth_late_2016_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Stealth (2017) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_stealth_2017_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_stealth_2017_device = -{ - "Razer Blade Stealth (2017)", - RAZER_BLADE_STEALTH_2017_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_stealth_2017_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Stealth (Late 2017) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_stealth_late_2017_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_stealth_late_2017_device = -{ - "Razer Blade Stealth (Late 2017)", - RAZER_BLADE_STEALTH_LATE_2017_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_stealth_late_2017_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Stealth (2019) | -| | -| Zone "Keyboard" | -| Matrix | -| 6 Rows, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_stealth_2019_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_MATRIX, - 6, - 16 -}; - -static const razer_device blade_stealth_2019_device = -{ - "Razer Blade Stealth (2019)", - RAZER_BLADE_STEALTH_2019_PID, - DEVICE_TYPE_KEYBOARD, - true, - 6, - 16, - { - &blade_stealth_2019_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Stealth (Late 2019) | -| | -| Zone "Keyboard" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone blade_stealth_late_2019_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device blade_stealth_late_2019_device = -{ - "Razer Blade Stealth (Late 2019)", - RAZER_BLADE_STEALTH_LATE_2019_PID, - DEVICE_TYPE_KEYBOARD, - false, - 1, - 1, - { - &blade_stealth_late_2019_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Stealth (2020) | -| | -| Zone "Keyboard" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone blade_stealth_2020_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device blade_stealth_2020_device = -{ - "Razer Blade Stealth (2020)", - RAZER_BLADE_STEALTH_2020_PID, - DEVICE_TYPE_KEYBOARD, - false, - 1, - 1, - { - &blade_stealth_2020_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Blade Stealth (Late 2020) | -| | -| Zone "Keyboard" | -| Linear | -| 1 Row, 16 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone blade_stealth_late_2020_zone = -{ - ZONE_EN_KEYBOARD, - ZONE_TYPE_LINEAR, - 1, - 16 -}; - -static const razer_device blade_stealth_late_2020_device = -{ - "Razer Blade Stealth (Late 2020)", - RAZER_BLADE_STEALTH_LATE_2020_PID, - DEVICE_TYPE_KEYBOARD, - true, - 1, - 16, - { - &blade_stealth_late_2020_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------------------*\ -| MICE | -\*-------------------------------------------------------------------------*/ - -/*-------------------------------------------------------------*\ -| Razer Abyssus Elite DVa Edition 1532:006A | -| | -| Zone "Logo" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone abyssus_elite_dva_edition_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device abyssus_elite_dva_edition_device = -{ - "Razer Abyssus Elite DVa Edition", - RAZER_ABYSSUS_ELITE_DVA_EDITION_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 1, - { - &abyssus_elite_dva_edition_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Abyssus Essential 1532:006B | -| | -| Zone "Logo" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone abyssus_essential_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device abyssus_essential_device = -{ - "Razer Abyssus Essential", - RAZER_ABYSSUS_ESSENTIAL_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 1, - { - &abyssus_essential_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Basilisk 1532:0064 | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone basilisk_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone basilisk_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device basilisk_device = -{ - "Razer Basilisk", - RAZER_BASILISK_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 2, - { - &basilisk_logo_zone, - &basilisk_scroll_wheel_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Basilisk Essential | -| | -| Zone "Logo" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone basilisk_essential_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device basilisk_essential_device = -{ - "Razer Basilisk Essential", - RAZER_BASILISK_ESSENTIAL_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 1, - { - &basilisk_essential_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Basilisk Ultimate (Wired) 1532:0086 | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Left LED Strip" | -| Linear | -| 8 LED | -| | -| Zone "Right LED Strip" | -| Linear | -| 4 LED | -\*-------------------------------------------------------------*/ -static const razer_zone basilisk_ultimate_wired_right_zone = -{ - "Right LED Strip", - ZONE_TYPE_LINEAR, - 1, - 4 -}; - -static const razer_zone basilisk_ultimate_wired_left_zone = -{ - "Left LED Strip", - ZONE_TYPE_LINEAR, - 1, - 8 -}; - -static const razer_zone basilisk_ultimate_wired_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone basilisk_ultimate_wired_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device basilisk_ultimate_wired_device = -{ - "Razer Basilisk Ultimate", - RAZER_BASILISK_ULTIMATE_WIRED_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 14, - { - &basilisk_ultimate_wired_scroll_wheel_zone, - &basilisk_ultimate_wired_logo_zone, - &basilisk_ultimate_wired_left_zone, - &basilisk_ultimate_wired_right_zone, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Basilisk Ultimate (Wireless) 1532:0088 | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Left LED Strip" | -| Linear | -| 8 LED | -| | -| Zone "Right LED Strip" | -| Linear | -| 4 LED | -\*-------------------------------------------------------------*/ -static const razer_zone basilisk_ultimate_wireless_right_zone = -{ - "Right LED Strip", - ZONE_TYPE_LINEAR, - 1, - 4 -}; - -static const razer_zone basilisk_ultimate_wireless_left_zone = -{ - "Left LED Strip", - ZONE_TYPE_LINEAR, - 1, - 8 -}; - -static const razer_zone basilisk_ultimate_wireless_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone basilisk_ultimate_wireless_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device basilisk_ultimate_wireless_device = -{ - "Razer Basilisk Ultimate (Wireless)", - RAZER_BASILISK_ULTIMATE_WIRELESS_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 14, - { - &basilisk_ultimate_wireless_scroll_wheel_zone, - &basilisk_ultimate_wireless_logo_zone, - &basilisk_ultimate_wireless_left_zone, - &basilisk_ultimate_wireless_right_zone, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Basilisk V2 1532:0085 | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Logo" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone basilisk_v2_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone basilisk_v2_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device basilisk_v2_device = -{ - "Razer Basilisk V2", - RAZER_BASILISK_V2_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 2, - { - &basilisk_v2_scroll_wheel_zone, - &basilisk_v2_logo_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Basilisk V3 1532:0099 | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "LED Strip" | -| Linear | -| 9 LED | -\*-------------------------------------------------------------*/ -static const razer_zone basilisk_v3_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone basilisk_v3_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone basilisk_v3_ledstrip_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 9 -}; - -static const razer_device basilisk_v3_device = -{ - "Razer Basilisk V3", - RAZER_BASILISK_V3_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 11, - { - &basilisk_v3_logo_zone, - &basilisk_v3_scroll_wheel_zone, - &basilisk_v3_ledstrip_zone, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer DeathAdder Chroma | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone deathadder_chroma_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone deathadder_chroma_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device deathadder_chroma_device = -{ - "Razer DeathAdder Chroma", - RAZER_DEATHADDER_CHROMA_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 2, - { - &deathadder_chroma_logo_zone, - &deathadder_chroma_scroll_wheel_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Deathadder Elite | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone deathadder_elite_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone deathadder_elite_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device deathadder_elite_device = -{ - "Razer DeathAdder Elite", - RAZER_DEATHADDER_ELITE_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 2, - { - &deathadder_elite_logo_zone, - &deathadder_elite_scroll_wheel_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Deathadder Essential 1532:006E | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone deathadder_essential_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone deathadder_essential_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device deathadder_essential_device = -{ - "Razer DeathAdder Essential", - RAZER_DEATHADDER_ESSENTIAL_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 2, - { - &deathadder_essential_logo_zone, - &deathadder_essential_scroll_wheel_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Deathadder Essential V2 1532:0098 | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone deathadder_essential_v2_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone deathadder_essential_v2_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device deathadder_essential_v2_device = -{ - "Razer DeathAdder Essential V2", - RAZER_DEATHADDER_ESSENTIAL_V2_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 2, - { - &deathadder_essential_v2_logo_zone, - &deathadder_essential_v2_scroll_wheel_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Deathadder Essential White Edition 1532:0071 | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone deathadder_essential_white_edition_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone deathadder_essential_white_edition_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device deathadder_essential_white_edition_device = -{ - "Razer DeathAdder Essential (White Edition)", - RAZER_DEATHADDER_ESSENTIAL_WHITE_EDITION_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 2, - { - &deathadder_essential_white_edition_logo_zone, - &deathadder_essential_white_edition_scroll_wheel_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer DeathAdder V2 1532:0084 | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone deathadder_v2_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone deathadder_v2_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device deathadder_v2_device = -{ - "Razer DeathAdder V2", - RAZER_DEATHADDER_V2_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 2, - { - &deathadder_v2_scroll_wheel_zone, - &deathadder_v2_logo_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer DeathAdder V2 Mini 1532:008C | -| | -| Zone "Logo" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone deathadder_v2_mini_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device deathadder_v2_mini_device = -{ - "Razer DeathAdder V2 Mini", - RAZER_DEATHADDER_V2_MINI_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 1, - { - &deathadder_v2_mini_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer DeathAdder V2 Pro (Wired) 1532:007C | -| | -| Zone "Logo" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone deathadder_v2_pro_wired_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device deathadder_v2_pro_wired_device = -{ - "Razer DeathAdder V2 (Wired)", - RAZER_DEATHADDER_V2_PRO_WIRED_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 1, - { - &deathadder_v2_pro_wired_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer DeathAdder V2 Pro (Wireless) 1532:007D | -| | -| Zone "Logo" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone deathadder_v2_pro_wireless_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device deathadder_v2_pro_wireless_device = -{ - "Razer DeathAdder V2 (Wireless)", - RAZER_DEATHADDER_V2_PRO_WIRELESS_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 1, - { - &deathadder_v2_pro_wireless_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Diamondback Chroma | -| | -| Zone "LED Strip" | -| Linear | -| 19 LEDs | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone diamondback_chroma_led_strip_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 19 -}; - -static const razer_zone diamondback_chroma_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone diamondback_chroma_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device diamondback_chroma_device = -{ - "Razer Diamondback Chroma", - RAZER_DIAMONDBACK_CHROMA_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 21, - { - &diamondback_chroma_led_strip_zone, - &diamondback_chroma_logo_zone, - &diamondback_chroma_scroll_wheel_zone, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Lancehead 2017 (Wired) | -| | -| Zone "Right" | -| Linear | -| 7 LEDs | -| | -| Zone "Left" | -| Linear | -| 7 LEDs | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone lancehead_2017_wired_right_zone = -{ - "Right LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone lancehead_2017_wired_left_zone = -{ - "Left LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone lancehead_2017_wired_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone lancehead_2017_wired_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device lancehead_2017_wired_device = -{ - "Razer Lancehead 2017 (Wired)", - RAZER_LANCEHEAD_2017_WIRED_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 16, - { - &lancehead_2017_wired_right_zone, - &lancehead_2017_wired_left_zone, - &lancehead_2017_wired_logo_zone, - &lancehead_2017_wired_scroll_wheel_zone, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Lancehead 2017 (Wireless) | -| | -| Zone "Right" | -| Linear | -| 7 LEDs | -| | -| Zone "Left" | -| Linear | -| 7 LEDs | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone lancehead_2017_wireless_right_zone = -{ - "Right LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone lancehead_2017_wireless_left_zone = -{ - "Left LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone lancehead_2017_wireless_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone lancehead_2017_wireless_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device lancehead_2017_wireless_device = -{ - "Razer Lancehead 2017 (Wireless)", - RAZER_LANCEHEAD_2017_WIRELESS_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 16, - { - &lancehead_2017_wireless_right_zone, - &lancehead_2017_wireless_left_zone, - &lancehead_2017_wireless_logo_zone, - &lancehead_2017_wireless_scroll_wheel_zone, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Lancehead 2019 (Wired) | -| | -| Zone "Right" | -| Linear | -| 7 LEDs | -| | -| Zone "Left" | -| Linear | -| 7 LEDs | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone lancehead_2019_wired_right_zone = -{ - "Right LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone lancehead_2019_wired_left_zone = -{ - "Left LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone lancehead_2019_wired_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone lancehead_2019_wired_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device lancehead_2019_wired_device = -{ - "Razer Lancehead 2019 (Wired)", - RAZER_LANCEHEAD_2019_WIRED_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 16, - { - &lancehead_2019_wired_right_zone, - &lancehead_2019_wired_left_zone, - &lancehead_2019_wired_logo_zone, - &lancehead_2019_wired_scroll_wheel_zone, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Lancehead 2019 (Wireless) | -| | -| Zone "Right" | -| Linear | -| 7 LEDs | -| | -| Zone "Left" | -| Linear | -| 7 LEDs | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone lancehead_2019_wireless_right_zone = -{ - "Right LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone lancehead_2019_wireless_left_zone = -{ - "Left LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone lancehead_2019_wireless_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone lancehead_2019_wireless_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device lancehead_2019_wireless_device = -{ - "Razer Lancehead 2019 (Wireless)", - RAZER_LANCEHEAD_2019_WIRELESS_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 16, - { - &lancehead_2019_wireless_right_zone, - &lancehead_2019_wireless_left_zone, - &lancehead_2019_wireless_logo_zone, - &lancehead_2019_wireless_scroll_wheel_zone, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Lancehead Tournament Edition 1532:0060 | -| | -| Zone "Right" | -| Linear | -| 7 LEDs | -| | -| Zone "Left" | -| Linear | -| 7 LEDs | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone lancehead_te_right_zone = -{ - "Right LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone lancehead_te_left_zone = -{ - "Left LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone lancehead_te_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone lancehead_te_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device lancehead_te_device = -{ - "Razer Lancehead Tournament Edition", - RAZER_LANCEHEAD_TE_WIRED_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 16, - { - &lancehead_te_scroll_wheel_zone, - &lancehead_te_logo_zone, - &lancehead_te_right_zone, - &lancehead_te_left_zone, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Mamba 2012 (Wired) | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone mamba_2012_wired_zone = -{ - "Scroll Wheel", - ZONE_TYPE_LINEAR, - 1, - 1 -}; - -static const razer_device mamba_2012_wired_device = -{ - "Razer Mamba 2012 (Wired)", - RAZER_MAMBA_2012_WIRED_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 15, - { - &mamba_2012_wired_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Mamba 2012 (Wireless) | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone mamba_2012_wireless_zone = -{ - "Scroll Wheel", - ZONE_TYPE_LINEAR, - 1, - 1 -}; - -static const razer_device mamba_2012_wireless_device = -{ - "Razer Mamba 2012 (Wireless)", - RAZER_MAMBA_2012_WIRELESS_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 15, - { - &mamba_2012_wireless_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Mamba 2015 (Wired) | -| | -| Zone "Chroma Zone" | -| Single | -| 15 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone mamba_2015_wired_zone = -{ - "Chroma Zone", - ZONE_TYPE_LINEAR, - 1, - 15 -}; - -static const razer_device mamba_2015_wired_device = -{ - "Razer Mamba 2015 (Wired)", - RAZER_MAMBA_2015_WIRED_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 15, - { - &mamba_2015_wired_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Mamba 2015 (Wireless) | -| | -| Zone "Chroma Zone" | -| Single | -| 15 LED | -\*-------------------------------------------------------------*/ -static const razer_zone mamba_2015_wireless_zone = -{ - "Chroma Zone", - ZONE_TYPE_LINEAR, - 1, - 15 -}; - -static const razer_device mamba_2015_wireless_device = -{ - "Razer Mamba (Wireless)", - RAZER_MAMBA_2015_WIRELESS_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 15, - { - &mamba_2015_wireless_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Mamba 2018 (Wired) | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone mamba_2018_wired_logo_zone = -{ - "Logo Zone", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone mamba_2018_wired_scroll_wheel_zone = -{ - "Scroll Wheel Zone", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device mamba_2018_wired_device = -{ - "Razer Mamba 2018 (Wired)", - RAZER_MAMBA_2018_WIRED_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 2, - { - &mamba_2018_wired_scroll_wheel_zone, - &mamba_2018_wired_logo_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Mamba Wireless (2018) Wireless 1532:0072 | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ - -static const razer_zone mamba_2018_wireless_logo_zone = -{ - "Logo Zone", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone mamba_2018_wireless_scroll_wheel_zone = -{ - "Scroll Wheel Zone", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device mamba_2018_wireless_device = -{ - "Razer Mamba 2018 (Wireless)", - RAZER_MAMBA_2018_WIRELESS_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 2, - { - &mamba_2018_wireless_scroll_wheel_zone, - &mamba_2018_wireless_logo_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Mamba Elite | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Left" | -| Linear | -| 9 LEDs | -| | -| Zone "Right" | -| Linear | -| 9 LEDs | -| | -\*-------------------------------------------------------------*/ -static const razer_zone mamba_elite_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone mamba_elite_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone mamba_elite_left_zone = -{ - "Left LED Strip", - ZONE_TYPE_LINEAR, - 1, - 9 -}; - -static const razer_zone mamba_elite_right_zone = -{ - "Right LED Strip", - ZONE_TYPE_LINEAR, - 1, - 9 -}; - -static const razer_device mamba_elite_device = -{ - "Razer Mamba Elite", - RAZER_MAMBA_ELITE_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 20, - { - &mamba_elite_scroll_wheel_zone, - &mamba_elite_logo_zone, - &mamba_elite_left_zone, - &mamba_elite_right_zone, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Mamba Tournament Edition | -| | -| Zone "Left" | -| Linear | -| 7 LEDs | -| | -| Zone "Right" | -| Linear | -| 7 LEDs | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone mamba_te_left_zone = -{ - "Left LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone mamba_te_right_zone = -{ - "Right LED Strip", - ZONE_TYPE_LINEAR, - 1, - 7 -}; - -static const razer_zone mamba_te_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone mamba_te_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device mamba_te_device = -{ - "Razer Mamba Tournament Edition", - RAZER_MAMBA_TE_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 16, - { - &mamba_te_left_zone, - &mamba_te_right_zone, - &mamba_te_logo_zone, - &mamba_te_scroll_wheel_zone, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Naga Chroma | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Numpad" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone naga_chroma_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_chroma_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_chroma_numpad_zone = -{ - "Numpad", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device naga_chroma_device = -{ - "Razer Naga Chroma", - RAZER_NAGA_CHROMA_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 3, - { - &naga_chroma_logo_zone, - &naga_chroma_scroll_wheel_zone, - &naga_chroma_numpad_zone, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Naga Classic 1532:0093 | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Numpad" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone naga_classic_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_classic_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_classic_numpad_zone = -{ - "Numpad", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device naga_classic_device = -{ - "Razer Naga Classic", - RAZER_NAGA_CLASSIC_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 3, - { - &naga_classic_logo_zone, - &naga_classic_scroll_wheel_zone, - &naga_classic_numpad_zone, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Naga Hex V2 1532:0050 | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Numpad" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone naga_hex_v2_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_hex_v2_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_hex_v2_numpad_zone = -{ - "Numpad", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device naga_hex_v2_device = -{ - "Razer Naga Hex V2", - RAZER_NAGA_HEX_V2_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 3, - { - &naga_hex_v2_logo_zone, - &naga_hex_v2_scroll_wheel_zone, - &naga_hex_v2_numpad_zone, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Naga Left Handed 1532:008D | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Numpad" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone naga_left_handed_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_left_handed_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_left_handed_numpad_zone = -{ - "Numpad", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device naga_left_handed_device = -{ - "Razer Naga Left Handed", - RAZER_NAGA_LEFT_HANDED_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 3, - { - &naga_left_handed_logo_zone, - &naga_left_handed_scroll_wheel_zone, - &naga_left_handed_numpad_zone, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Naga Trinity 1532:0067 | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Numpad" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone naga_trinity_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_trinity_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_trinity_numpad_zone = -{ - "Numpad", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device naga_trinity_device = -{ - "Razer Naga Trinity", - RAZER_NAGA_TRINITY_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 3, - { - &naga_trinity_scroll_wheel_zone, - &naga_trinity_logo_zone, - &naga_trinity_numpad_zone, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Naga Pro 1532:008F (wired) 1532:0090 (wireless) | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Logo" | -| Single | -| 1 LED | -| | -| Zone "Numpad" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone naga_pro_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_pro_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_pro_numpad_zone = -{ - "Numpad", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device naga_pro_wired_device = -{ - "Razer Naga Pro (Wired)", - RAZER_NAGA_PRO_WIRED_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 3, - { - &naga_pro_scroll_wheel_zone, - &naga_pro_logo_zone, - &naga_pro_numpad_zone, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -static const razer_device naga_pro_wireless_device = -{ - "Razer Naga Pro (Wireless)", - RAZER_NAGA_PRO_WIRELESS_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 3, - { - &naga_pro_scroll_wheel_zone, - &naga_pro_logo_zone, - &naga_pro_numpad_zone, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Viper 8kHz 1532:0091 | -| | -| Zone "Logo" | -| Matrix | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone viper_8khz_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device viper_8khz_device = -{ - "Razer Viper 8kHz", - RAZER_VIPER_8KHZ_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 1, - { - &viper_8khz_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Viper Mini 1532:008A | -| | -| Zone "Logo" | -| Matrix | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone viper_mini_logo_zone = -{ - "Logo", //Matrix of one as per https://github.com/openrazer/openrazer/blob/master/daemon/openrazer_daemon/hardware/mouse.py#L27 - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device viper_mini_device = -{ - "Razer Viper Mini", - RAZER_VIPER_MINI_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 1, - { - &viper_mini_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Viper Ultimate Wired 1532:007A | -| | -| Zone "Logo" | -| Matrix | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone viper_ultimate_wired_logo_zone = -{ - "Logo", //Matrix of one as per https://github.com/openrazer/openrazer/blob/master/daemon/openrazer_daemon/hardware/mouse.py#L1690 - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device viper_ultimate_wired_device = -{ - "Razer Viper Ultimate (Wired)", - RAZER_VIPER_ULTIMATE_WIRED_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 1, - { - &viper_ultimate_wired_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Viper Ultimate Wireless 1532:007B | -| | -| Zone "Logo" | -| Matrix | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone viper_ultimate_wireless_logo_zone = -{ - "Logo", //Matrix of one as per https://github.com/openrazer/openrazer/blob/master/daemon/openrazer_daemon/hardware/mouse.py#L1690 - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device viper_ultimate_wireless_device = -{ - "Razer Viper Ultimate (Wireless)", - RAZER_VIPER_ULTIMATE_WIRELESS_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 1, - { - &viper_ultimate_wireless_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Viper 1532:0078 | -| | -| Zone "Logo" | -| Matrix | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone viper_logo_zone = -{ - "Logo", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device viper_device = -{ - "Razer Viper", - RAZER_VIPER_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 1, - { - &viper_logo_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Naga Epic Chroma | -| | -| Zone "Scroll Wheel" | -| Single | -| 1 LED | -| | -| Zone "Numpad" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone naga_epic_chroma_scroll_wheel_zone = -{ - "Scroll Wheel", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone naga_epic_chroma_numpad_zone = -{ - "Numpad", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device naga_epic_chroma_device = -{ - "Razer Naga Epic Chroma", - RAZER_NAGA_EPIC_CHROMA_PID, - DEVICE_TYPE_MOUSE, - false, - 1, - 2, - { - &naga_epic_chroma_scroll_wheel_zone, - &naga_epic_chroma_numpad_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------------------*\ -| KEYPADS | -\*-------------------------------------------------------------------------*/ - -/*-------------------------------------------------------------*\ -| Razer Orbweaver Chroma | -| | -| Zone "Keypad" | -| Matrix | -| 4 Rows, 5 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone orbweaver_chroma_zone = -{ - "Keypad", - ZONE_TYPE_MATRIX, - 4, - 5 -}; - -static const razer_device orbweaver_chroma_device = -{ - "Razer Orbweaver Chroma", - RAZER_ORBWEAVER_CHROMA_PID, - DEVICE_TYPE_KEYBOARD, - true, - 4, - 5, - { - &orbweaver_chroma_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Tartarus Chroma | -| | -| Zone "Keypad" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone tartarus_chroma_zone = -{ - "Keypad", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device tartarus_chroma_device = -{ - "Razer Tartarus Chroma", - RAZER_TARTARUS_CHROMA_PID, - DEVICE_TYPE_KEYBOARD, - true, - 1, - 1, - { - &tartarus_chroma_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Tartarus V2 1532:0208 | -| | -| Zone "Keypad" | -| Matrix | -| 4 Rows, 6 Columns | -\*-------------------------------------------------------------*/ -static const razer_zone tartarus_v2_zone = -{ - "Keypad", - ZONE_TYPE_MATRIX, - 4, - 6 -}; - -static const razer_device tartarus_v2_device = -{ - "Razer Tartarus V2", - RAZER_TARTARUS_V2_PID, - DEVICE_TYPE_KEYBOARD, - true, - 4, - 6, - { - &tartarus_v2_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - tartarus_v2_keymap, - TARTARUS_V2_KEYMAP_SIZE -}; - -/*-------------------------------------------------------------------------*\ -| MOUSEMATS | -\*-------------------------------------------------------------------------*/ - -/*-------------------------------------------------------------*\ -| Razer Firefly | -| | -| Zone "LED Strip" | -| Linear | -| 15 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone firefly_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 15 -}; - -static const razer_device firefly_device = -{ - "Razer Firefly", - RAZER_FIREFLY_PID, - DEVICE_TYPE_MOUSEMAT, - true, - 1, - 15, - { - &firefly_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Firefly Hyperflux | -| | -| Zone "LED Strip" | -| Linear | -| 1 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone firefly_hyperflux_zone = -{ - "LED Strip", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device firefly_hyperflux_device = -{ - "Razer Firefly Hyperflux", - RAZER_FIREFLY_HYPERFLUX_PID, - DEVICE_TYPE_MOUSEMAT, - true, - 1, - 1, - { - &firefly_hyperflux_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Firefly V2 | -| | -| Zone "LED Strip" | -| Matrix | -| 19 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone firefly_v2_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 19 -}; - -static const razer_device firefly_v2_device = -{ - "Razer Firefly V2", - RAZER_FIREFLY_V2_PID, - DEVICE_TYPE_MOUSEMAT, - true, - 1, - 19, - { - &firefly_v2_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Goliathus | -| | -| Zone "LED Strip" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone goliathus_zone = -{ - "LED Strip", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device goliathus_device = -{ - "Razer Goliathus", - RAZER_GOLIATHUS_CHROMA_PID, - DEVICE_TYPE_MOUSEMAT, - true, - 1, - 1, - { - &goliathus_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Goliathus Extended | -| | -| Zone "LED Strip" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone goliathus_extended_zone = -{ - "LED Strip", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device goliathus_extended_device = -{ - "Razer Goliathus Extended", - RAZER_GOLIATHUS_CHROMA_EXTENDED_PID, - DEVICE_TYPE_MOUSEMAT, - true, - 1, - 1, - { - &goliathus_extended_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------------------*\ -| HEADSETS | -\*-------------------------------------------------------------------------*/ - -/*-------------------------------------------------------------*\ -| Razer Kraken 7.1 Chroma | -| | -| Zone "Headset" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone kraken_chroma_zone = -{ - "Headset", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device kraken_chroma_device = -{ - "Razer Kraken 7.1 Chroma", - RAZER_KRAKEN_PID, - DEVICE_TYPE_HEADSET, - true, - 1, - 1, - { - &kraken_chroma_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Kraken 7.1 V2 | -| | -| Zone "Headset" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone kraken_v2_zone = -{ - "Headset", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device kraken_v2_device = -{ - "Razer Kraken 7.1 V2", - RAZER_KRAKEN_V2_PID, - DEVICE_TYPE_HEADSET, - true, - 1, - 1, - { - &kraken_v2_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Kraken Ultimate 1532:0527 | -| | -| Zone "Headset" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone kraken_ultimate_zone = -{ - "Headset", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device kraken_ultimate_device = -{ - "Razer Kraken Ultimate", - RAZER_KRAKEN_ULTIMATE_PID, - DEVICE_TYPE_HEADSET, - true, - 1, - 1, - { - &kraken_ultimate_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Kraken Kitty Edition 1532:0F19 | -| | -| Zone "Headset" | -| Matrix | -| 4 LED | -\*-------------------------------------------------------------*/ -static const razer_zone kraken_kitty_zone = -{ - "Headset", - ZONE_TYPE_LINEAR, - 1, - 4 -}; - -static const razer_device kraken_kitty_device = -{ - "Razer Kraken Kitty Edition", - RAZER_KRAKEN_KITTY_EDITION_PID, - DEVICE_TYPE_HEADSET, - true, - 1, - 4, - { - &kraken_kitty_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Tiamat 7.1 V2 | -| | -| Zone "Controller" | -| Linear | -| 15 LEDs | -| | -| Zone "Headset Left" | -| Single | -| 1 LED | -| | -| Zone "Headset Right" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone tiamat_71_v2_controller_zone = -{ - "Controller", - ZONE_TYPE_LINEAR, - 1, - 15 -}; - -static const razer_zone tiamat_71_v2_headset_left_zone = -{ - "Headset Left", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone tiamat_71_v2_headset_right_zone = -{ - "Headset Right", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device tiamat_71_v2_device = -{ - "Razer Tiamat 7.1 V2", - RAZER_TIAMAT_71_V2_PID, - DEVICE_TYPE_HEADSET, - true, - 1, - 17, - { - &tiamat_71_v2_controller_zone, - &tiamat_71_v2_headset_left_zone, - &tiamat_71_v2_headset_right_zone, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------------------*\ -| OTHER | -\*-------------------------------------------------------------------------*/ - -/*-------------------------------------------------------------*\ -| Razer Core | -| | -| Zone "Side Window Lights" | -| Single | -| 1 LED | -| | -| Zone "LED Strip" | -| Linear | -| 8 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone core_side_zone = -{ - "Side Window Lights", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone core_led_strip_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 8 -}; - -static const razer_device core_device = -{ - "Razer Core", - RAZER_CORE_PID, - DEVICE_TYPE_UNKNOWN, - true, - 1, - 9, - { - &core_side_zone, - &core_led_strip_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Core X | -| | -| Zone "Side Window Lights" | -| Single | -| 1 LED | -| | -| Zone "LED Strip" | -| Linear | -| 15 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone core_x_side_zone = -{ - "Side Window Lights", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_zone core_x_led_strip_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 15 -}; - -static const razer_device core_x_device = -{ - "Razer Core X", - RAZER_CORE_X_PID, - DEVICE_TYPE_UNKNOWN, - true, - 1, - 16, - { - &core_x_side_zone, - &core_x_led_strip_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Chroma Mug Holder | -| | -| Zone "LED Strip" | -| Linear | -| 15 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone mug_holder_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 15 -}; - -static const razer_device mug_holder_device = -{ - "Razer Chroma Mug Holder", - RAZER_CHROMA_MUG_PID, - DEVICE_TYPE_UNKNOWN, - true, - 1, - 15, - { - &mug_holder_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Chroma Addressable RGB Controller | -| | -| Zone "LED Strip" | -| Linear | -| 80 LEDs | -| | -| Zone "LED Strip" | -| Linear | -| 80 LEDs | -| | -| Zone "LED Strip" | -| Linear | -| 80 LEDs | -| | -| Zone "LED Strip" | -| Linear | -| 80 LEDs | -| | -| Zone "LED Strip" | -| Linear | -| 80 LEDs | -| | -| Zone "LED Strip" | -| Linear | -| 80 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone chromaargb_zone_1 = -{ - "Channel 1", - ZONE_TYPE_LINEAR, - 1, - 80 -}; - -static const razer_zone chromaargb_zone_2 = -{ - "Channel 2", - ZONE_TYPE_LINEAR, - 1, - 80 -}; - -static const razer_zone chromaargb_zone_3 = -{ - "Channel 3", - ZONE_TYPE_LINEAR, - 1, - 80 -}; - -static const razer_zone chromaargb_zone_4 = -{ - "Channel 4", - ZONE_TYPE_LINEAR, - 1, - 80 -}; - -static const razer_zone chromaargb_zone_5 = -{ - "Channel 5", - ZONE_TYPE_LINEAR, - 1, - 80 -}; - -static const razer_zone chromaargb_zone_6 = -{ - "Channel 6", - ZONE_TYPE_LINEAR, - 1, - 80 -}; - -static const razer_device chromaargb_device = -{ - "Razer Chroma Addressable RGB Controller", - RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID, - DEVICE_TYPE_LEDSTRIP, - true, - 6, - 80, - { - &chromaargb_zone_1, - &chromaargb_zone_2, - &chromaargb_zone_3, - &chromaargb_zone_4, - &chromaargb_zone_5, - &chromaargb_zone_6 - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Chroma HDK | -| | -| Zone "LED Strip" | -| Linear | -| 16 LEDs | -| | -| Zone "LED Strip" | -| Linear | -| 16 LEDs | -| | -| Zone "LED Strip" | -| Linear | -| 16 LEDs | -| | -| Zone "LED Strip" | -| Linear | -| 16 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone chromahdk_zone_1 = -{ - "Channel 1", - ZONE_TYPE_LINEAR, - 1, - 16 -}; - -static const razer_zone chromahdk_zone_2 = -{ - "Channel 2", - ZONE_TYPE_LINEAR, - 1, - 16 -}; - -static const razer_zone chromahdk_zone_3 = -{ - "Channel 3", - ZONE_TYPE_LINEAR, - 1, - 16 -}; - -static const razer_zone chromahdk_zone_4 = -{ - "Channel 4", - ZONE_TYPE_LINEAR, - 1, - 16 -}; - -static const razer_device chromahdk_device = -{ - "Razer Chroma HDK", - RAZER_CHROMA_HDK_PID, - DEVICE_TYPE_LEDSTRIP, - true, - 4, - 16, - { - &chromahdk_zone_1, - &chromahdk_zone_2, - &chromahdk_zone_3, - &chromahdk_zone_4, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Chroma PC Case Lighting Kit | -| | -| Zone "LED Strip" | -| Linear | -| 16 LEDs | -| | -| Zone "LED Strip" | -| Linear | -| 16 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone chroma_pc_case_lighting_kit_zone_1 = -{ - "Channel 1", - ZONE_TYPE_LINEAR, - 1, - 16 -}; - -static const razer_zone chroma_pc_case_lighting_kit_zone_2 = -{ - "Channel 2", - ZONE_TYPE_LINEAR, - 1, - 16 -}; - -static const razer_device chroma_pc_case_lighting_kit_device = -{ - "Razer Chroma PC Case Lighting Kit", - RAZER_CHROMA_PC_CASE_LIGHTING_KIT_PID, - DEVICE_TYPE_LEDSTRIP, - true, - 2, - 16, - { - &chroma_pc_case_lighting_kit_zone_1, - &chroma_pc_case_lighting_kit_zone_2, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Base Station Chroma | -| | -| Zone "LED Strip" | -| Linear | -| 15 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone base_station_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 15 -}; - -static const razer_device base_station_device = -{ - "Razer Base Station Chroma", - RAZER_BASE_STATION_CHROMA_PID, - DEVICE_TYPE_HEADSET_STAND, - true, - 1, - 15, - { - &base_station_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - - -/*-------------------------------------------------------------*\ -| Razer Mouse Bungee V3 Chroma | -| | -| Zone "LED Strip" | -| Linear | -| 8 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone mouse_bungee_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 8 -}; - -static const razer_device mouse_bungee_device = -{ - "Razer Mouse Bungee V3 Chroma", - RAZER_MOUSE_BUNGEE_V3_CHROMA_PID, - DEVICE_TYPE_MOUSE, - true, - 1, - 8, - { - &mouse_bungee_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Base Station V2 Chroma | -| | -| Zone "LED Strip" | -| Linear | -| 8 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone base_station_v2_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 8 -}; - -static const razer_device base_station_v2_device = -{ - "Razer Base Station V2 Chroma", - RAZER_BASE_STATION_V2_CHROMA_PID, - DEVICE_TYPE_HEADSET_STAND, - true, - 1, - 8, - { - &base_station_v2_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Laptop Stand Chroma 1532:0F0D | -| | -| Zone "LED Strip" | -| Linear | -| 15 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone laptop_stand_chroma_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 15 -}; - -static const razer_device laptop_stand_chroma_device = -{ - "Razer Laptop Stand Chroma", - RAZER_LAPTOP_STAND_CHROMA_PID, - DEVICE_TYPE_LEDSTRIP, - true, - 1, - 15, - { - &laptop_stand_chroma_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Laptop Stand Chroma V2 1532:0F2B | -| | -| Zone "LED Strip" | -| Linear | -| 15 LEDs | -\*-------------------------------------------------------------*/ -static const razer_zone laptop_stand_chroma_v2_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 15 -}; - -static const razer_device laptop_stand_chroma_v2_device = -{ - "Razer Laptop Stand Chroma V2", - RAZER_LAPTOP_STAND_CHROMA_V2_PID, - DEVICE_TYPE_LEDSTRIP, - true, - 1, - 15, - { - &laptop_stand_chroma_v2_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Mouse Dock Chroma 1532:007E | -| | -| Zone "Base" | -| Single | -| 1 LED | -\*-------------------------------------------------------------*/ -static const razer_zone mouse_dock_chroma_base_zone = -{ - "Base", - ZONE_TYPE_SINGLE, - 1, - 1 -}; - -static const razer_device mouse_dock_chroma_device = -{ - "Razer Mouse Dock Chroma", - RAZER_MOUSE_DOCK_CHROMA_PID, - DEVICE_TYPE_LIGHT, - true, - 1, - 1, - { - &mouse_dock_chroma_base_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Nommo Pro | -| | -| Zone "Left Speaker" | -| Linear | -| 8 LEDs | -| | -| Zone "Right Speaker" | -| Linear | -| 8 LEDs | -| | -\*-------------------------------------------------------------*/ -static const razer_zone nommo_pro_left_zone = -{ - "Left Speaker", - ZONE_TYPE_LINEAR, - 1, - 8 -}; - -static const razer_zone nommo_pro_right_zone = -{ - "Right Speaker", - ZONE_TYPE_LINEAR, - 1, - 8 -}; - -static const razer_device nommo_pro_device = -{ - "Razer Nommo Pro", - RAZER_NOMMO_PRO_PID, - DEVICE_TYPE_SPEAKER, - true, - 2, - 8, - { - &nommo_pro_left_zone, - &nommo_pro_right_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Nommo Chroma | -| | -| Zone "Right Speaker" | -| Linear | -| 8 LEDs | -| | -| Zone "Left Speaker" | -| Linear | -| 8 LEDs | -| | -\*-------------------------------------------------------------*/ -static const razer_zone nommo_chroma_right_zone = -{ - "Right Speaker", - ZONE_TYPE_LINEAR, - 1, - 24 -}; - -static const razer_zone nommo_chroma_left_zone = -{ - "Left Speaker", - ZONE_TYPE_LINEAR, - 1, - 24 -}; - -static const razer_device nommo_chroma_device = -{ - "Razer Nommo Chroma", - RAZER_NOMMO_CHROMA_PID, - DEVICE_TYPE_SPEAKER, - true, - 2, - 24, - { - &nommo_chroma_right_zone, - &nommo_chroma_left_zone, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Charging Pad Chroma | -| | -| Zone "LED Strip" | -| Linear | -| 10 LEDs | -| | -\*-------------------------------------------------------------*/ -static const razer_zone charging_pad_chroma_zone = -{ - "LED Strip", - ZONE_TYPE_LINEAR, - 1, - 10 -}; - -static const razer_device charging_pad_chroma_device = -{ - "Razer Charging Pad Chroma", - RAZER_CHARGING_PAD_CHROMA_PID, - DEVICE_TYPE_UNKNOWN, - true, - 1, - 10, - { - &charging_pad_chroma_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| O11 Dynamic - Razer Edition 1532:0F13 | -| | -| Zone "Case LEDs" | -| Matrix | -| 64 LEDs | -| | -\*-------------------------------------------------------------*/ -static const razer_zone o11_dynamic_case_zone = -{ - "Case LEDs", - ZONE_TYPE_LINEAR, - 4, - 16 -}; - -static const razer_device o11_dynamic_device = -{ - "Lian Li O11 Dynamic - Razer Edition", - RAZER_O11_DYNAMIC_PID, - DEVICE_TYPE_LEDSTRIP, - true, - 4, - 16, - { - &o11_dynamic_case_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------*\ -| Razer Seiren Emote 1532:0F1B | -| | -| Zone "8-Bit LED Matrix" | -| Matrix | -| 64 LEDs | -| | -\*-------------------------------------------------------------*/ -static const razer_zone seiren_emote_zone = -{ - "8-Bit LED Matrix", - ZONE_TYPE_MATRIX, - 8, - 8 -}; - -static const razer_device seiren_emote_device = -{ - "Razer Seiren Emote", - RAZER_SEIREN_EMOTE_PID, - DEVICE_TYPE_MICROPHONE, - true, - 4, - 16, - { - &seiren_emote_zone, - NULL, - NULL, - NULL, - NULL, - NULL - }, - NULL, - 0 -}; - -/*-------------------------------------------------------------------------*\ -| DEVICE MASTER LIST | -\*-------------------------------------------------------------------------*/ -#define RAZER_NUM_DEVICES (sizeof(device_list) / sizeof(device_list[ 0 ])) - -static const razer_device* device_list[] = -{ -/*-----------------------------------------------------------------*\ -| KEYBOARDS | -\*-----------------------------------------------------------------*/ - &blackwidow_2019_device, - &blackwidow_chroma_device, - &blackwidow_chroma_overwatch_device, - &blackwidow_chroma_te_device, - &blackwidow_chroma_v2_device, - &blackwidow_elite_device, - &blackwidow_v3_device, - &blackwidow_v3_pro_wired_device, - &blackwidow_v3_pro_wireless_device, - &blackwidow_v3_pro_bluetooth_device, - &blackwidow_v3_tkl_device, - &blackwidow_v3_mini_wired_device, - &blackwidow_v3_mini_wireless_device, - &blackwidow_x_chroma_device, - &blackwidow_x_chroma_te_device, - &cynosa_chroma_device, - &cynosa_v2_device, - &cynosa_lite_device, - &deathstalker_chroma_device, - &huntsman_device, - &huntsman_elite_device, - &huntsman_mini_device, - &huntsman_te_device, - &huntsman_v2_device, - &huntsman_v2_analog_device, - &huntsman_v2_tkl_device, - &ornata_chroma_device, -/*-----------------------------------------------------------------*\ -| LAPTOPS | -\*-----------------------------------------------------------------*/ - &blade_2016_device, - &blade_late_2016_device, - &blade_15_2018_advanced_device, - &blade_15_2018_base_device, - &blade_15_2018_mercury_device, - &blade_15_2019_advanced_device, - &blade_15_2019_base_device, - &blade_15_2019_mercury_device, - &blade_15_2019_studio_device, - &blade_15_2020_advanced_device, - &blade_15_2020_base_device, - &blade_late_2020_device, - &blade_15_2021_advanced_device, - &blade_15_2021_base_device, - &blade_15_2021_base_v2_device, - &blade_14_2021_device, - &book_13_2020_device, - &blade_pro_2016_device, - &blade_pro_2017_device, - &blade_pro_2017_fullhd_device, - &blade_pro_2019_device, - &blade_pro_late_2019_device, - &blade_pro_17_2020_device, - &blade_pro_17_2021_device, - &blade_stealth_2019_device, - &blade_stealth_2016_device, - &blade_stealth_late_2016_device, - &blade_stealth_2017_device, - &blade_stealth_late_2017_device, - &blade_stealth_2019_device, - &blade_stealth_late_2019_device, - &blade_stealth_2020_device, - &blade_stealth_late_2020_device, -/*-----------------------------------------------------------------*\ -| MICE | -\*-----------------------------------------------------------------*/ - &abyssus_elite_dva_edition_device, - &abyssus_essential_device, - &basilisk_device, - &basilisk_essential_device, - &basilisk_ultimate_wired_device, - &basilisk_ultimate_wireless_device, - &basilisk_v2_device, - &basilisk_v3_device, - &deathadder_chroma_device, - &deathadder_elite_device, - &deathadder_essential_device, - &deathadder_essential_v2_device, - &deathadder_essential_white_edition_device, - &deathadder_v2_device, - &deathadder_v2_mini_device, - &deathadder_v2_pro_wired_device, - &deathadder_v2_pro_wireless_device, - &diamondback_chroma_device, - &lancehead_2017_wired_device, - &lancehead_2017_wireless_device, - &lancehead_2019_wired_device, - &lancehead_2019_wireless_device, - &lancehead_te_device, - &mamba_2012_wired_device, - &mamba_2012_wireless_device, - &mamba_2015_wired_device, - &mamba_2015_wireless_device, - &mamba_2018_wired_device, - &mamba_2018_wireless_device, - &mamba_te_device, - &mamba_elite_device, - &naga_chroma_device, - &naga_classic_device, - &naga_epic_chroma_device, - &naga_hex_v2_device, - &naga_left_handed_device, - &naga_trinity_device, - &naga_pro_wired_device, - &naga_pro_wireless_device, - &viper_8khz_device, - &viper_mini_device, - &viper_ultimate_wired_device, - &viper_ultimate_wireless_device, - &viper_device, -/*-----------------------------------------------------------------*\ -| KEYPADS | -\*-----------------------------------------------------------------*/ - &orbweaver_chroma_device, - &tartarus_chroma_device, - &tartarus_v2_device, -/*-----------------------------------------------------------------*\ -| MOUSEMATS | -\*-----------------------------------------------------------------*/ - &firefly_device, - &firefly_hyperflux_device, - &firefly_v2_device, - &goliathus_device, - &goliathus_extended_device, -/*-----------------------------------------------------------------*\ -| HEADSETS | -\*-----------------------------------------------------------------*/ - &kraken_chroma_device, - &kraken_v2_device, - &kraken_ultimate_device, - &kraken_kitty_device, - &tiamat_71_v2_device, -/*-----------------------------------------------------------------*\ -| OTHER | -\*-----------------------------------------------------------------*/ - &base_station_device, - &base_station_v2_device, - &mouse_bungee_device, - &charging_pad_chroma_device, - &chromaargb_device, - &chromahdk_device, - &chroma_pc_case_lighting_kit_device, - &core_device, - &core_x_device, - &laptop_stand_chroma_device, - &laptop_stand_chroma_v2_device, - &mug_holder_device, - &mouse_dock_chroma_device, - &nommo_chroma_device, - &nommo_pro_device, - &o11_dynamic_device, - &seiren_emote_device, -}; +/*-----------------------------------------------------*\ +| These constant values are defined in RazerDevices.cpp | +\*-----------------------------------------------------*/ +extern const unsigned int RAZER_NUM_DEVICES; +extern const razer_device** device_list; \ No newline at end of file diff --git a/OpenRGB.pro b/OpenRGB.pro index 40a9b04aa..b2e140916 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -1077,6 +1077,7 @@ SOURCES += Controllers/QMKOpenRGBController/RGBController_QMKOpenRGBRevB.cpp \ Controllers/QMKOpenRGBController/RGBController_QMKOpenRGBRevD.cpp \ Controllers/QMKOpenRGBController/RGBController_QMKOpenRGBRevE.cpp \ + Controllers/RazerController/RazerDevices.cpp \ Controllers/RazerController/RazerController.cpp \ Controllers/RazerController/RazerKrakenController.cpp \ Controllers/RazerController/RazerControllerDetect.cpp \