Skip to content

Move active surface between existing panes - #8735

Closed
kyler-jh67 wants to merge 1 commit into
manaflow-ai:mainfrom
kyler-jh67:feat/move-surface-between-panes
Closed

kyler-jh67 wants to merge 1 commit into
manaflow-ai:mainfrom
kyler-jh67:feat/move-surface-between-panes

Conversation

@kyler-jh67

@kyler-jh67 kyler-jh67 commented Jul 23, 2026 •

Copy link
Copy Markdown

Summary

  • Add configurable commands for moving the active surface to the previous/next existing pane or to the pane on the left, right, above, or below.
  • Route keyboard shortcuts, the command palette, and View-menu commands through TabManager into the existing Workspace.moveSurface ownership-transfer path.
  • Preserve the surface instance and focus, insert after the destination pane selected tab, wrap previous/next traversal, and let Bonsplit collapse an emptied source pane.
  • Reuse the same directional helper for existing tab-context-menu moves and clarify the old in-pane actions as “Reorder Surface Left/Right”.

All six new shortcut actions intentionally start unbound: the suggested Control-Command-arrow chords already belong to pane-focus actions. They remain discoverable and configurable in Settings and the command palette.

Scope

This is the focused existing-pane interaction slice (PR 1B) from the movement proposal. It does not create panes or consolidate cross-workspace/window transfer.

Verification

  • swift build --package-path Packages/macOS/CmuxSettings
  • scripts/lint-pbxproj-test-wiring.sh (568 test files)
  • scripts/check-pbxproj.sh
  • JSON validation for Resources/Localizable.xcstrings
  • git diff --check
  • Ad-hoc swiftc -parse over every changed Swift source and the focused test file
  • ./scripts/test-unit.sh --filter MoveSurfaceBetweenPanesTests — blocked before test execution because this machine has Command Line Tools only; xcodebuild requires a full Xcode installation.
  • swift test --package-path Packages/macOS/CmuxSettings — blocked because the Command Line Tools toolchain does not provide the Testing module used by the package tests.
  • ./scripts/reload.sh --tag move-pane — blocked because Zig is not installed; full Xcode is also unavailable for the subsequent app build.

Test coverage added

  • terminal and browser object identity/focus preservation
  • insertion after the destination selected tab
  • empty-source-pane collapse
  • left/right/up/down movement and previous/next wrapping
  • no-op behavior for missing destinations, canvas layout, and remote-tmux mirrors
  • settings/default/command-palette metadata alignment

View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.


Summary by cubic

Add commands to move the active surface between existing panes (previous/next or left/right/up/down) without creating new panes. Actions work from shortcuts, the Command Palette, and the View menu, keeping focus and surface identity, inserting after the destination’s selected tab, wrapping prev/next, and collapsing empty source panes.

  • New Features

    • Six new unbound actions: move to previous/next pane; move to pane left/right/up/down.
    • Routed through TabManager into the existing Workspace.moveSurface path for consistent transfer and focus restore.
    • Command Palette commands and localized labels added; View menu entries added; beep on no destination; clears split zoom; no-ops in canvas layout and remote-tmux mirrors.
  • Migration

    • New pane-move shortcuts are unbound by default; bind them in Settings.
    • In-pane actions are now labeled “Reorder Surface Left/Right”.

Written for commit 640a88e. Summary will update on new commits.

Review in cubic

Closes #8745

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: e296dea5-990b-4fe0-9851-64ac9ebc2512

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@kyler-jh67

Copy link
Copy Markdown
Author

Superseded by #8751, submitted from the preferred contributor account.

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.

Move the active surface between existing panes with configurable shortcuts

2 participants