Skip to content

feat: KVM Auto-Refresh Support - Auto-restore lighting on device reconnect (#452) - #955

Open
Kiki-bo-zhang wants to merge 1 commit into
1kc:masterfrom
Kiki-bo-zhang:feature/kvm-auto-refresh-452
Open

feat: KVM Auto-Refresh Support - Auto-restore lighting on device reconnect (#452)#955
Kiki-bo-zhang wants to merge 1 commit into
1kc:masterfrom
Kiki-bo-zhang:feature/kvm-auto-refresh-452

Conversation

@Kiki-bo-zhang

@Kiki-bo-zhang Kiki-bo-zhang commented Mar 6, 2026

Copy link
Copy Markdown

Description

This PR implements automatic device refresh and lighting restoration when Razer devices reconnect via KVM switch, addressing issue #452.

Problem

When switching between Mac and PC via KVM:

  • Keyboard goes dark when switching back to Mac
  • User must manually click menubar icon → Refresh Device List → Select lighting

Solution

Implemented USB monitoring that automatically:

  1. Detects when Razer devices connect/disconnect
  2. Auto-refreshes device list on reconnection
  3. Restores last used lighting settings

Features

  • USBMonitor class: Monitors USB attach/detach events using node-usb
  • Auto-refresh: Automatically refreshes device list when keyboard reconnects
  • Lighting restoration: Applies last known lighting state after reconnection
  • KVM State Setting: New "Device Reconnect" state option in settings

Changes

File Changes
src/main/usbmonitor.js New USB monitoring module
src/main/razerapplication.js Integrate USBMonitor, start on init
src/main/statemanager.js Add stateOnDeviceReconnect, applyCurrentState
package.json Add usb dependency (v2.11.0)

Testing

  1. Connect Razer keyboard to Mac
  2. Switch to PC via KVM
  3. Switch back to Mac
  4. Keyboard should automatically:
    • Be detected
    • Have lighting restored to last used state

Technical Details

  • Uses Razer vendor ID (0x1532) to filter relevant devices
  • Tracks detached devices to distinguish KVM reconnections from new connections
  • 1-second delay after attach event ensures device is ready
  • Respects user-defined "stateOnDeviceReconnect" setting if configured

Fixes #452

@1kc Please review when you have time!


IssueHunt Summary

Referenced issues

This pull request has been submitted to:


Implement automatic device refresh and lighting restoration when Razer devices reconnect via KVM switch.

Features:
- New USBMonitor class monitors USB attach/detach events
- Auto-refresh device list when keyboard reconnects
- Restore last used lighting settings after reconnection
- New state setting: stateOnDeviceReconnect for KVM scenarios

Changes:
- src/main/usbmonitor.js: New USB monitoring module
- src/main/razerapplication.js: Integrate USBMonitor, start monitoring on init
- src/main/statemanager.js: Add stateOnDeviceReconnect, applyCurrentState method
- package.json: Add usb dependency (v2.11.0)

Fixes 1kc#452
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for multiple computer / KVM setup

1 participant