Skip to content

Wrap OSC 777 in tmux DCS passthrough when running inside tmux#2

Open
yonilerner wants to merge 1 commit into
kim0:mainfrom
yonilerner:tmux-passthrough
Open

Wrap OSC 777 in tmux DCS passthrough when running inside tmux#2
yonilerner wants to merge 1 commit into
kim0:mainfrom
yonilerner:tmux-passthrough

Conversation

@yonilerner

Copy link
Copy Markdown

When pi-notify-pp runs inside tmux, the OSC 777 escape sequence written to stdout is consumed by tmux instead of being forwarded to the host terminal (Ghostty, iTerm2, etc.), so no notification ever fires.

This patch detects process.env.TMUX and wraps the sequence in tmux's DCS passthrough format (ESC P tmux ; ESC <seq> ESC \\ with embedded ESCs doubled) so the host terminal receives the OSC normally.

Requires set -g allow-passthrough on in tmux.conf — which is the default since tmux 3.3a. Outside of tmux, behavior is unchanged.

When the extension runs in a pi session inside tmux, the OSC 777 escape
sequence written to stdout is consumed by tmux instead of being forwarded
to the host terminal (Ghostty, iTerm2, etc.), so no notification ever fires.

Detect TMUX via process.env.TMUX and wrap the sequence in tmux's DCS
passthrough format (ESC P tmux ; ESC <seq> ESC \\ with embedded ESCs
doubled). Requires `set -g allow-passthrough on` in tmux.conf, which is
on by default in tmux >= 3.3a.
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