diff --git a/Controllers/RazerController/RazerDevices.cpp b/Controllers/RazerController/RazerDevices.cpp index d2642926..2cdbd13b 100644 --- a/Controllers/RazerController/RazerDevices.cpp +++ b/Controllers/RazerController/RazerDevices.cpp @@ -189,6 +189,83 @@ keyboard_keymap_overlay_values razer_blade_15_2021_advanced_layout } }; +keyboard_keymap_overlay_values razer_blade_15_2022_layout +{ + KEYBOARD_SIZE::KEYBOARD_SIZE_TKL, + { + { /* ANSI Value set not used */ }, + { + { + KEYBOARD_LAYOUT_ANSI_QWERTY, + { + /*---------------------------------------------------------------------*\ + | Swap Keys | + | Zone, Row, Column, Index, Key | + \*---------------------------------------------------------------------*/ + { 0, 4, 1, 0, KEY_EN_UNUSED, }, // Move 'Z' 1 right (Account for ISO key) + } + }, + { + KEYBOARD_LAYOUT_ISO_QWERTY, + { + /*---------------------------------------------------------------------*\ + | Swap Keys | + | Zone, Row, Column, Index, Key | + \*---------------------------------------------------------------------*/ + { 0, 2, 13, 0, KEY_EN_ISO_ENTER, }, // Remove ANSI_BACKSLASH + { 0, 3, 13, 0, KEY_EN_UNUSED, }, // Remove ANSI_ENTER + } + }, + /* Add more regional layout fixes here */ + } + }, + { + /*---------------------------------------------------------------------*\ + | Insert Keys | + | Zone, Row, Column, Index, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 0, 0, KEY_EN_UNUSED, }, // Move Escape 1 right + { 0, 1, 0, 0, KEY_EN_UNUSED, }, + { 0, 1, 14, 0, KEY_EN_UNUSED, }, // Move Backspace 1 right + { 0, 2, 0, 0, KEY_EN_UNUSED, }, + { 0, 2, 14, 0, KEY_EN_UNUSED, }, // Move Back slash 1 right + { 0, 3, 0, 0, KEY_EN_UNUSED, }, + { 0, 3, 13, 0, KEY_EN_UNUSED, }, // Move ANSI Enter 1 right + { 0, 3, 14, 0, KEY_EN_UNUSED, }, // Move ANSI Enter 1 right + { 0, 4, 0, 0, KEY_EN_UNUSED, }, + { 0, 5, 0, 0, KEY_EN_UNUSED, }, + { 0, 5, 5, 0, KEY_EN_LEFT_ALT, }, + { 0, 5, 6, 0, KEY_EN_UNUSED, }, // Move Space 1 right + { 0, 5, 9, 0, KEY_EN_RIGHT_ALT, }, + }, + { + /*---------------------------------------------------------------------*\ + | Swap Keys | + | Zone, Row, Column, Index, Key | + \*---------------------------------------------------------------------*/ + { 0, 0, 14, 0, KEY_EN_DELETE, }, // Swap PRTSCN for DEL + { 0, 0, 15, 0, KEY_EN_POWER, }, // Swap SCRLCK for POWER + { 0, 0, 16, 0, KEY_EN_UNUSED, }, // Remove PSE_BRK + { 0, 1, 16, 0, KEY_EN_UNUSED, }, // Remove INSERT + { 0, 1, 17, 0, KEY_EN_UNUSED, }, // Remove HOME + { 0, 1, 18, 0, KEY_EN_UNUSED, }, // Remove PGUP + { 0, 2, 16, 0, KEY_EN_UNUSED, }, // Remove DEL + { 0, 2, 17, 0, KEY_EN_UNUSED, }, // Remove END + { 0, 2, 18, 0, KEY_EN_UNUSED, }, // Remove PGDN + { 0, 4, 13, 0, KEY_EN_UNUSED, }, // Remove RGT_SHFT + { 0, 4, 15, 0, KEY_EN_RIGHT_SHIFT, }, // Swap ARWUP for RGT_SHFT + { 0, 5, 2, 0, KEY_EN_LEFT_FUNCTION, }, // Swap LFT_WIN for LFT_FNC + { 0, 5, 3, 0, KEY_EN_LEFT_WINDOWS, }, // Swap LFT_ALT for LFT_WIN + { 0, 5, 10, 0, KEY_EN_RIGHT_FUNCTION, }, // Swap RGT_ALT for RGT_FNC + { 0, 5, 11, 0, KEY_EN_RIGHT_CONTROL, }, // Swap RGT_FNC for RGT_CTL + { 0, 5, 12, 0, KEY_EN_LEFT_ARROW, }, // Swap ARWLFT for RGT_MNU + { 0, 5, 13, 0, KEY_EN_UP_ARROW, }, // Swap ARWUP for RGT_CTL + { 0, 5, 14, 0, KEY_EN_RIGHT_ARROW, }, // Swap ARWRGT for ARWLFT + { 0, 5, 15, 0, KEY_EN_DOWN_ARROW, }, // Swap ARWDWN for ARWDWN + { 0, 5, 16, 0, KEY_EN_UNUSED, }, // Remove ARWRGT + } +}; + keyboard_keymap_overlay_values razer_deathstalker_v2_layout { KEYBOARD_SIZE::KEYBOARD_SIZE_FULL, @@ -983,107 +1060,6 @@ static const razer_key blade_14_2022_keymap[] = { 0, 5, 15, KEY_EN_DOWN_ARROW, RAZER_LAYOUT_TYPE_ALL }, }; -#define BLADE_15_2022_KEYMAP_SIZE (sizeof(blade_15_2022_keymap) / sizeof(blade_15_2022_keymap[0])) - -static const razer_key blade_15_2022_keymap[] = -{ - /*-------------------------------------------------------------------------------------------------------------*\ - | Zone, Row, Column, Key Layout Type | - \*-------------------------------------------------------------------------------------------------------------*/ - { 0, 0, 1, KEY_EN_ESCAPE, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 2, KEY_EN_F1, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 3, KEY_EN_F2, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 4, KEY_EN_F3, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 5, KEY_EN_F4, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 6, KEY_EN_F5, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 7, KEY_EN_F6, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 8, KEY_EN_F7, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 9, KEY_EN_F8, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 10, KEY_EN_F9, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 11, KEY_EN_F10, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 12, KEY_EN_F11, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 13, KEY_EN_F12, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 14, KEY_EN_DELETE, RAZER_LAYOUT_TYPE_ALL }, - { 0, 0, 15, KEY_EN_POWER, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 1, KEY_EN_BACK_TICK, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 1, 1, KEY_JP_CHEVRON, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 1, 2, KEY_EN_1, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 3, KEY_EN_2, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 4, KEY_EN_3, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 5, KEY_EN_4, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 6, KEY_EN_5, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 7, KEY_EN_6, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 8, KEY_EN_7, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 9, KEY_EN_8, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 10, KEY_EN_9, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 11, KEY_EN_0, RAZER_LAYOUT_TYPE_ALL }, - { 0, 1, 12, KEY_EN_MINUS, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 1, 12, KEY_DE_ESZETT, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 1, 13, KEY_EN_EQUALS, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 1, 13, KEY_EN_BACK_TICK, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 1, 15, KEY_EN_BACKSPACE, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 1, KEY_EN_TAB, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 2, KEY_EN_Q, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 3, KEY_EN_W, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 4, KEY_EN_E, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 5, KEY_EN_R, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 6, KEY_EN_T, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 7, KEY_EN_Y, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 2, 7, KEY_EN_Z, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 2, 8, KEY_EN_U, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 9, KEY_EN_I, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 10, KEY_EN_O, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 11, KEY_EN_P, RAZER_LAYOUT_TYPE_ALL }, - { 0, 2, 12, KEY_EN_LEFT_BRACKET, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 2, 12, KEY_DE_DIAERESIS_U, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 2, 13, KEY_EN_RIGHT_BRACKET, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 2, 13, KEY_EN_PLUS, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 2, 15, KEY_EN_ANSI_BACK_SLASH, RAZER_LAYOUT_TYPE_ANSI }, - { 0, 3, 1, KEY_EN_CAPS_LOCK, RAZER_LAYOUT_TYPE_ALL }, - { 0, 3, 2, KEY_EN_A, RAZER_LAYOUT_TYPE_ALL }, - { 0, 3, 3, KEY_EN_S, RAZER_LAYOUT_TYPE_ALL }, - { 0, 3, 4, KEY_EN_D, RAZER_LAYOUT_TYPE_ALL }, - { 0, 3, 5, KEY_EN_F, RAZER_LAYOUT_TYPE_ALL }, - { 0, 3, 6, KEY_EN_G, RAZER_LAYOUT_TYPE_ALL }, - { 0, 3, 7, KEY_EN_H, RAZER_LAYOUT_TYPE_ALL }, - { 0, 3, 8, KEY_EN_J, RAZER_LAYOUT_TYPE_ALL }, - { 0, 3, 9, KEY_EN_K, RAZER_LAYOUT_TYPE_ALL }, - { 0, 3, 10, KEY_EN_L, RAZER_LAYOUT_TYPE_ALL }, - { 0, 3, 11, KEY_EN_SEMICOLON, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 3, 11, KEY_DE_DIAERESIS_O, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 3, 12, KEY_EN_QUOTE, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 3, 12, KEY_DE_DIAERESIS_A, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 3, 13, KEY_EN_POUND, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 3, 15, KEY_EN_ANSI_ENTER, RAZER_LAYOUT_TYPE_ALL }, - { 0, 4, 1, KEY_EN_LEFT_SHIFT, RAZER_LAYOUT_TYPE_ALL }, - { 0, 4, 2, KEY_EN_ISO_BACK_SLASH, RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 4, 2, KEY_NORD_ANGLE_BRACKET, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 4, 3, KEY_EN_Z, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 4, 3, KEY_EN_Y, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 4, 4, KEY_EN_X, RAZER_LAYOUT_TYPE_ALL }, - { 0, 4, 5, KEY_EN_C, RAZER_LAYOUT_TYPE_ALL }, - { 0, 4, 6, KEY_EN_V, RAZER_LAYOUT_TYPE_ALL }, - { 0, 4, 7, KEY_EN_B, RAZER_LAYOUT_TYPE_ALL }, - { 0, 4, 8, KEY_EN_N, RAZER_LAYOUT_TYPE_ALL }, - { 0, 4, 9, KEY_EN_M, RAZER_LAYOUT_TYPE_ALL }, - { 0, 4, 10, KEY_EN_COMMA, RAZER_LAYOUT_TYPE_ALL }, - { 0, 4, 11, KEY_EN_PERIOD, RAZER_LAYOUT_TYPE_ALL }, - { 0, 4, 12, KEY_EN_FORWARD_SLASH, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS }, - { 0, 4, 12, KEY_EN_MINUS, RAZER_LAYOUT_TYPE_QWERTZ }, - { 0, 4, 15, KEY_EN_RIGHT_SHIFT, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 1, KEY_EN_LEFT_CONTROL, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 2, KEY_EN_LEFT_FUNCTION, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 3, KEY_EN_LEFT_WINDOWS, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 5, KEY_EN_LEFT_ALT, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 7, KEY_EN_SPACE, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 9, KEY_EN_RIGHT_ALT, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 11, KEY_EN_RIGHT_CONTROL, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 12, KEY_EN_LEFT_ARROW, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 13, KEY_EN_UP_ARROW, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 14, KEY_EN_RIGHT_ARROW, RAZER_LAYOUT_TYPE_ALL }, - { 0, 5, 15, KEY_EN_DOWN_ARROW, RAZER_LAYOUT_TYPE_ALL }, -}; - #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[] = @@ -4819,7 +4795,7 @@ static const razer_device blade_14_2022_device = }; /*-------------------------------------------------------------*\ -| Razer Blade 15 (2022) | +| Razer Blade 15 (2022) 1532:028A | | | | Zone "Keyboard" | | Matrix | @@ -4849,9 +4825,9 @@ static const razer_device blade_15_2022_device = NULL, NULL }, - blade_15_2022_keymap, - BLADE_15_2022_KEYMAP_SIZE, - &razer_empty_layout + NULL, + 0, + &razer_blade_15_2022_layout }; /*-------------------------------------------------------------*\