1 Punkte von qetqet910 5 시간 전 | Noch keine Kommentare. | Auf WhatsApp teilen

Ich war es leid, mehrere VMs offen zu haben und ständig zwischen Fenstern zu wechseln, also habe ich das gebaut.

Während ich mich an die Arbeit im Unternehmen gewöhnte, kam mir plötzlich dieser Gedanke.

Wenn ein Wartungsfall reinkommt, braucht man den Remote-Desktop des jeweiligen Kundensystems (MST),
die zur Client-Version passende Entwicklungsumgebung (Hyper-V), Kunden mit speziellen Umgebungen (VDI/Omnissa) und so weiter.
Der Bildschirm ist viel zu unübersichtlich ... gibt es da keinen besseren Weg?

Also habe ich es selbst gebaut, in der Hoffnung, dem Team wenigstens ein bisschen helfen zu können.

  • Funktionsweise

HyperDesk bettet Hyper-V- (VMConnect) und RDP-Sitzungen per Win32 Window Swallowing in die App ein.
Es handelt sich nicht um eine Vorschau oder Tabs, sondern darum, das echte Sitzungsfenster per SetParent zu übernehmen.

  1. Einzelne aktive Ansicht + sofortiges Umschalten: Es wird jeweils eine aktive Sitzung im Vollbild angezeigt, und mit Alt+1~4 (oder den Header-Tabs) kann man sofort zwischen bis zu 4 Sitzungen wechseln. Die übrigen Sitzungen bleiben im Hintergrund aktiv, sodass sie beim Wechsel nicht unterbrochen werden.
  2. Tastatur-Routing: Wenn die aktive Sitzung den Fokus hat, werden System-Shortcuts wie die Windows-Taste oder Alt+Tab an die VM weitergeleitet.
  3. UI-Freeze vermeiden: Auch wenn ein Authentifizierungs-Modal eines externen Clients erscheint, friert die Haupt-UI nicht ein; statt AttachThreadInput wurde eine unabhängige Message Queue aufgebaut, um Deadlocks zu vermeiden.
  4. Window-Tracking: Bei Layout-Änderungen wie dem Resizing des App-Fensters folgt die eingebettete externe Fensterposition per requestAnimationFrame + backendseitiger Delta-Filterung.

Zusätzlich gibt es Komfortfunktionen wie Snapshots, Aliase/Notizen pro Remote-Asset, eine Command Palette, RDP sowie Hyper-V On/Off.

  • Stack / Umgebung

Tauri v2 + Rust + React 19
Nur für Windows
Landingpage : https://landinghyperdesk.netlify.app/ (Y2K)

  • Was noch nicht funktioniert

Für VMware/Omnissa Horizon gibt es teilweise Client-Startcode, aber es wurde nicht im realen Einsatz verifiziert. Besonders Omnissa ist nicht in Form einer VM selbst, sondern eher als Dashboard aufgebaut, weshalb das Erfassen des Fensters schwierig ist; das Einbetten ist daher deaktiviert.

Da es als Side Project entstanden ist, gibt es noch viele Schwächen. Mich interessiert vor allem Feedback zu den Grenzen des Window-Swallowing-Ansatzes selbst und dazu, ob so ein Ansatz in der Praxis stabil eingesetzt werden kann. Wenn jemand ähnliche Überlegungen hatte, nehme ich Feedback gern aktiv an!

Noch keine Kommentare.

Noch keine Kommentare.