From aa5e4c61f00a0d3e51e3dd6c834311669d41f59d Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 4 Sep 2026 18:45:00 +0000 Subject: [PATCH 1/2] Add G502 X LIGHTSPEED direct-USB PID (0xc098) to device art/docs Companion to the mouse-protocol driver change: map 046d:c098 to the G502 X artwork and document the direct-connect PID on the supported mice list, alongside the existing Lightspeed-dongle entry. --- src/supported-mice.ts | 3 ++- src/ui/device-images.test.ts | 1 + src/ui/device-images.ts | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/supported-mice.ts b/src/supported-mice.ts index 32606c11..288ef22b 100644 --- a/src/supported-mice.ts +++ b/src/supported-mice.ts @@ -109,7 +109,8 @@ export const MICE: Mouse[] = [ pids: [0xc095], note: "PID 0xc095 (USB) in driver; Lightspeed dongle also works" }, { brand: "Logitech", model: "G502 X LIGHTSPEED", status: "supported", req: 2, - note: "Lightspeed dongle — HID++ 2.0 protocol supported" }, + pids: [0xc098], + note: "Lightspeed dongle — HID++ 2.0 protocol supported; PID 0xc098 (USB cable, direct-connect) also in driver" }, { brand: "Logitech", model: "MX Vertical", status: "driver", req: 9, note: "Unifying (HID++ 1.0) / Bluetooth — not implemented" }, { brand: "Logitech", model: "MX Master 4S", status: "likely", req: 8, diff --git a/src/ui/device-images.test.ts b/src/ui/device-images.test.ts index 047fcfe8..1aef524f 100644 --- a/src/ui/device-images.test.ts +++ b/src/ui/device-images.test.ts @@ -10,6 +10,7 @@ const hid = (productId: number): HIDDevice => ({ vendorId: 0x046d, productId } a test("G502 family USB interfaces use their matching normalized artwork", () => { assert.equal(deviceImage(hid(0xc07d)), CDN + "logitech-g502.png"); assert.equal(deviceImage(hid(0xc095)), CDN + "logitech-g502-x-plus.png"); + assert.equal(deviceImage(hid(0xc098)), CDN + "logitech-g502-x.png"); assert.equal(deviceImage(hid(0xc099)), CDN + "logitech-g502-x.png"); }); diff --git a/src/ui/device-images.ts b/src/ui/device-images.ts index 1d516105..95471d2e 100644 --- a/src/ui/device-images.ts +++ b/src/ui/device-images.ts @@ -13,6 +13,7 @@ const DEVICE_IMAGES: ReadonlyMap = new Map([ ["046d:c07d", "logitech-g502.png"], ["046d:c095", "logitech-g502-x-plus.png"], + ["046d:c098", "logitech-g502-x.png"], ["046d:c099", "logitech-g502-x.png"], ["046d:c0a8", "logitech-pro-x2-superstrike.png"], // Original G703 (0xc087) and G703 HERO wired (0xc090) share the same shell. From 23b96ded85020fab9d5cda8c92af5c606ef7c58e Mon Sep 17 00:00:00 2001 From: snekxs <26660858+snekxs@users.noreply.github.com> Date: Fri, 4 Sep 2026 12:55:28 -0600 Subject: [PATCH 2/2] Refresh lockfile for merged mouse-protocol#43 (G502 X LIGHTSPEED PID 0xc098) --- package-lock.json | 52 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 511905a8..64c5bcde 100644 --- a/package-lock.json +++ b/package-lock.json @@ -467,6 +467,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -478,7 +481,7 @@ }, "node_modules/@openmouse/protocol": { "version": "0.1.0", - "resolved": "git+ssh://git@github.com/OpenMouse-Project/mouse-protocol.git#1ffe5ddc5d28aecc7e2584fadad7d0b831683575", + "resolved": "git+ssh://git@github.com/OpenMouse-Project/mouse-protocol.git#45bc2a963bde4ebf4691dfa193f8e02799e26bab", "engines": { "node": ">=20" } @@ -575,6 +578,9 @@ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -589,6 +595,9 @@ "arm" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -603,6 +612,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -617,6 +629,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -631,6 +646,9 @@ "loong64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -645,6 +663,9 @@ "loong64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -659,6 +680,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -673,6 +697,9 @@ "ppc64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -687,6 +714,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -701,6 +731,9 @@ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -715,6 +748,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -729,6 +765,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -743,6 +782,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -955,9 +997,9 @@ } }, "node_modules/postcss": { - "version": "8.5.26", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", - "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "version": "8.5.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", + "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", "dev": true, "funding": [ { @@ -975,7 +1017,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.17", + "nanoid": "^3.3.18", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" },