Skip to content

Commit 98ceb5d

Browse files
authored
Merge pull request #66 from aakhter/feat/tab-reorder-shortcuts
feat: add Ctrl+Shift+{/} to reorder session tabs
2 parents 34fb5e4 + 85da3bb commit 98ceb5d

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

src/web/public/app.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,8 @@ class CodemanApp {
639639
{ key: '=', altKey: '+', ctrl: true, action: () => this.increaseFontSize() },
640640
{ key: '-', ctrl: true, action: () => this.decreaseFontSize() },
641641
{ key: 'V', ctrl: true, shift: true, action: () => VoiceInput.toggle() },
642+
{ key: '{', ctrl: true, shift: true, action: () => this.moveActiveTabLeft() },
643+
{ key: '}', ctrl: true, shift: true, action: () => this.moveActiveTabRight() },
642644
];
643645

644646
// Use capture to handle before terminal
@@ -2106,6 +2108,24 @@ class CodemanApp {
21062108
});
21072109
}
21082110

2111+
moveActiveTabLeft() {
2112+
if (!this.activeSessionId) return;
2113+
const idx = this.sessionOrder.indexOf(this.activeSessionId);
2114+
if (idx <= 0) return;
2115+
[this.sessionOrder[idx - 1], this.sessionOrder[idx]] = [this.sessionOrder[idx], this.sessionOrder[idx - 1]];
2116+
this.saveSessionOrder();
2117+
this._fullRenderSessionTabs();
2118+
}
2119+
2120+
moveActiveTabRight() {
2121+
if (!this.activeSessionId) return;
2122+
const idx = this.sessionOrder.indexOf(this.activeSessionId);
2123+
if (idx === -1 || idx >= this.sessionOrder.length - 1) return;
2124+
[this.sessionOrder[idx], this.sessionOrder[idx + 1]] = [this.sessionOrder[idx + 1], this.sessionOrder[idx]];
2125+
this.saveSessionOrder();
2126+
this._fullRenderSessionTabs();
2127+
}
2128+
21092129
// ═══════════════════════════════════════════════════════════════
21102130
// Session Lifecycle — select, close, navigate
21112131
// ═══════════════════════════════════════════════════════════════

0 commit comments

Comments
 (0)