Skip to content

Support keyboard window movement in Overview - #41

Merged
qeude merged 1 commit into
mainfrom
t3code/fix-keyboard-window-movement
Aug 26, 2026
Merged

Support keyboard window movement in Overview#41
qeude merged 1 commit into
mainfrom
t3code/fix-keyboard-window-movement

Conversation

@qeude

@qeude qeude commented Aug 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add Up/Down keyboard actions to move selected windows between stacked positions and workspaces.
  • Animate moved windows and preserve selection alignment during Overview updates.
  • Improve workspace parking, focus handling, and fallback rendering when desktop capture is unavailable.
  • Add coverage for Overview movement, projection interpolation, hotkeys, and daemon focus policy.

Testing

  • Not run; automated and desktop verification should be completed before merge.

- Animate moved selections and preserve overview focus
- Park windows safely while the overview is open
@greptile-apps

greptile-apps Bot commented Aug 26, 2026

Copy link
Copy Markdown

Greptile Summary

The PR adds keyboard-driven vertical window movement in Overview, including movement within stacks and between workspaces. It also adds projection animation, capture-unavailable workspace parking, and native-focus handling intended to preserve Overview state during parking.

  • Maps configured move-window Up/Down bindings to new Overview movement actions.
  • Routes keyboard movement through the existing Overview drop/runtime mutation path.
  • Animates moved-window projections and aligns viewport selection after updates.
  • Parks managed windows when desktop capture is unavailable and restores them when Overview closes.
  • Adds tests for movement, interpolation, hotkey mapping, preview fallback, scrolling, and focus policy.

Confidence Score: 5/5

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

The keyboard targets conform to the existing runtime drop-index contract, asynchronous frame submissions reject superseded work, and the fallback parking, focus, and rendering paths remain internally consistent.

Important Files Changed

Filename Overview
Sources/DefiMacOS/OverviewController.swift Adds keyboard movement, moved-window projection animation, selection alignment, and capture-unavailable panel behavior; no actionable defect was established.
Sources/DefiCore/Overview.swift Adds projection interpolation, foreground overlay handling, and expanded workspace projection bounds for animation continuity.
Sources/DefiDaemon/DaemonOverview.swift Integrates Overview parking and restoration with daemon layout application.
Sources/DefiDaemon/DaemonDesktop.swift Parks active-workspace windows while fallback Overview mode is active.
Sources/DefiDaemon/DaemonDesktopSynchronization.swift Avoids closing a parked Overview for native focus changes lacking a newer explicit focus intent.
Sources/DefiMacOS/HotKeyModels.swift Maps configured movement and focus commands to appropriate Overview keyboard actions.
Sources/DefiMacOS/HotKeys.swift Passes the configured command into Overview key-action classification.

Sequence Diagram

sequenceDiagram
  participant K as HotKey Tap
  participant O as OverviewController
  participant D as Daemon
  participant R as DefiRuntime
  participant P as Overview Projection
  K->>O: moveUp / moveDown
  O->>O: Compute stack or workspace drop target
  O->>D: dropHandler(window, source, target)
  D->>R: applyOverviewDrop
  R-->>D: Updated runtime state
  D->>O: Updated Overview snapshot
  O->>P: Interpolate old and new projections
  P-->>O: Animated moved-window presentation
Loading

Reviews (1): Last reviewed commit: "fix(overview): support keyboard window m..." | Re-trigger Greptile

@qeude
qeude merged commit 6ca7eb2 into main Aug 26, 2026
2 checks passed
@qeude
qeude deleted the t3code/fix-keyboard-window-movement branch August 26, 2026 23:41
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