macOS: VM windows should not resize or move themselves without user input
- Dominant language
- Swift
- Stars
- 35.5k
- Forks
- 1.8k
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 7
Description
**Describe the problem**
Here to discuss a UI problem:
UTM resizes and repositions VM windows without user input. For example, starting a Windows VM causes **4 separate window resizes**: the window appears at one size, shrinks when the BIOS loads (low resolution), grows as Windows boots, then grows again and repositions when the display driver loads. Each time, the window jumps to a different size and the user's layout is disrupted.
This also happens when resuming a paused VM, when the guest agent connects seconds after boot, when dragging the window to another monitor, and via a snap-back timer that reverts user resizes.
**Expected behavior**
Other VM apps (Fusion, Parallels) treats the user's window as authoritative. The window never moves or resizes itself. UTM should do the same:
- **Guest resolution changes** → content scales inside the unchanged window
- **VM start / resume** → window stays where the user left it
- **User resize** → free-form, no aspect lock, no snap-back; with dynamic resolution the guest follows the window, without it the content scales
- **Window memory** → size, position, and fullscreen state remembered per VM
- **Fullscreen** → user-initiated only (last-session state restored on next open)
- **Explicit command** → View → Actual Size (⌘0) for one-shot snap to 1:1 pixels when you want it
**Proposed design**
The VM window should keep the size and position chosen by the user. Changes to the guest resolution should only change how the VM is displayed inside that window, rather than resizing the window itself.
Commands such as **Fit to Window** and **Actual Size** can remain available for users who want to change this relationship explicitly.
Does this design make sense? Should it become the default behavior, or should it be offered as an option?
Happy to work on a PR.
**Configuration**
* UTM Version: 4.7.5
* macOS Version: 26.6
* Mac Chip (Intel, M1, ...): M3 Max
Contributor guide
Research direction
Start by tracing UTM's macOS VM window handling and the existing Fit to Window and Actual Size commands. Compare current behavior with the proposed rules for guest resolution changes, user resizing, window position memory, fullscreen restoration, and explicit sizing commands; done means the window no longer changes without user input and the requested commands still work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, swift
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100