From 85e5fc82932cc95db7ff6cec8a5f62005f0f82f6 Mon Sep 17 00:00:00 2001 From: felixzsh Date: Sun, 21 Dec 2025 15:58:07 -0600 Subject: [PATCH] fix: dynamic windows-vm boot detection The current 5-second sleep is not enough for all hardware. On my PC (and likely many others), Windows takes longer to initialize. If the script tries to connect via RDP before Windows is fully ready, the connection fails or hangs. I replaced the fixed sleep with a dynamic loop that checks the Docker logs for the "Windows started successfully" message. This ensures the RDP client only starts once Windows has confirmed it's ready, making the launch process much more reliable across different hardware specs. Fixes #2599 --- bin/omarchy-windows-vm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/bin/omarchy-windows-vm b/bin/omarchy-windows-vm index 3ef9eb1102..aedc92fd24 100755 --- a/bin/omarchy-windows-vm +++ b/bin/omarchy-windows-vm @@ -283,8 +283,7 @@ launch_windows() { exit 1 fi - # Wait for RDP to be ready - echo "Waiting for Windows VM to be ready..." + echo "Waiting for RDP to be ready..." WAIT_COUNT=0 while ! nc -z 127.0.0.1 3389 2>/dev/null; do sleep 2 @@ -297,8 +296,18 @@ launch_windows() { fi done - # Give it a moment more to fully initialize - sleep 5 + echo "Waiting for Windows VM to start..." + WAIT_COUNT=0 + until docker logs omarchy-windows 2>&1 | grep -qi "windows started successfully"; do + sleep 2 + WAIT_COUNT=$((WAIT_COUNT + 1)) + if [ $WAIT_COUNT -gt 60 ]; then # 2 minutes timeout + echo "" + echo "❌ Timeout: Windows VM failed to start within 2 minutes" + echo " Check logs: docker logs omarchy-windows" + exit 1 + fi + done fi # Extract credentials from compose file