|
42 | 42 | "hscroll_right", |
43 | 43 | ) |
44 | 44 |
|
| 45 | +# M650 Signature family: no horizontal scroll, no mode-shift, no dedicated gesture button. |
| 46 | +# Exposes a Virtual Gesture Button (CID 0x00D7) via REPROG_CONTROLS_V4 but no physical |
| 47 | +# gesture key. Middle click, back, and forward side buttons are the configurable controls. |
| 48 | +M650_BUTTONS = ( |
| 49 | + "middle", |
| 50 | + "xbutton1", |
| 51 | + "xbutton2", |
| 52 | +) |
| 53 | + |
45 | 54 |
|
46 | 55 | def _hotspot( |
47 | 56 | button_key: str, |
@@ -192,6 +201,36 @@ def _layout( |
192 | 201 | "supported_buttons": MX_ANYWHERE_BUTTONS, |
193 | 202 | "dpi_max": 4000, |
194 | 203 | }, |
| 204 | + # -- M650 Signature family ------------------------------------------------ |
| 205 | + # Compact wireless mouse (middle, back, forward buttons). Connects via Logi |
| 206 | + # Bolt receiver or Bluetooth LE. HID++ reports device name "Signature M650". |
| 207 | + # Confirmed via live HID++ probe: REPROG_CONTROLS_V4 (slot 2 on Bolt receiver), |
| 208 | + # LOWRES_WHEEL, ADJUSTABLE_DPI (200–4000 DPI), UNIFIED_BATTERY. |
| 209 | + # Bluetooth LE product ID confirmed in issue #215 as 0xB02A; keep the |
| 210 | + # common HID/OS name variants as fallbacks because some platforms only |
| 211 | + # surface the product string. |
| 212 | + { |
| 213 | + "key": "m650", |
| 214 | + "display_name": "M650 Signature", |
| 215 | + "product_ids": (0xB02A,), |
| 216 | + "aliases": ( |
| 217 | + "Signature M650", |
| 218 | + "Logi M650", |
| 219 | + "Logitech Signature M650", |
| 220 | + "M650", |
| 221 | + "M650 Signature", |
| 222 | + "Logitech M650 Signature", |
| 223 | + "M650 L", |
| 224 | + "M650 L Signature", |
| 225 | + "Signature M650 L", |
| 226 | + "M650 Signature for Business", |
| 227 | + ), |
| 228 | + "ui_layout": "m650", |
| 229 | + "image_asset": "icons/mouse-simple.svg", |
| 230 | + "supported_buttons": M650_BUTTONS, |
| 231 | + "dpi_min": 200, |
| 232 | + "dpi_max": 4000, |
| 233 | + }, |
195 | 234 | # -- G502 family ---------------------------------------------------------- |
196 | 235 | # Product IDs verified against Solaar's device descriptors. Wireless |
197 | 236 | # variants list both the wired USB PID and the Lightspeed receiver WPID. |
@@ -259,6 +298,23 @@ def _layout( |
259 | 298 |
|
260 | 299 |
|
261 | 300 | LOGI_DEVICE_LAYOUTS = { |
| 301 | + # M650 Signature: no device art yet; shows generic silhouette with the |
| 302 | + # three-button layout. Interactive hotspot diagram can be added once |
| 303 | + # mouse artwork is sourced and product_ids are confirmed. |
| 304 | + "m650": { |
| 305 | + "key": "m650", |
| 306 | + "label": "M650 Signature", |
| 307 | + "image_asset": "icons/mouse-simple.svg", |
| 308 | + "image_width": 220, |
| 309 | + "image_height": 220, |
| 310 | + "interactive": False, |
| 311 | + "manual_selectable": True, |
| 312 | + "note": ( |
| 313 | + "M650 Signature — middle click, back, and forward side buttons " |
| 314 | + "are all configurable. No gesture button or horizontal scroll." |
| 315 | + ), |
| 316 | + "hotspots": [], |
| 317 | + }, |
262 | 318 | # Shared placeholder for the G502 family: no device art has been |
263 | 319 | # contributed yet, so the page shows the generic silhouette with the |
264 | 320 | # G502 button list instead of an interactive hotspot diagram. |
|
0 commit comments