From 14b0b1e41d00d7fb04ca46c381c9740db0c390c6 Mon Sep 17 00:00:00 2001 From: Ross Simpson Date: Sat, 3 Oct 2026 17:22:11 +0200 Subject: [PATCH] feat(redragon): wire up the M690 PRO driver --- src/device/controller.ts | 3 ++- src/supported-devices-data.ts | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/device/controller.ts b/src/device/controller.ts index d0337290..20fac5bb 100644 --- a/src/device/controller.ts +++ b/src/device/controller.ts @@ -187,6 +187,7 @@ import { BytechHidClient } from "@openmouse/protocol/drivers/bytech/hid"; import { FaterHidClient } from "@openmouse/protocol/drivers/fater/hid"; import { RapooHidClient } from "@openmouse/protocol/drivers/rapoo/hid"; import { CoolerMasterHidClient } from "@openmouse/protocol/drivers/coolermaster/hid"; +import { RedragonM690ProHidClient } from "@openmouse/protocol/drivers/redragon/m690-pro-hid"; import { parsePreviewMode, previewsEnabled, type PreviewMode } from "../preview-modes"; import { sleepLabel } from "./options"; import { traitsFor } from "./traits"; @@ -261,7 +262,7 @@ function activeAs(...classes: ClientClass[]): T | null { const DM_CLASSES = [WLMouseHidClient, LamzuHidClient, LamzuAtlantisHidClient, AtkHidClient, AtkBitmouseHidClient, NinjutsoHidClient] as const; const RAZER_CLASSES = [RazerHidClient, RazerViperMiniHidClient, RazerViperHidClient, RazerCobraHidClient] as const; -const NEEDS_OPEN = [LamzuAtlantisHidClient, TeevolutionHidClient, VgnF2HidClient, KeychronNapeHidClient, Keychron8kNordicHidClient, WLMouseBeastX4kHidClient, ModdoHidClient, ZaunkoenigHidClient, CorsairHidClient, FantechHidClient, WallhackMouseHidClient, WallhackKeyboardHidClient, GloriousHidClient, GloriousClassicHidClient, MchoseHidClient, MchoseDockHidClient, MchoseA5ProMaxHidClient, MchoseV3HidClient, MicrosoftHidClient, DareuHidClient, IncottHidClient, BytechHidClient, RapooHidClient, FaterHidClient, CoolerMasterHidClient] as const; +const NEEDS_OPEN = [LamzuAtlantisHidClient, TeevolutionHidClient, VgnF2HidClient, KeychronNapeHidClient, Keychron8kNordicHidClient, WLMouseBeastX4kHidClient, ModdoHidClient, ZaunkoenigHidClient, CorsairHidClient, FantechHidClient, WallhackMouseHidClient, WallhackKeyboardHidClient, GloriousHidClient, GloriousClassicHidClient, MchoseHidClient, MchoseDockHidClient, MchoseA5ProMaxHidClient, MchoseV3HidClient, MicrosoftHidClient, DareuHidClient, IncottHidClient, BytechHidClient, RapooHidClient, FaterHidClient, CoolerMasterHidClient, RedragonM690ProHidClient] as const; const PULSAR_CLASSES = [PulsarHidClient, PulsarProHidClient, PulsarXs1HidClient] as const; const logitechClient = (): LogitechHidppClient | null => activeAs(LogitechHidppClient); diff --git a/src/supported-devices-data.ts b/src/supported-devices-data.ts index b5f87394..153f5530 100644 --- a/src/supported-devices-data.ts +++ b/src/supported-devices-data.ts @@ -91,6 +91,7 @@ export const SUPPORTED_DEVICES: readonly SupportedDeviceEntry[] = [ { brand: "Redragon", model: "M696 Pro", status: "driver" }, { brand: "Redragon", model: "M721 Pro", status: "driver" }, { brand: "Redragon", model: "M724 K1NG 1K", status: "supported", pids: [0xfc7a] }, + { brand: "Redragon", model: "M690 PRO", status: "supported", pids: [0x2e, 0x2f] }, { brand: "Ryunix", model: "KYU Pro MX1", status: "supported", pids: [0x26e, 0x26f] }, { brand: "Delux", model: "M800 Mini", status: "supported", pids: [0xfa60, 0xfa55] }, { brand: "Dareu", model: "A950 PRO Mg", status: "supported", pids: [0x1114, 0x1117] },