DeskHop – schnelle Desktop-Umschaltung
(github.com/hrvach)DeskHop - schnelle Desktop-Umschaltung
- Kostenlos und Open Source
- Beim Umschalten nahezu keine Verzögerung
- Wechsel durch Ziehen des Mauszeigers zwischen Computern möglich
- Keine Software-Installation erforderlich
- Günstige und leicht erhältliche Bauteile (unter 15 Euro)
- Snap-Fit-Gehäuse, das mit einem 3D-Drucker hergestellt werden kann
- Vollständige galvanische Trennung zwischen den Ausgängen
- Funktioniert unter Linux, macOS und Windows
Funktionsweise
- Das Gerät fungiert als Vermittler zwischen Tastatur/Maus und den Computern und hält gleichzeitig Verbindungen zu zwei Computern aufrecht
- Je nach Auswahl des Nutzers entscheidet es, an welchen Computer Maus- und Tastatureingaben weitergeleitet werden
- Wenn die Maus auf den anderen Desktop gezogen wird, wechselt die Tastatur automatisch mit
Maus
- Der Maus-HID-Report-Descriptor wird so geändert, dass absolute Koordinaten verwendet werden, und die Maus-Reports (relative Bewegung) werden intern akkumuliert, um eine genaue Position beizubehalten
- Wenn versucht wird, den Monitorbereich in Richtung des anderen Monitors zu verlassen, bleibt die Y-Koordinate erhalten, das maximale X wird durch das minimale X ersetzt und anschließend wird der Ausgang umgeschaltet
- Der Cursor erscheint auf dem anderen Monitor auf derselben Höhe, wodurch der Wechsel nahtlos wahrgenommen wird
Tastatur
- Als USB-Host fragt das System die Tastatur regelmäßig ab, sucht nach vordefinierten Tastenkombinationen (z. B. Caps Lock) und leitet Zeichen an den anderen Ausgang weiter
- Es verwendet die Tastatur-LEDs erneut für Feedback, damit visuell erkennbar ist, welcher Ausgang gerade aktiv ist
- Der LED-Status jedes Computers wird gespeichert, sodass die Arbeit im vorherigen Zustand fortgesetzt werden kann
Verwendung vorgefertigter Images
- Vorgefertigte Images können verwendet werden
- Wenn das Pico-Board in Slot A der PCB gesteckt wird und beim Anschließen des Kabels die Taste auf dem Board gedrückt gehalten wird, erscheint es im System als USB-Laufwerk
- Die entsprechende Datei
board_A.uf2kopieren und den Vorgang für B wiederholen
Firmware-Upgrade
- Option 1: Das Gehäuse öffnen und bei gedrückter Taste während des Anschließens jedes Pico die richtige UF2-Datei kopieren
- Option 2: Mit einer bestimmten Tastenkombination (
Right Shift, P, H, X, Left Shift) in den BOOTSEL-Modus wechseln, um die Picos in den Bootloader-Upgrade-Modus zu versetzen
Weitere Funktionen
- Wenn die Maus feinjustiert werden muss, kann die Maus bei gedrückter
Right ALT-Taste bewegt werden; die Mausgeschwindigkeit wird dann deutlich reduziert, um präzise Arbeiten zu ermöglichen
Hardware
- Die Schaltung ist günstig (4,10 Euro pro Stück), von Hand lötbar und basiert auf zwei Raspberry Pi Pico-Boards, die bei den meisten Anbietern auf Lager sind
- Die Picos sind über UART verbunden, wobei ein ADuM1201-Digitalisolator mit zwei Kanälen von Analog Devices (~3 Euro) verwendet wird
- Dank eines bemerkenswerten Projekts, das USB mithilfe der programmierbaren IO-Magie des RP2040 implementiert, kann das System als USB-Host und -Gerät arbeiten
PCB
- Um den DIY-Bau so einfach wie möglich zu halten, verlaufen die Leiterbahnen nur auf einer Seite und die Anzahl der Bauteile wurde minimal gehalten
- Die differentiellen USB-D+/D--Leitungen müssen gleich lang sein, sind aber absichtlich leicht asymmetrisch, um den entsprechenden Unterschied der GPIO-Leiterbahnlängen auf der PICO-PCB selbst auszugleichen und so die Gesamtlänge anzugleichen
Gehäuse
- Da keine besondere Erfahrung mit 3D-Modellierung vorhanden war, ist das Gehäuse schlicht und einfach, erfüllt aber seinen Zweck
- Es lässt sich leicht drucken, verbraucht etwa 33 g Filament und ist in wenigen Stunden fertig
- Die horizontale Bewegung der PCB wird durch Pins verhindert, die durch Löcher geführt werden; die vertikale Bewegung wird durch seitliche Snap-Fit-Nasen verhindert, sodass keine Schrauben nötig sind
- Der Micro-USB-Stecker ragt an der Seite aus dem Gehäuse heraus; bei einer etwas größeren Öffnung passt das Kabel hindurch
- Der Deckel hat ein Snap-Fit-Design und kann über einen Schraubendreher-Schlitz geöffnet werden
- Die Markierung auf der Oberseite ist vertieft und kann z. B. mit Wachsmalstiften ausgefüllt werden, um den Kontrast zu erhöhen (oder unverändert bleiben)
Stückliste
- 2 Raspberry Pi Pico, 1 ADuM1201BRZ, 2 Cap 1206 SMD 100nF, 2 USB-A-PCB-Steckverbinder, 2 Headers 2.54 1x03
- Gesamtpreis: 11,53 Euro
- Für den USB-A-Steckverbinder kann der Molex MX-67643-0910 oder eine günstigere Alternative mit denselben Abmessungen verwendet werden
- Zusätzliche Schritte: PCB-Fertigung (Gerber wird bereitgestellt, JLC fertigt für ein paar Dollar, 1,6 mm Dicke wählen), 3D-Druck des Gehäuses (STL-Datei wird bereitgestellt, etwa 33 g Filament erforderlich)
FAQ
- Funktioniert es auch nur mit zwei Pico-Boards ohne PCB und Isolator?
- Der Isolator wird empfohlen, aber es kann auch ohne funktionieren.
- Was passiert, wenn die Monitore unterschiedliche Auflösungen haben?
- Die Mausbewegung erfolgt in einem abstrakten Koordinatenraum, und der Computer berechnet die Zuordnung zum physischen Bildschirm, daher sollte es problemlos funktionieren.
- Wo kann man dieses Produkt kaufen?
- Es wird nicht verkauft; es handelt sich um ein persönliches, nicht kommerzielles Hobbyprojekt.
- Folgt die Tastatur dem per Maus aktivierten Bildschirmwechsel (und umgekehrt)?
- Ja, es wurde so gebaut, dass es sich wie ein einzelner Computer verhält.
- Funktioniert es mit Tastatur-/Maus-Kombidongles wie dem Logitech-Unifying-Receiver?
- In der aktuellen Version funktioniert das nicht, da angenommen wird, dass die Maus an einem anderen Port angeschlossen ist. Das Verhalten des Logitech-Unifying-Receivers müsste untersucht und Unterstützung implementiert werden.
- Funktioniert es mit kabellosen Mäusen und Tastaturen, die jeweils einen eigenen Funkempfänger haben?
- Das wurde für solche Fälle nicht getestet, daher kann es zu unerwarteten Problemen kommen, theoretisch sollte es aber direkt funktionieren.
Nachteile
- Achtung: Um diese Funktion zu nutzen, müssen beide Computer angeschlossen und eingeschaltet sein (jedes Board wird vom jeweils angeschlossenen Computer mit Strom versorgt).
- Der Code muss noch aufgeräumt und refaktoriert werden.
- Gelegentlich treten Bugs und seltsame Verhaltensweisen auf.
- Es wurde nicht mit vielen verschiedenen Geräten getestet, daher ist unklar, wie es auf der Hardware der Nutzer funktionieren wird.
- Pico-PIO-USB wurde gepatcht, um die Steuerung der Tastatur-LEDs zu unterstützen; normalerweise wird das im Host-Modus von TinyUSB verarbeitet.
Haftungsausschluss
- Wer dieses Projekt ausprobiert, muss verstehen und anerkennen, dass die Verantwortung für alle Verletzungen, Schäden oder sonstigen Folgen bei der eigenen Person liegt.
- Sicherheit ist wichtig; daher sollten die notwendigen Vorsichtsmaßnahmen getroffen und während des gesamten Projekts Verantwortung für das eigene Wohlergehen übernommen werden.
- Keinen Stromschlag, keine Verbrennungen, keinen Stress und keinen Ärger riskieren – lieber mit Freude daran arbeiten und Spaß haben.
GN⁺-Meinung:
- Dieser Artikel kann für Menschen, die zwei Computer verwenden, sehr nützlich sein. Besonders attraktiv ist er für Nutzer, die eine Tastatur und Maus gemeinsam verwenden und dabei ihre Arbeitseffizienz steigern möchten.
- Der Open-Source- und DIY-Ansatz kann für technikinteressierte Menschen ein spannendes Projekt sein. Nutzer können das System an ihre eigenen Anforderungen anpassen und verbessern.
- Dieses Projekt zeigt den innovativen Geist einer Community, die technische Probleme lösen will. Indem Nutzer Probleme selbst lösen und den Prozess teilen, können auch andere davon profitieren.
1 Kommentare
Hacker-News-Kommentare
Bemerkenswert ist, dass die Randerkennung auch ohne Client-Software möglich ist.
Ich nutze seit weit über zehn Jahren die Softwarelösung Synergy. Der Wechsel erfolgt sofort über Wi‑Fi und funktioniert auch zwischen Windows/Mac/Linux.
Wenn man auf YouTube versucht, den Slider exakt an eine bestimmte Stelle zu bewegen, ist die Maus manchmal so empfindlich, dass man die Hand extrem vorsichtig bewegen muss.
,) und Punkt (.) framegenau durch das Video scrubben.Unter Windows kann man ein Tool namens Mouse Without Borders verwenden, das bei Microsoft Garage entwickelt wurde und inzwischen Teil von Windows PowerToys ist.
Inspiriert von anderen ähnlichen Projekten habe ich meine eigene Version gebaut.
evdev). Wenn eine bestimmte Taste gedrückt wird, verarbeitet es alle Events selbst und sendet sie per USB-Seriell an einen RPI Pico. Wird die Taste erneut gedrückt, wechselt es in einen passiven Listening-Modus.evdev-Events in USB-HID-Events umwandelt und an einen anderen Windows-PC sendet.Ich habe 4 USB-Hubs gekauft, um Tastatur und Maus umzuschalten, aber die meisten Geräte waren so schrecklich, dass ich den Hub mehrmals täglich physisch abziehen musste.
Eine meiner größten Frustrationen ist es, mit einem USB-3.0-Switch Maus- und Tastatureingaben zwischen zwei PCs umzuschalten.
Ich nutze derzeit einen KVM-Switch, und da das Umschalten 2–3 Sekunden dauert, verbinde ich mich meist per SSH mit dem anderen Rechner und verwende eine
tmux-Session.Das ist eine erstaunliche Entwicklung.
Synergy löst dieses Problem softwareseitig sehr gut. Es ist weder kostenlos noch Open Source, aber relativ günstig.