hrvach/deskhop logo

hrvach/deskhop

Free

Fast Desktop Switching Device

FreeFree tier
Type
Open Source

About hrvach/deskhop

DeskHop is an open-source hardware and software project that enables fast, seamless switching between two computers using a single keyboard and mouse. It addresses common issues with commercial USB switch boxes—such as switching delays and awkward button presses—by allowing users to switch via a keyboard shortcut (e.g., Ctrl + Caps Lock) or by simply dragging the mouse pointer across monitor boundaries. The device acts as an intermediary, maintaining simultaneous connections with both computers and forwarding input based on the selected output. It features full galvanic isolation, works across Linux, macOS, and Windows, and uses affordable components (approximately €15). The project includes a 3D-printable snap-fit case and requires no software installation on the host computers.

Key Features

No noticeable delay when switching outputs
Drag mouse pointer across monitor boundaries to switch seamlessly
Keyboard shortcut (e.g., Ctrl + Caps Lock) to switch outputs
Full galvanic isolation between connected computers
Works with Linux, macOS, and Windows
No software installation required on host computers
Uses affordable, obtainable components (approx. €15)
3D-printable snap-fit case available
Completely free and open source (MIT license)
Remembers keyboard LED states per computer

Pros & Cons

Pros
  • Instantaneous switching with no perceptible delay
  • Intuitive mouse boundary switching replicates multi-monitor experience across separate computers
  • Works across different operating systems without driver installation
  • Low component cost and open-source design make it affordable and reproducible
  • Galvanic isolation protects against ground loops and electrical issues
  • Keyboard LEDs provide visual feedback of current active output
  • Active community and available user manual for assembly and configuration
Cons
  • Requires soldering and assembly skills to build the device (not a pre-assembled product)
  • Only supports switching between two computers at a time
  • Mouse switching relies on absolute coordinate reporting, which may not be compatible with all mice or setups
  • Hotkey configuration requires editing source code or re-flashing firmware (currently)
  • Limited to USB HID input devices (keyboard and mouse); does not support video or audio switching

Best For

Sharing a single keyboard and mouse between two desktop computers in a multi-monitor setupSwitching between work and personal computers without physical KVM switchesEnvironments where low-latency input switching is critical (e.g., gaming, development)Users who need galvanic isolation between computer peripherals for safety or data integrityDIY enthusiasts building custom KVM solutions with Raspberry Pi Pico

FAQ

How does DeskHop switch the mouse between computers?
DeskHop modifies the mouse HID report descriptor to use absolute coordinates. It accumulates relative mouse movements internally, and when the pointer exits the monitor area in the direction of the other monitor, it swaps the X coordinate and flips the outputs, seamlessly moving the cursor to the other screen.
Can I use a keyboard shortcut instead of mouse switching?
Yes, DeskHop supports a preconfigured hotkey (default Ctrl + Caps Lock) to switch outputs. When pressed, all subsequent keystrokes are forwarded to the other computer. Keyboard LEDs can be repurposed to show which output is active.
Do I need to install software on my computers?
No software installation is required. The device acts as a standard USB HID device and is recognized by the operating system without any drivers.
What components are needed to build DeskHop?
The project uses affordable, obtainable components, with an estimated cost of €15. It is based on a Raspberry Pi Pico (RP2040) and requires a few additional parts. A full bill of materials and assembly instructions are provided in the GitHub repository.
Does DeskHop support more than two computers?
The current design supports two computers. The repository does not mention support for more than two machines.