fix: v0.10.3 no tmux right-click menus; close split panes
build-deb / Deploy to CT 126 (push) Successful in 19s
build-deb / Lint, test, package (push) Successful in 3m9s
build-deb / Notify on failure (push) Skipped

Right-clicking a pane opened tmux's menu, whose Split entries left a stray
pane next to Claude (and whose Kill entries could end it). Unbind the
right-click menus; add --unsplit and a palette entry that closes extra
panes and keeps Claude's. Closes #52

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WHRLCCdXYm41Qx5kNhehaP
This commit is contained in:
2026-10-13 01:48:04 -04:00
co-authored by Claude Opus 5.5
parent 24d71131e8
commit ab7e127f70
6 changed files with 63 additions and 3 deletions
+11
View File
@@ -750,6 +750,16 @@ async function compact(session) {
return undefined;
}
// A stray split (devdesk#52): close every extra pane, keeping Claude's.
async function unsplit(session) {
try {
const result = await sessionAction('unsplit', session);
toast.success(result?.closed ? `Closed ${result.closed} pane${result.closed === 1 ? '' : 's'}` : 'No split panes');
} catch (error) {
toast.error(error.message);
}
}
async function copyLink() {
const url = new URL(window.location.href);
url.search = state.session ? `?arg=${encodeURIComponent(state.session)}` : '';
@@ -801,6 +811,7 @@ function buildCommands() {
add({ id: 'win-shell', group: 'Terminal', icon: '1', label: 'Shell window', kbd: '^b 1', run: () => sendKeys('\x021') });
add({ id: 'scroll', group: 'Terminal', icon: '⇞', label: 'Scroll back (tmux copy mode, q to leave)', kbd: '^b [', keywords: 'history scrollback', run: () => sendKeys('\x02[') });
add({ id: 'detach', group: 'Terminal', icon: '⏏', label: 'Detach (the session keeps running)', kbd: '^b d', run: () => sendKeys('\x02d') });
add({ id: 'unsplit', group: 'Terminal', icon: '▣', label: 'Close split panes (keeps Claude)', keywords: 'pane split remove side by side layout', run: () => unsplit(state.session) });
}
if (state.session) {