Skip to content

testing: text selection, copy/paste, and file drag-drop #46

@arcaven

Description

@arcaven

Changes to test

Commit ae8cfff on develop — implements #40.

1. Native text selection in conversation (Shift+mouse)

What changed: Holding Shift while clicking/dragging in the conversation area releases mouse capture so the terminal handles text selection natively. Mouse capture re-enables on the next keypress.

Test objectives:

  • Shift+click-drag selects text in the conversation area
  • Selected text can be copied via terminal copy (Cmd+C on macOS)
  • After copying, pressing any key re-enables mouse capture (scroll wheel works again)
  • Normal mouse wheel scroll still works when not in selection mode
  • Test in: iTerm2, WezTerm, Kitty (if available)
  • Test inside tmux session (Shift+mouse should bypass tmux too)

2. Input text selection (Shift+Arrow)

What changed: Shift+Left/Right/Home/End creates text selections in the input box. Ctrl+C copies selection to clipboard (via OSC 52). Ctrl+X cuts. Typing or backspace replaces selection.

Test objectives:

  • Shift+Right selects characters forward
  • Shift+Left selects characters backward
  • Shift+Home selects from cursor to start
  • Shift+End selects from cursor to end
  • Ctrl+C with selection copies to clipboard (paste elsewhere to verify)
  • Ctrl+C without selection still quits
  • Ctrl+X with selection cuts (text removed, available in clipboard)
  • Ctrl+X without selection still toggles tool expand
  • Typing with active selection replaces it
  • Backspace with active selection deletes it
  • Arrow keys without Shift clear the selection
  • Status bar shows "Copied to clipboard" / "Cut to clipboard"

3. Paste and file drag-drop

What changed: Bracketed paste now preserves newlines. Dragging a file onto the terminal inserts it as @/path/to/file for Claude Code file reference.

Test objectives:

  • Paste multiline text — newlines preserved in input
  • Paste into existing selection — replaces selection
  • Drag-drop a file onto the terminal — inserts as @-mention
  • Drag-drop a non-existent path — inserted as plain text (no @ prefix)

OSC 52 clipboard compatibility

  • iTerm2: clipboard write works
  • WezTerm: clipboard write works
  • Kitty: clipboard write works (may need clipboard_control write-clipboard in kitty.conf)
  • Inside tmux: clipboard write works (needs set -g set-clipboard on in tmux.conf)

Feedback wanted

  • Does Ctrl+C dual behavior (copy with selection, quit without) feel natural?
  • Is OSC 52 clipboard working in your terminal? Some terminals require explicit opt-in.
  • Does the @-mention insertion for file drop match Claude Code's behavior?

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