Skip to content

Adopt dynamic cross-monitor workspace navigation - #43

Merged
qeude merged 1 commit into
mainfrom
t3code/compare-workspace-navigation
Aug 28, 2026
Merged

Adopt dynamic cross-monitor workspace navigation#43
qeude merged 1 commit into
mainfrom
t3code/compare-workspace-navigation

Conversation

@qeude

@qeude qeude commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replace fixed per-monitor workspace copies with globally unique, dynamic workspace stacks.
  • Add trailing workspace lifecycle, named workspace persistence, monitor affinity, and cross-monitor navigation.
  • Add workspace-focused commands, monitor movement, updated defaults, configuration, status output, and SketchyBar integration.
  • Improve vertical workspace transitions and Overview labels/corner-radius configuration.
  • Expand runtime, daemon, configuration, and platform test coverage.

Testing

  • Not run in this change request.
  • Recommended: swift build
  • Recommended: swift test
  • Recommended: ./script/build_and_run.sh --verify
  • Recommended for desktop behavior: ./script/test_desktop.sh

- 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
@greptile-apps

greptile-apps Bot commented Aug 28, 2026

Copy link
Copy Markdown

Greptile Summary

This PR replaces fixed per-monitor workspace copies with globally unique dynamic workspace stacks and adds persistence, monitor affinity, cross-monitor navigation, and vertical transitions.

  • Adds named, ordinary, and trailing workspace lifecycle and positional targeting.
  • Persists workspace topology within the current macOS login session and reconciles display disconnection and reconnection.
  • Adds commands for workspace navigation, movement, reordering, and monitor targeting.
  • Updates status output, configuration defaults, Overview presentation, SketchyBar integration, documentation, and tests.

Confidence Score: 5/5

The PR appears safe to merge based on the reviewed changes, with no concrete blocking or independently actionable non-blocking defect established.

The dynamic workspace lifecycle preserves active empty ordinary workspaces, maintains one trailing workspace, guards stale native-focus reactivation, and distinguishes explicit affinity changes from automatic display migration; transition safety checks also fall back to immediate layout when animation cannot proceed coherently.

Important Files Changed

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]
Loading

Reviews (1): Last reviewed commit: "feat(workspaces): adopt dynamic cross-mo..." | Re-trigger Greptile

@qeude
qeude merged commit eba7ded into main Aug 28, 2026
2 checks passed
@qeude
qeude deleted the t3code/compare-workspace-navigation branch August 28, 2026 08:50
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