Commit 9639d41
feat: add tmux-like split panes to boo ui
Generalizes boo ui's single-viewport client-side compositor into a
tiling tree of panes. Each pane is an independent connection to a
session daemon (one socket + one local libghostty terminal), so the
daemon and wire protocol are unchanged.
Bindings (prefix C-a):
- C-a | / C-a - split the focused pane side-by-side / stacked,
opening a new session sized to the new pane
- C-a + arrows move focus between panes when more than one exists
(otherwise the arrows browse/resize the sidebar as before)
- C-a o cycle to the next pane
- C-a x close the focused pane (its session keeps running)
Panes are polled together, rendered with clipped per-pane rows and
dividers, and collapse back into their sibling when a session ends.
Closes #67
Co-authored-by: Cursor <cursoragent@cursor.com>1 parent 055a0d4 commit 9639d41
3 files changed
Lines changed: 968 additions & 270 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| |||
175 | 175 | | |
176 | 176 | | |
177 | 177 | | |
178 | | - | |
179 | | - | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
180 | 181 | | |
181 | 182 | | |
182 | 183 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
141 | 147 | | |
142 | 148 | | |
143 | 149 | | |
144 | 150 | | |
145 | 151 | | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
153 | 158 | | |
154 | 159 | | |
155 | 160 | | |
| |||
0 commit comments