haimgel/display-switch

Turn a $30 USB switch into a full-featured multi-monitor KVM switch

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 11 seconds ago
Added to GitGenius on September 20th, 2026
Created on July 28th, 2020
Open Issues & Pull Requests: 30 (+0)
GitHub issues: Enabled
Number of forks: 129
Total Stargazers: 3,440 (+0)
Total Subscribers: 17 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 12
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 481 days
Stale 30+ days: 12
Stale 90+ days: 10

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (3)
  • help wanted (3)
  • good first issue (2)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

display-switch is a utility that turns an inexpensive USB switch into a full-featured multi-monitor KVM switch by monitoring USB device events and controlling monitor inputs via DDC/CI.

The tool solves the problem of manually switching monitor inputs when working with multiple computers connected to the same displays. When a USB device is plugged in or unplugged, display-switch automatically switches all connected monitors to the appropriate input for that computer. The approach relies on running the application on each computer that shares the monitors, so that when you physically switch the USB device from one computer to another, the monitors follow automatically in both directions.

The tool runs on macOS, Windows, and Linux. It suits anyone with multiple computers sharing a set of monitors who wants to avoid manual input switching. Configuration is straightforward: you specify which USB device to watch and which monitor inputs to switch to upon connection or disconnection. The tool supports per-monitor configuration, allowing different monitors to switch to different inputs if needed, and can match monitors by ID substring. It also supports running external commands when USB devices connect or disconnect, enabling integration with other tools or scripts. On Windows, monitors can be renamed in the Registry to make configuration easier when they report as generic devices.

The project shows consistent maintenance with regular updates addressing user-reported issues and platform-specific bugs. Development includes active engagement with user feedback, particularly around Windows and macOS compatibility concerns. The codebase demonstrates attention to cross-platform reliability, with fixes and improvements applied across all three supported operating systems.