# Show GN: HyperDesk - Hyper-V/RDP 세션들을 하나의 창에 임베딩하는 데스크톱 앱

> Clean Markdown view of GeekNews topic #31180. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=31180](https://news.hada.io/topic?id=31180)
- GeekNews Markdown: [https://news.hada.io/topic/31180.md](https://news.hada.io/topic/31180.md)
- Type: show
- Author: [qetqet910](https://news.hada.io/@qetqet910)
- Published: 2026-07-06T22:56:01+09:00
- Updated: 2026-07-06T22:56:01+09:00
- Original source: [github.com/qetqet910](https://github.com/qetqet910/HyperDesk)
- Points: 1
- Comments: 0

## Topic Body

### VM 여러 개 띄워놓고 창 전환하다가 지쳐서 만들었습니다.  
  
회사 업무에 적응하던 중 문득 이런 생각이 들었습니다.  
  
> 유지보수 한 건 들어오면 해당 고객사 서버 원격 데스크탑 (MST),  
클라이언트 버전에 맞는 개발환경 (Hyper-V), 특수한 환경을 요구하는 고객사 (VDI/Omnissa) 등등   
화면이 너무 난잡한데.. 좋은 방법 없을까?  
  
##### 그래서 팀에 조금이라도 도움 될 수 있을까 하는 생각에 직접 만들어 보았습니다.  
  
- 동작 방식  
  
HyperDesk는 Hyper-V(VMConnect)와 RDP 세션을 Win32 Window Swallowing으로 앱 안에 임베딩합니다.   
미리보기나 탭이 아니라 실제 세션 창을 SetParent로 흡수하는 방식입니다.  
  
1. 단일 활성 뷰 + 즉시 전환: 활성 세션 하나를 전체 화면으로 보여주고, Alt+1~4(또는 헤더 탭)로 최대 4개 세션을 즉시 전환합니다. 나머지 세션은 백그라운드에 그대로 살아 있어서 전환해도 끊기지 않습니다.  
2. 키보드 라우팅: 활성 세션에 포커스가 있으면 Win 키, Alt+Tab 같은 시스템 단축키가 VM 내부로 전달됩니다.  
3. UI 멈춤 방지: 외부 클라이언트의 인증 모달이 떠도 메인 UI가 멈추지 않도록, AttachThreadInput 대신 독립 메시지 큐를 구성해 데드락을 피했습니다.  
4. Window 추적: 앱 창 리사이즈 등 레이아웃 변경 시 임베딩된 외부 창 위치를 requestAnimationFrame + 백엔드 델타 필터링으로 따라가게 했습니다.  
  
이외에 스냅샷, 원격 자산별 별명/메모, 커맨드 팔레트, RDP, Hyper-V On/Off 같은 편의 기능을 넣었습니다.  
  
- 스택 / 환경  
  
Tauri v2 + Rust + React 19  
Windows 전용  
랜딩페이지 : https://landinghyperdesk.netlify.app/ (Y2K)  
  
- 아직 안 되는 것  
  
VMware/Omnissa Horizon은 클라이언트 실행 코드가 일부 있지만 실사용 검증은 안 됐습니다. 특히 Omnissa는 VM 자체가 아니라 대시보드의 형태라 창을 붙잡기가 까다로워서 임베딩은 비활성 상태입니다.  
  
사이드 프로젝트로 만든 거라 부족한 점이 많습니다. 특히 Window Swallowing 방식 자체의 한계나, 이런 접근이 실무에서 안정적으로 쓰일 수 있을지에 대한 의견이 궁금합니다. 비슷한 고민 해보신 분들 피드백 주시면 적극 수용하겠습니다 !

## Comments



_No public comments on this page._
