1 puntos por qetqet910 5 시간 전 | Aún no hay comentarios. | Compartir por WhatsApp

Lo hice porque me cansé de tener varias VM abiertas y estar cambiando entre ventanas.

Mientras me adaptaba al trabajo en la empresa, de repente pensé esto.

Cuando entra un caso de mantenimiento, tienes el escritorio remoto del servidor del cliente (MST),
el entorno de desarrollo que coincide con la versión del cliente (Hyper-V), clientes que exigen entornos especiales (VDI/Omnissa), etc.
La pantalla queda demasiado desordenada... ¿habrá una mejor forma?

Así que pensé en hacer algo que pudiera ayudar хотя sea un poco al equipo, y lo desarrollé yo mismo.

  • Cómo funciona

HyperDesk incrusta sesiones de Hyper-V (VMConnect) y RDP dentro de la app mediante Win32 Window Swallowing.
No usa vistas previas ni pestañas, sino que absorbe la ventana real de la sesión con SetParent.

  1. Vista activa única + cambio inmediato: muestra una sola sesión activa a pantalla completa y permite cambiar al instante entre hasta 4 sesiones con Alt+1~4 (o con las pestañas del encabezado). Las demás sesiones siguen vivas en segundo plano, así que el cambio no las interrumpe.
  2. Enrutamiento de teclado: cuando la sesión activa tiene el foco, atajos del sistema como la tecla Win o Alt+Tab se envían al interior de la VM.
  3. Prevención de congelamiento de la UI: incluso si aparece un modal de autenticación de un cliente externo, la UI principal no se congela; para evitar deadlocks, se configuró una cola de mensajes independiente en lugar de usar AttachThreadInput.
  4. Seguimiento de ventanas: cuando cambia el layout, por ejemplo al redimensionar la ventana de la app, la posición de la ventana externa incrustada se sigue con requestAnimationFrame + filtrado delta en el backend.

Además, agregué funciones de conveniencia como snapshots, alias/notas por recurso remoto, command palette, RDP y activación/desactivación de Hyper-V.

  • Stack / entorno

Tauri v2 + Rust + React 19
Solo para Windows
Landing page: https://landinghyperdesk.netlify.app/ (Y2K)

  • Lo que todavía no funciona

VMware/Omnissa Horizon tiene parte del código de ejecución del cliente, pero aún no se ha validado para uso real. En particular, Omnissa no es la VM en sí sino un dashboard, así que es complicado capturar la ventana; por eso la incrustación está desactivada.

Como lo hice como side project, todavía le faltan muchas cosas. Sobre todo, me interesa conocer opiniones sobre las limitaciones del enfoque de Window Swallowing en sí y sobre si este tipo de aproximación puede usarse de forma estable en trabajo real. Si alguien ha tenido una preocupación parecida, agradeceré mucho su feedback y lo tomaré activamente en cuenta.

Aún no hay comentarios.

Aún no hay comentarios.