detached 2ef39d4

refactor: enhance pane split and stack actions with explicit action identifiers

commit
2ef39d4ef7023b90aaaa5368e06b39033e3b8a8f
author
bamen · · 2025-09-26 05:06 UTC
parent
103eec0
signature
unsigned
1 file · +5 -5
M gui/src/injected/modules/workspace.ts +5 -5
@@ -309,7 +309,7 @@ class WorkspaceController implements WorkspaceRuntime {
309309 direction: "right",
310310 config: this.config,
311311 });
312- this.bridge({ event: "pane-split", direction: "right" });
312+ this.bridge({ event: "pane-split", direction: "right", action: "split-right" });
313313 this.showToast("Split pane to the right");
314314 this.exitPaneMode("split-right");
315315 break;
@@ -318,7 +318,7 @@ class WorkspaceController implements WorkspaceRuntime {
318318 direction: "left",
319319 config: this.config,
320320 });
321- this.bridge({ event: "pane-split", direction: "left" });
321+ this.bridge({ event: "pane-split", direction: "left", action: "split-left" });
322322 this.showToast("Split pane to the left");
323323 this.exitPaneMode("split-left");
324324 break;
@@ -327,7 +327,7 @@ class WorkspaceController implements WorkspaceRuntime {
327327 direction: "up",
328328 config: this.config,
329329 });
330- this.bridge({ event: "pane-split", direction: "up" });
330+ this.bridge({ event: "pane-split", direction: "up", action: "split-up" });
331331 this.showToast("Split pane upwards");
332332 this.exitPaneMode("split-up");
333333 break;
@@ -336,7 +336,7 @@ class WorkspaceController implements WorkspaceRuntime {
336336 direction: "down",
337337 config: this.config,
338338 });
339- this.bridge({ event: "pane-split", direction: "down" });
339+ this.bridge({ event: "pane-split", direction: "down", action: "split-down" });
340340 this.showToast("Split pane downwards");
341341 this.exitPaneMode("split-down");
342342 break;
@@ -344,7 +344,7 @@ class WorkspaceController implements WorkspaceRuntime {
344344 this.emitWorkspaceEvent("pane-stack", {
345345 config: this.config,
346346 });
347- this.bridge({ event: "pane-stack" });
347+ this.bridge({ event: "pane-stack", action: "stack-pane" });
348348 this.showToast("Stacked pane");
349349 this.exitPaneMode("stack-pane");
350350 break;
@@ -309,7 +309,7 @@ class WorkspaceController implements WorkspaceRuntime {
309 direction: "right",309 direction: "right",
310 config: this.config,310 config: this.config,
311 });311 });
312- this.bridge({ event: "pane-split", direction: "right" });312+ this.bridge({ event: "pane-split", direction: "right", action: "split-right" });
313 this.showToast("Split pane to the right");313 this.showToast("Split pane to the right");
314 this.exitPaneMode("split-right");314 this.exitPaneMode("split-right");
315 break;315 break;
@@ -318,7 +318,7 @@ class WorkspaceController implements WorkspaceRuntime {
318 direction: "left",318 direction: "left",
319 config: this.config,319 config: this.config,
320 });320 });
321- this.bridge({ event: "pane-split", direction: "left" });321+ this.bridge({ event: "pane-split", direction: "left", action: "split-left" });
322 this.showToast("Split pane to the left");322 this.showToast("Split pane to the left");
323 this.exitPaneMode("split-left");323 this.exitPaneMode("split-left");
324 break;324 break;
@@ -327,7 +327,7 @@ class WorkspaceController implements WorkspaceRuntime {
327 direction: "up",327 direction: "up",
328 config: this.config,328 config: this.config,
329 });329 });
330- this.bridge({ event: "pane-split", direction: "up" });330+ this.bridge({ event: "pane-split", direction: "up", action: "split-up" });
331 this.showToast("Split pane upwards");331 this.showToast("Split pane upwards");
332 this.exitPaneMode("split-up");332 this.exitPaneMode("split-up");
333 break;333 break;
@@ -336,7 +336,7 @@ class WorkspaceController implements WorkspaceRuntime {
336 direction: "down",336 direction: "down",
337 config: this.config,337 config: this.config,
338 });338 });
339- this.bridge({ event: "pane-split", direction: "down" });339+ this.bridge({ event: "pane-split", direction: "down", action: "split-down" });
340 this.showToast("Split pane downwards");340 this.showToast("Split pane downwards");
341 this.exitPaneMode("split-down");341 this.exitPaneMode("split-down");
342 break;342 break;
@@ -344,7 +344,7 @@ class WorkspaceController implements WorkspaceRuntime {
344 this.emitWorkspaceEvent("pane-stack", {344 this.emitWorkspaceEvent("pane-stack", {
345 config: this.config,345 config: this.config,
346 });346 });
347- this.bridge({ event: "pane-stack" });347+ this.bridge({ event: "pane-stack", action: "stack-pane" });
348 this.showToast("Stacked pane");348 this.showToast("Stacked pane");
349 this.exitPaneMode("stack-pane");349 this.exitPaneMode("stack-pane");
350 break;350 break;

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close