Skip to content

feat: support clipboard writes and scrollback compression - #108

Merged
elias8 merged 5 commits into
mainfrom
feat/clipboard-compression
Jul 20, 2026
Merged

feat: support clipboard writes and scrollback compression#108
elias8 merged 5 commits into
mainfrom
feat/clipboard-compression

Conversation

@elias8

@elias8 elias8 commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Add clipboard write handling and idle scrollback compression across libghostty and flterm.

  • Normalize OSC 52 and iTerm2 Copy writes into atomic, binary-safe callbacks while keeping clipboard reads disabled and leaving policy and platform access to the embedder.
  • Expose incremental compression through libghostty and let flterm schedule bounded idle work while a viewport is attached, restarting after terminal or viewport activity and stopping on unsupported targets.

Replaces #105

elias8 added 5 commits July 15, 2026 15:30
Forward terminal clipboard requests to an application callback so embedders retain control over platform and security policy.
Schedule bounded compression after terminal and viewport activity settles to reduce scrollback memory without competing with rendering.
@elias8 elias8 added pkg:libghostty Core Dart bindings package pkg:flterm Flutter terminal widget package feat New feature or request labels Jul 20, 2026
@elias8
elias8 force-pushed the feat/clipboard-compression branch 5 times, most recently from 4b2b09f to 9d7043d Compare July 20, 2026 15:06
@elias8
elias8 merged commit bf26062 into main Jul 20, 2026
17 checks passed
@elias8
elias8 deleted the feat/clipboard-compression branch July 20, 2026 15:23
Kallz02 pushed a commit to sshotty/libghostty that referenced this pull request Jul 21, 2026
…lias8#108)

Merges elias8/libghostty@bf26062 (clipboard writes + scrollback compression)
into the sshotty fork while preserving our custom additions:

- searchHits / Searcher / SearchHighlightPainter (find-on-page)
- pasteImage() (kitty graphics writer API)
- fillAvailableSpace / gridSizeFill (full-pane terminal sizing)
- cellPixelSize getter (PTY resize forwarding)
- DPR-only resize propagation to backend
- scroll controller positions.length guards

Upstream brings:
- Terminal.onClipboardWrite / CompressionScheduler
- terminal.compress() / terminal.compressionActivity
- handleViewportChanged binding for idle compression
- ghostty source version bump

Both feature sets are non-overlapping.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat New feature or request pkg:flterm Flutter terminal widget package pkg:libghostty Core Dart bindings package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant