You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extend the layout status indicator so it communicates whether a saved layout was recently detected as active in any macOS Space, and make the layout row navigate to that Space when possible.
Proposed behavior
Show a blue status dot when Settle has detected the layout as active in any visited Space during the current Settle session.
Show a gray status dot when the layout is not known to be active in any Space.
Keep the existing row highlight for the layout that is active in the currently visible Space.
When a user clicks the main area of a row with a blue dot, attempt to navigate to the Space where that layout was most recently detected.
Keep all per-layout icon buttons and menus unchanged. Clicking an icon must perform only that icon action and must not trigger row navigation.
If the same layout was detected in multiple Spaces, navigate to the most recently detected one.
Important platform limitation
macOS does not provide a supported public API for enumerating stable Space identifiers or directly switching to an arbitrary Space. Therefore both cross-Space status and navigation must be explicitly treated as best-effort:
Cross-Space state is remembered when Settle restores or recognizes a layout in the visible Space.
The remembered state is updated or removed when that Space is visited again and no longer matches the layout.
The cache must remain session-scoped and start empty after launching Settle to avoid presenting stale state as authoritative.
Navigation should use supported APIs to activate and raise a representative matched window from the target layout, allowing macOS to switch to its Space when system behavior permits it.
Do not use private Space APIs.
If navigation cannot be completed, leave windows untouched and show concise status feedback.
The blue dot therefore means recently detected active in another Space during this session, not a guaranteed real-time system state. This meaning must also be reflected in tooltips and accessibility labels.
Stale and partially closed layouts
Row navigation must remain separate from layout restoration. Consider a layout containing windows A and B that was restored in Space 1, followed by the user moving to Space 2 and closing one or both windows:
If either A or B still exists, clicking the blue row should use a remaining matched window to navigate to Space 1.
After arriving, Settle must revalidate the visible Space. If one saved window is missing, the layout is no longer fully active and its dot must turn gray.
If neither A nor B exists, navigation cannot be completed. Settle must clear the stale blue state and show concise feedback.
Clicking the row must never reopen missing windows or restore the layout. Reopening and repositioning windows remains the responsibility of the existing Restore icon.
Failed or partial navigation must not move, reopen, or otherwise modify windows.
Acceptance criteria
A layout detected in the current Space has a blue dot and the existing active-row highlight.
After changing Spaces, the previously detected layout keeps a blue dot without keeping the current-Space highlight.
A layout never detected during the current session has a gray dot.
Returning to a remembered Space revalidates its layout state and clears stale state when it no longer matches.
Clicking the main row area of a blue layout attempts to navigate to its most recently detected Space.
If part of a remembered layout remains open, row navigation uses a remaining matched window and then revalidates the layout as inactive when windows are missing.
If no matched window remains, row navigation clears the stale blue state and reports that the layout is no longer active.
Row navigation never reopens missing windows; only the Restore action may restore them.
Clicking preview, restore, overwrite, menu, disclosure, or reorder controls does not trigger row navigation.
Failed navigation is non-destructive and produces user-visible feedback.
The remembered cross-Space state is cleared when Settle relaunches.
Layout deletion or overwrite invalidates any incompatible remembered state.
New user-visible text is localized in English, Spanish, Catalan, French, and German.
Automated tests cover state transitions, stale-state invalidation, multiple detected Spaces, and row-versus-icon click behavior where practical.
Summary
Extend the layout status indicator so it communicates whether a saved layout was recently detected as active in any macOS Space, and make the layout row navigate to that Space when possible.
Proposed behavior
Important platform limitation
macOS does not provide a supported public API for enumerating stable Space identifiers or directly switching to an arbitrary Space. Therefore both cross-Space status and navigation must be explicitly treated as best-effort:
The blue dot therefore means recently detected active in another Space during this session, not a guaranteed real-time system state. This meaning must also be reflected in tooltips and accessibility labels.
Stale and partially closed layouts
Row navigation must remain separate from layout restoration. Consider a layout containing windows A and B that was restored in Space 1, followed by the user moving to Space 2 and closing one or both windows:
Acceptance criteria