You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
add cmux terminal support for overlay launcher (umputun#35)
* add cmux terminal support for overlay launcher
cmux (https://cmux.com) is a native macOS terminal for AI coding agents
built on libghostty. It sets TERM_PROGRAM=ghostty, which causes the
existing Ghostty AppleScript path to fail. Detect cmux first via
$CMUX_SURFACE_ID and use its CLI API (new-split + send --surface)
instead of AppleScript.
* replace sleep with wait-for synchronization for shell readiness
Instead of a fixed sleep 0.5 before sending commands to the new split,
use cmux wait-for as a sync primitive: retry a compound signal-and-exec
command until the shell processes it. Adapts to any shell startup time.
* simplify: single send instead of retry loop
The pty input buffer holds text until the shell reads it, so a single
cmux send immediately after new-split is sufficient. No retry loop,
no wait-for synchronization, no visual noise in the split pane.
Copy file name to clipboardExpand all lines: .claude-plugin/skills/revdiff/SKILL.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: revdiff
3
-
description: Review diffs, files, and documents with inline annotations in a TUI overlay, or answer questions about revdiff usage, configuration, themes, and keybindings. Opens revdiff in tmux/kitty/wezterm/ghostty/iterm2/emacs-vterm, captures annotations, and addresses them. Activates on "revdiff", "review diff", "annotate diff", "git review with revdiff", "interactive diff review", "revdiff all files", "review all files", "browse all files", "revdiff config", "revdiff themes", "revdiff keybindings", "how to configure revdiff", "what themes does revdiff have".
3
+
description: Review diffs, files, and documents with inline annotations in a TUI overlay, or answer questions about revdiff usage, configuration, themes, and keybindings. Opens revdiff in tmux/kitty/wezterm/cmux/ghostty/iterm2/emacs-vterm, captures annotations, and addresses them. Activates on "revdiff", "review diff", "annotate diff", "git review with revdiff", "interactive diff review", "revdiff all files", "review all files", "browse all files", "revdiff config", "revdiff themes", "revdiff keybindings", "how to configure revdiff", "what themes does revdiff have".
4
4
argument-hint: 'optional: git ref(s), "all files", or file path'
|**iTerm2**|`osascript` split pane (macOS only) |`$ITERM_SESSION_ID` env var |
64
65
|**Emacs vterm**| New frame via `emacsclient`|`$INSIDE_EMACS` env var |
65
66
66
-
Priority: tmux → kitty → wezterm → ghostty → iTerm2 → Emacs vterm (first detected wins). If none are available, the plugin exits with an error.
67
+
Priority: tmux → kitty → wezterm → cmux → ghostty → iTerm2 → Emacs vterm (first detected wins). If none are available, the plugin exits with an error.
68
+
69
+
> **Note:** cmux is detected before ghostty because cmux also sets `$TERM_PROGRAM=ghostty`. The cmux block uses the cmux CLI (`new-split` + `send --surface`) instead of Ghostty's AppleScript API.
67
70
68
71
> **Note:** iTerm2 uses a split pane (vertical or horizontal, auto-detected from terminal dimensions) rather than a full-screen overlay. The iTerm2 AppleScript API does not expose a zoom command, so the split view shares screen space with the invoking session.
<tr><td><strong>Emacs vterm</strong></td><td>New frame via <code>emacsclient</code></td><td><code>$INSIDE_EMACS</code></td></tr>
358
359
</tbody>
359
360
</table>
360
-
<p>Priority: tmux → kitty → wezterm → ghostty → iTerm2 → Emacs vterm (first detected wins). iTerm2 uses a split pane rather than a full-screen overlay.</p>
361
+
<p>Priority: tmux → kitty → wezterm → cmux → ghostty → iTerm2 → Emacs vterm (first detected wins). cmux is checked before ghostty because it also sets <code>$TERM_PROGRAM=ghostty</code>. iTerm2 uses a split pane rather than a full-screen overlay.</p>
0 commit comments