feat: add Window: Maximize (Stage Manager) command#626
Conversation
Maximize the focused window while keeping the Stage Manager strip visible: the left edge reuses Almost Maximize's left inset (5% of the work-area width) and the top/right/bottom edges extend to the full work area, unlike Raycast's Maximize which changes behavior implicitly based on Stage Manager state. Preset id: fill-stage / command id: system-window-management-fill-stage, implemented in all three layout paths (native window-adjust helper, main-process fallback, Window Management panel).
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e62fdf498d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| x: area.origin.x + inset, | ||
| y: area.origin.y, | ||
| width: max(minWidth, round(area.width - inset)), |
There was a problem hiding this comment.
Respect the Stage Manager strip side
When the Dock is positioned on the left, macOS places Stage Manager's recent-apps strip on the right; this preset always offsets the left edge and extends to the right work-area edge, so in that configuration Window: Maximize (Stage Manager) still covers the strip it is meant to preserve. Detect the strip side (or Dock orientation) and apply the inset to the right edge for that case as well.
Useful? React with 👍 / 👎.
What
Adds a new window management command:
Window: Maximize (Stage Manager).It maximizes the focused window while keeping macOS Stage Manager's staged-windows strip on the left visible:
Why
Raycast's
Window: Maximizeimplicitly changes its sizing depending on whether Stage Manager is enabled. Instead of overloading the existingMaximizebehavior, this adds an explicit, separate command so users can choose either behavior deterministically.How
Window layout geometry lives in three places; all three implement the new preset identically (
fill-stage/system-window-management-fill-stage):src/native/window-adjust.swiftsrc/main/main.tssrc/renderer/src/WindowManagerPanel.tsxPlus:
src/main/commands.ts— root command registration (searchable as "stage", "maximize", …)src/renderer/src/utils/command-helpers.tsx— launcher glyph (thin left strip + maximize rectangle), same glyph used for the panel tileTesting
tsc -p tsconfig.main.jsonclean; renderer typecheck introduces no new errorswindow-adjust.swiftcompiles; binary accepts thefill-stageaction