Ubuntu 云桌面启动断联修复记录（2026-11-09）

现象
点击 Ubuntu 后出现白色全屏过渡层和左上角 Moonlight 小窗口，随后约 30 秒内断联并回到列表。

证据
盒子 /home/armbian/.xsession-errors 记录：
  Your windowmanager claims not to support _NET_ACTIVE_WINDOW
  xdo_activate_window ... error
  vdi_connection ... 云桌面画面就绪超时
盒子会话是无 EWMH 窗口管理器的 kiosk X11 会话。Moonlight 的 SDL 窗口已创建，但旧流程只调用 xdotool windowactivate；该命令在无窗口管理器时失败，kiosk-shell 把健康的串流误判为未就绪，过渡层超时后主动终止 Moonlight。

修复
1. MoonlightSession::activateStreamWindow 在 windowactivate 失败时改走 WM-less X11 回退：windowmap、windowraise、windowmove 0 0、windowsize 到显示器尺寸；以窗口已映射且铺满输出作为就绪条件。
2. kiosk-shell 首次显示时走直接 X11 map/raise/focus 路径，避免 _NET_ACTIVE_WINDOW 为空导致盒子输入落到根窗口。
3. 保留原有 30 秒保护超时，避免异常进程无限占用过渡层。

部署
盒子 192.168.1.188 已重新编译并部署 kiosk-shell、vdi-kiosk-monitor；仅保留一个受管 kiosk 栈。部署编译通过，CTest 3/3 通过（display-guard、moonlight-session、desktop-list-page）。

回退
部署脚本会在盒子端保留显示守护配置备份；源码改动可用 git checkout 回退。此次未修改 Windows VM100、麒麟 VM101 或 Ubuntu 的编码参数。

待现场确认
请在盒子上点击 Ubuntu 连接，确认过渡层消失后画面保持 2K/45；若仍出现断联，立即保留 /home/armbian/.xsession-errors、/tmp/vdi-monitor.log 和 /home/armbian/vdi-terminal/logs/moonlight-20261109.log 的对应时间段。
