Adopt dynamic cross-monitor workspace navigation - #43
Conversation
- Add persistent dynamic workspace topology and monitor affinity - Update workspace commands, bindings, overview labels, and SketchyBar state - Improve vertical transition safety and reserved-area handling
|
| Filename | Overview |
|---|---|
| Sources/DefiRuntime/RuntimeState.swift | Introduces persisted dynamic workspace topology, monitor affinity restoration, and the ordinary/named/trailing lifecycle. |
| Sources/DefiRuntime/CommandReducer.swift | Implements positional and named workspace navigation, cross-monitor moves, workspace reordering, and follow/send semantics. |
| Sources/DefiDaemon/WorkspaceTopologyStore.swift | Adds session-scoped atomic serialization and restoration of workspace topology. |
| Sources/DefiDaemon/DaemonDesktopSynchronization.swift | Reconciles persisted topology and dynamic workspace state with live displays, windows, and accepted native focus. |
| Sources/DefiDaemon/DaemonAnimation.swift | Adds all-or-nothing safety gating and immediate fallback for vertical workspace transitions. |
| Sources/DefiMacOS/AXFrameCoordinatorAnimation.swift | Reworks asynchronous animation scheduling, generation invalidation, lane writes, finalization, and timeout handling. |
| Sources/DefiConfig/Config.swift | Updates workspace defaults and parsing for optional named workspaces, monitor affinity, commands, and Overview corner radius. |
| Sources/DefiIPC/IPC.swift | Expands workspace status serialization to represent dynamic identity, position, ownership, kind, and application state. |
| contrib/sketchybar/plugins/defi_workspace_reconcile.sh | Reconciles SketchyBar items against the new dynamic per-display workspace state. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
C[CLI / hotkey / native focus] --> D[DefiDaemon command handling]
D --> R[DefiRuntime reducer]
R --> W[Dynamic workspace lifecycle]
W --> T[Globally unique workspace topology]
T --> P[Session topology persistence]
T --> M[Monitor affinity reconciliation]
R --> A{Vertical transition safe?}
A -->|Yes| V[Position-only animated frame commits]
A -->|No| I[Immediate layout application]
V --> X[macOS Accessibility frames]
I --> X
T --> S[Status and SketchyBar state]
Reviews (1): Last reviewed commit: "feat(workspaces): adopt dynamic cross-mo..." | Re-trigger Greptile
Summary
Testing
swift buildswift test./script/build_and_run.sh --verify./script/test_desktop.sh