Skip to content

Add launch action to VM installer completion screen#658

Open
MrRooni wants to merge 1 commit intoinsidegui:mainfrom
MrRooni:mrrooni/add-launch-button-to-setup-completion
Open

Add launch action to VM installer completion screen#658
MrRooni wants to merge 1 commit intoinsidegui:mainfrom
MrRooni:mrrooni/add-launch-button-to-setup-completion

Conversation

@MrRooni
Copy link

@MrRooni MrRooni commented Mar 10, 2026

🦾 Reason to Be

This MR updates the installer completion screen so finishing a VM setup leaves the user with an actionable next step. The .done step now shows a dedicated completion view with a primary Let’s Go! action that launches the newly created virtual machine and dismisses the installer window.

It also wires VirtualMachineSessionUIManager into the installer launch path and wizard previews so the completion screen has the session-launch dependency it needs.

image

🤔 Thought Process

Built with help from Codex.

The completion state originally used a generic success progress view, which was fine for status display but not for the new launch action and layout requirements. I split the .done state into its own InstallProgressDoneView so the completion UI could be structured independently without complicating the main progress display switch.

From there, I added a visible Let’s Go! button for the primary action and kept the Return key behavior by using a hidden default-action button. That avoids macOS overriding the visible button’s styling when .keyboardShortcut(.defaultAction) is applied directly.

I also removed the default-action shortcut from the toolbar Done button so Return triggers launch instead of close, and updated the installer launch wiring so the new completion view can access VirtualMachineSessionUIManager through the environment.

📋 How To Test

  1. Launch the installer flow and complete a VM installation until the setup reaches the finished screen.
  2. Verify the .done screen shows the dedicated completion UI with the success icon, finished message, and Let’s Go! button.
  3. Click Let’s Go! and verify the new VM launches and the installer window closes.
  4. Press Return on the completion screen and verify it triggers the same launch behavior.
  5. Click the toolbar Done button and verify it closes the installer without launching the VM.
  6. Open installer previews and verify the completion preview still renders correctly with the required environment objects.

🐛 Possible Impacts

The main risk area is installer window/environment wiring. The completion screen now depends on VirtualMachineSessionUIManager being injected anywhere VMInstallationWizard is presented, so any code path that opens the installer without that environment object could break or fail to launch the VM from the done state.

There is also some behavioral risk around keyboard handling on the completion screen, since Return is now intentionally routed to launch rather than to the toolbar Done action.

Added a dedicated installer completion view with a primary launch action

Replace the inline done-state progress UI with InstallProgressDoneView
and add a "Let’s Go!" button that launches the newly created VM and
dismisses the installer.

Use a hidden default-action button to preserve the Return key shortcut
without letting macOS override the visible button’s custom text color.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant