Skip to content

fix(clipboard): prefer tmux load-buffer and pbcopy writes#366

Merged
lavaman131 merged 1 commit intomainfrom
lavaman131/hotfix/copy-tmux
Mar 5, 2026
Merged

fix(clipboard): prefer tmux load-buffer and pbcopy writes#366
lavaman131 merged 1 commit intomainfrom
lavaman131/hotfix/copy-tmux

Conversation

@lavaman131
Copy link
Collaborator

@lavaman131 lavaman131 commented Mar 5, 2026

Summary: This PR improves clipboard reliability in terminal workflows by preferring tmux-native and macOS-native copy commands while still emitting OSC 52, reducing failures in tmux sessions and avoiding AppleScript escaping edge cases on macOS.

Changes:

  • Prefer tmux load-buffer -w - when running inside tmux instead of relying on tmux DCS passthrough wrapping
  • Prefer pbcopy over osascript on macOS for native clipboard writes
  • Simplify OSC 52 emission to direct sequence
  • Extend clipboard tests to cover tmux copy behavior, pbcopy precedence, and exact OSC 52 output assertions

Technical Context:
The previous implementation wrapped OSC 52 in tmux DCS passthrough sequences, which required allow-passthrough setting. The new approach uses tmux native clipboard commands that work out of the box. On macOS, pbcopy is simpler than osascript and avoids string escaping edge cases.

Use tmux's native load-buffer clipboard path inside tmux sessions and prefer pbcopy on macOS for reliable multiline copy behavior. Update clipboard tests to verify tmux/native command selection and exact OSC52 output.

Assistant-model: openai/gpt-5.3-codex
@claude
Copy link

claude bot commented Mar 5, 2026

Code Review: fix(clipboard): prefer tmux load-buffer and pbcopy writes

Summary: This PR improves clipboard reliability by prioritizing native clipboard commands in tmux sessions and on macOS. The changes are well-reasoned and address real-world clipboard failures.

Strengths: Clean, well-documented implementation. Security improvement by using pbcopy with stdin instead of osascript escaping. Good test coverage for the new behaviors.

Concerns: (1) tmux -w flag requires tmux 3.2+ (April 2021) - consider fallback or documentation. (2) osascript escaping is incomplete for newlines (low priority since pbcopy is now preferred). (3) Consider edge case tests for TMUX env set without tmux command.

Verdict: LGTM with minor suggestions. The core changes are solid improvements.

@lavaman131 lavaman131 merged commit fd59a1a into main Mar 5, 2026
3 checks passed
@lavaman131 lavaman131 deleted the lavaman131/hotfix/copy-tmux branch March 5, 2026 21:17
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.

1 participant