+
= {
none: 0,
"2-way": 2,
"3-way": 3,
+ "3-way-horizontal": 3,
"4-way": 4,
"5-way": 5,
"6-way": 6,
@@ -117,6 +119,7 @@ export const PANE_LAYOUTS: Record = {
none: "",
"2-way": "grid-cols-2 grid-rows-1",
"3-way": "grid-cols-2 grid-rows-2",
+ "3-way-horizontal": "grid-cols-2 grid-rows-2",
"4-way": "grid-cols-2 grid-rows-2",
"5-way": "grid-cols-3 grid-rows-2",
"6-way": "grid-cols-3 grid-rows-2",
diff --git a/src/ui/shell/SplitView.tsx b/src/ui/shell/SplitView.tsx
index 30d614e8..03849ef3 100644
--- a/src/ui/shell/SplitView.tsx
+++ b/src/ui/shell/SplitView.tsx
@@ -19,6 +19,8 @@ function defaultSizes(mode: SplitMode): {
return { rowSizes: [100], rowColSizes: [[50, 50]] };
case "3-way":
return { rowSizes: [50, 50], rowColSizes: [[50, 50], [100]] };
+ case "3-way-horizontal":
+ return { rowSizes: [50, 50], rowColSizes: [[50, 50], [100]] };
case "4-way":
return {
rowSizes: [50, 50],
@@ -444,6 +446,36 @@ export function SplitView({
)}
+ {splitMode === "3-way-horizontal" && (
+
+
+
+ {pane(0)}
+
+
onColDivider(e, 0, 0)}
+ onTouchStart={(e) => onColDividerTouch(e, 0, 0)}
+ />
+
+ {pane(1)}
+
+
+
onRowDivider(e, 0)}
+ onTouchStart={(e) => onRowDividerTouch(e, 0)}
+ />
+
+ {pane(2)}
+
+
+ )}
+
{splitMode === "4-way" && (
diff --git a/src/ui/sidebar/SplitScreenPanel.tsx b/src/ui/sidebar/SplitScreenPanel.tsx
index 115f367c..3c6ce838 100644
--- a/src/ui/sidebar/SplitScreenPanel.tsx
+++ b/src/ui/sidebar/SplitScreenPanel.tsx
@@ -24,6 +24,15 @@ const LAYOUT_PREVIEWS: Record = {