Skip to content

feat: add interactive pane transfer (drag-detach between workspaces) #3434

Description

@yuloop

Summary

Enable users to detach a pane from one workspace and attach it to another via mouse interaction, plus a corresponding set of WebSocket API methods for programmatic pane movement.

Proposed Features

Mouse Interaction

  • Drag a pane title bar to detach it from its current workspace
  • Drop target indicators show available workspaces
  • Visual feedback during drag operation

WebSocket API Methods

  • pane.preview_transfer — show transfer preview without committing
  • pane.commit_transfer — execute the pane transfer
  • pane.detach_target_picker — enumerate available detach targets
  • pane.make_transfer_detached — detach a pane for reattachment

Motivation

  • Currently moving a pane between workspaces requires closing and re-opening the pane
  • For users with many workspaces, this disrupts workflow and loses pane state
  • Mouse-based drag-and-drop is a natural interaction model that users expect from terminal multiplexers

Notes

This is a feature request only — no PR attached. The implementation involves mouse handling in src/app/input/mouse.rs, runtime mutations in src/app/runtime_mutations.rs, and new API schema entries. Open to discussion on whether this overlaps with or supersedes any in-progress work (e.g. #3411 transfer handoff).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions