diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index 0b2907cf..71100386 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -87,6 +87,8 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha case RAZER_DEATHADDER_ELITE_PID: case RAZER_DEATHADDER_V2_MINI_PID: case RAZER_DEATHADDER_ESSENTIAL_V2_PID: + case RAZER_DEATHSTALKER_V2_PRO_TKL_WIRED_PID: + case RAZER_DEATHSTALKER_V2_PRO_TKL_WIRELESS_PID: case RAZER_DEATHSTALKER_V2_PRO_WIRED_PID: case RAZER_DEATHSTALKER_V2_PRO_WIRELESS_PID: case RAZER_FIREFLY_V2_PID: @@ -396,6 +398,8 @@ bool RazerController::SupportsWave() case RAZER_CYNOSA_V2_PID: case RAZER_DEATHSTALKER_CHROMA_PID: case RAZER_DEATHSTALKER_V2_PID: + case RAZER_DEATHSTALKER_V2_PRO_TKL_WIRED_PID: + case RAZER_DEATHSTALKER_V2_PRO_TKL_WIRELESS_PID: case RAZER_DEATHSTALKER_V2_PRO_WIRED_PID: case RAZER_DEATHSTALKER_V2_PRO_WIRELESS_PID: case RAZER_ORNATA_CHROMA_PID: diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index 6b93df36..1a809c3e 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -169,6 +169,8 @@ REGISTER_HID_DETECTOR_IPU("Razer Cynosa Chroma V2", Det REGISTER_HID_DETECTOR_IPU("Razer Cynosa Lite", DetectRazerControllers, RAZER_VID, RAZER_CYNOSA_LITE_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Deathstalker Chroma", DetectRazerControllers, RAZER_VID, RAZER_DEATHSTALKER_CHROMA_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Deathstalker V2", DetectRazerControllers, RAZER_VID, RAZER_DEATHSTALKER_V2_PID, 0x03, 0x0C, 0x01); +REGISTER_HID_DETECTOR_IPU("Razer Deathstalker V2 Pro TKL (Wired)", DetectRazerControllers, RAZER_VID, RAZER_DEATHSTALKER_V2_PRO_TKL_WIRED_PID, 0x03, 0x0C, 0x01); +REGISTER_HID_DETECTOR_IPU("Razer Deathstalker V2 Pro TKL (Wireless)", DetectRazerControllers, RAZER_VID, RAZER_DEATHSTALKER_V2_PRO_TKL_WIRELESS_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Deathstalker V2 Pro (Wired)", DetectRazerControllers, RAZER_VID, RAZER_DEATHSTALKER_V2_PRO_WIRED_PID, 0x03, 0x0C, 0x01); REGISTER_HID_DETECTOR_IPU("Razer Deathstalker V2 Pro (Wireless)", DetectRazerControllers, RAZER_VID, RAZER_DEATHSTALKER_V2_PRO_WIRELESS_PID, 0x02, 0x01, 0x02); REGISTER_HID_DETECTOR_IPU("Razer Huntsman", DetectRazerControllers, RAZER_VID, RAZER_HUNTSMAN_PID, 0x02, 0x01, 0x02); diff --git a/Controllers/RazerController/RazerDevices.cpp b/Controllers/RazerController/RazerDevices.cpp index 0e40bd0e..1b16f0ad 100644 --- a/Controllers/RazerController/RazerDevices.cpp +++ b/Controllers/RazerController/RazerDevices.cpp @@ -737,6 +737,47 @@ keyboard_keymap_overlay_values razer_deathstalker_v2_pro_layout } }; +keyboard_keymap_overlay_values razer_deathstalker_v2_pro_tkl_layout +{ + KEYBOARD_SIZE::KEYBOARD_SIZE_TKL, + { + { /* ANSI Value set not used */ }, + { + { + KEYBOARD_LAYOUT_ANSI_QWERTY, + { + /*---------------------------------------------------------------------------------------------------------*\ + | Edit Keys | + | Zone, Row, Column, Value, Key, OpCode, | + \*---------------------------------------------------------------------------------------------------------*/ + { 0, 4, 1, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_SWAP_ONLY, }, // Move 'Z' 1 right (Account for ISO key) + } + }, + { + KEYBOARD_LAYOUT_ISO_QWERTY, + { + /*---------------------------------------------------------------------------------------------------------*\ + | Edit Keys | + | Zone, Row, Column, Value, Key, OpCode, | + \*---------------------------------------------------------------------------------------------------------*/ + { 0, 2, 13, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_SWAP_ONLY, }, // Remove ANSI_BACKSLASH + { 0, 4, 1, 0, KEY_EN_ISO_BACK_SLASH, KEYBOARD_OPCODE_SWAP_ONLY, }, // Add ISO_BACK_SLASH + } + }, + /* Add more regional layout fixes here */ + } + }, + { + /*---------------------------------------------------------------------------------------------------------*\ + | Edit Keys | + | Zone, Row, Column, Value, Key, OpCode, | + \*---------------------------------------------------------------------------------------------------------*/ + { 0, 0, 14, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_SWAP_ONLY, }, // Remove PRINT_SCREEN + { 0, 0, 15, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_SWAP_ONLY, }, // Remove SCROLL_LOCK + { 0, 0, 16, 0, KEY_EN_UNUSED, KEYBOARD_OPCODE_SWAP_ONLY, }, // Remove PAUSE_BREAK + } +}; + keyboard_keymap_overlay_values razer_full_size_shifted_layout { KEYBOARD_SIZE::KEYBOARD_SIZE_FULL, @@ -1926,6 +1967,63 @@ static const razer_device deathstalker_v2_device = &razer_deathstalker_v2_layout }; +/*-------------------------------------------------------------*\ +| Razer DeathStalker V2 Pro TKL (Wired) 1532:0298 | +| (Wireless) 1532:0296 | +| (Bluetooth) 1532:0297 | +| | +| Zone "Keyboard" | +| Matrix | +| 84 LEDs | +\*-------------------------------------------------------------*/ +static const razer_zone deathstalker_v2_pro_tkl_zone = +{ + ZONE_EN_KEYBOARD, + ZONE_TYPE_MATRIX, + 6, + 17 +}; + +static const razer_device deathstalker_v2_pro_tkl_wired_device = +{ + "Razer DeathStalker V2 Pro TKL (Wired)", + RAZER_DEATHSTALKER_V2_PRO_TKL_WIRED_PID, + DEVICE_TYPE_KEYBOARD, + RAZER_MATRIX_TYPE_EXTENDED, + 0x1F, + 6, + 17, + { + &deathstalker_v2_pro_tkl_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + &razer_deathstalker_v2_pro_tkl_layout +}; + +static const razer_device deathstalker_v2_pro_tkl_wireless_device = +{ + "Razer DeathStalker V2 Pro TKL (Wireless)", + RAZER_DEATHSTALKER_V2_PRO_TKL_WIRELESS_PID, + DEVICE_TYPE_KEYBOARD, + RAZER_MATRIX_TYPE_EXTENDED, + 0x9F, + 6, + 17, + { + &deathstalker_v2_pro_tkl_zone, + NULL, + NULL, + NULL, + NULL, + NULL + }, + &razer_deathstalker_v2_pro_tkl_layout +}; + /*-------------------------------------------------------------*\ | Razer DeathStalker V2 Pro (Wireless) 1532:0290 | | | @@ -7386,6 +7484,8 @@ const razer_device* razer_device_list[] = &cynosa_lite_device, &deathstalker_chroma_device, &deathstalker_v2_device, + &deathstalker_v2_pro_tkl_wired_device, + &deathstalker_v2_pro_tkl_wireless_device, &deathstalker_v2_pro_wired_device, &deathstalker_v2_pro_wireless_device, &huntsman_device, diff --git a/Controllers/RazerController/RazerDevices.h b/Controllers/RazerController/RazerDevices.h index b0c8aa81..333f632a 100644 --- a/Controllers/RazerController/RazerDevices.h +++ b/Controllers/RazerController/RazerDevices.h @@ -93,6 +93,9 @@ #define RAZER_CYNOSA_V2_PID 0x025E #define RAZER_DEATHSTALKER_CHROMA_PID 0x0204 #define RAZER_DEATHSTALKER_V2_PID 0x0295 +#define RAZER_DEATHSTALKER_V2_PRO_TKL_WIRELESS_PID 0x0296 +#define RAZER_DEATHSTALKER_V2_PRO_TKL_WIRED_PID 0x0298 +#define RAZER_DEATHSTALKER_V2_PRO_TKL_BT_PID 0x0297 #define RAZER_DEATHSTALKER_V2_PRO_WIRELESS_PID 0x0290 #define RAZER_DEATHSTALKER_V2_PRO_WIRED_PID 0x0292 #define RAZER_HUNTSMAN_ELITE_PID 0x0226