Add run_isolated launcher for Windows tutorial recordings
On Windows, the automated tutorials drive the real GUI with pyautogui and capture the screen with mss, which takes over the interactive desktop. We need a Windows-native equivalent of the Linux xvfb-run approach used in start_tutorial.sh — a launcher that runs the tutorial on a separate, isolated desktop so the user's normal desktop remains unaffected for the duration of the recording.
Proposed solution
Create tutorials/run_isolated.py (invokable as pixi run -e tutorials python -m tutorials.run_isolated tutorial_views 700) that:
- Opens the current input desktop as a restore point.
- Creates a new Win32 desktop (CreateDesktopW) and switches to it (SwitchDesktop).
- Spawns the tutorial module (python -m tutorials.) as a child process pinned to that desktop via STARTUPINFOW.lpDesktop.
- Uses a fresh, temporary MSUI_CONFIG_PATH for each run to guarantee a deterministic initial window layout and map section (mirrors start_tutorial.sh's mktemp pattern).
- Monitors MSS windows on the isolated desktop and gives the screen-recorder a grace period to finalise the .mp4 after all windows close.
- Forcibly terminates the child if a configurable timeout is exceeded.
- Always restores the original desktop in a finally block.
Add run_isolated launcher for Windows tutorial recordings
On Windows, the automated tutorials drive the real GUI with pyautogui and capture the screen with mss, which takes over the interactive desktop. We need a Windows-native equivalent of the Linux xvfb-run approach used in start_tutorial.sh — a launcher that runs the tutorial on a separate, isolated desktop so the user's normal desktop remains unaffected for the duration of the recording.
Proposed solution
Create tutorials/run_isolated.py (invokable as pixi run -e tutorials python -m tutorials.run_isolated tutorial_views 700) that: