Skip to content

Add log selection actions and asynchronous clipboard copying - #89

Merged
thunderballfists merged 1 commit into
mainfrom
feat/selection-clipboard
Sep 30, 2026
Merged

thunderballfists merged 1 commit into
mainfrom
feat/selection-clipboard

Conversation

@thunderballfists

Copy link
Copy Markdown
Owner

Logs can be selected, but applications still have to poll for drag completion and supply their own native clipboard fallback. Add opt-in on-selection-ended actions with log/text/coordinate payloads, plus async window.copy(text) and exported copy_to_clipboard(app, text).

Native clipboard executables receive Unicode text on stdin with fixed argv, bounded waits, and cancellation cleanup. Textual's OSC 52 transport supplements native copying; the return value reports the native backend or osc52, without claiming terminal delivery. The showcase opts into copying completed selections and reports the transport.

Completion events ignore redraws, retained selections on scrollbar/button navigation, and preserve repeated selections including cross-widget drags. Normal Textual hosts still explicitly forward custom messages. Documentation and changelog describe the API.

Validation: 389 headless tests passed, 6 visual checks passed, Pyflakes and git diff --check passed, Poetry metadata/lock check and wheel/sdist builds passed. An independent review found no remaining Important findings. Platform subprocess tests are mocked; no real clipboard was touched.

Closes #78.

@thunderballfists
thunderballfists merged commit f8e472c into main Sep 30, 2026
10 checks passed
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.

Log selection-ended events and clipboard support

1 participant