Panes, Tabs & Workspaces
bohay is mouse-native: everything here works by click and drag, and every
action also has a key behind the Ctrl+Space prefix.
Nothing is modal, so what you type always goes to the focused pane.
A pane is a real terminal. Inside a tab you can split it as many ways as you like, and bohay tiles them automatically.
| Do this | Mouse | Key |
|---|---|---|
| Split side by side | right-click a pane → Split | Ctrl+Space v |
| Split top / bottom | right-click a pane → Split down | Ctrl+Space s |
| Focus a pane | click it | arrows or hjkl |
| Zoom (fullscreen) a pane | n/a | Ctrl+Space z |
| Close a pane | the × on its title, or right-click → Close | Ctrl+Space x |
Each split pane shows a title bar with a status dot and its working directory. The focused pane’s frame is brighter.
Resizing
Section titled “Resizing”Three ways, whichever fits your hands:
- Drag a divider. Hover the border between two panes (it brightens) and drag.
- Ctrl+drag anywhere inside a pane to nudge its edges. (
Ctrl+click on a URL or a file path opens it instead, see Opening links and files.) - Keyboard resize mode:
Ctrl+Space r, then the arrow keys grow/shrink the focused pane.EscorEnterleaves the mode.
Each workspace has a strip of tabs at the top. A tab holds one pane layout (or a
special dashboard, such as the ⎇ git tab or the ◇ orch board).
| Do this | Mouse | Key |
|---|---|---|
| New tab | the + on the tab bar | Ctrl+Space c |
| Next / previous tab | click a tab | Ctrl+Space n / p / ⇥ |
| Close a tab | the × on the tab | Ctrl+Space x (on a dashboard) |
| Rename a tab | right-click the tab, type a name, ⏎ | n/a |
A renamed tab shows your label instead of its number (empty reverts to the
number). The ⎇ git and ◇ orch tabs keep their fixed labels.
Workspaces
Section titled “Workspaces”A workspace is one project folder, fixed at its cwd (see
Core Concepts). They
live in the sidebar’s top list.
- Open one: the
+button above the list, orCtrl+Space N, opens a folder picker. Browse with the arrows / wheel,⏎to open the highlighted folder,nto create-and-open a new folder, orwto open a repo as a new worktree. Runningbohayinside a folder also adds it automatically. - Switch: click a row, or
Ctrl+Space w/Wto cycle. - Jump to its git tab: click the branch name next to a workspace.
Right-click a workspace
Section titled “Right-click a workspace”Right-click any workspace row for its menu:
- Close the workspace
- Rename its label (this changes the sidebar name only, never the folder on disk)
- New Git Worktree / Open Worktree (for git repos)
- Open Git Tab · Open Task Board · Open Mission Control
The sidebar
Section titled “The sidebar”The sidebar shows your workspaces and your live agents. Collapse it to give the panes the full width:
- Click the
«chevron in the sidebar header (orCtrl+Space b). - When hidden, a
»appears at the tab bar’s left edge to bring it back.
Two sidebars and docks
Section titled “Two sidebars and docks”The sidebar’s sections are docks, relocatable panels. The built-ins are Workspaces and Agents, and bohay has two sidebars (left and right), so you can split reference content from live content across both edges. Modules can add their own docks too (see Writing a Module).
Arrange them in Settings → Layout, under the ── Docks ── divider:
- Each side has a visible toggle and a width.
- Every dock has
[Left] [Right] [Off]buttons. Click to put it on the left sidebar, the right sidebar, or hide it. The current placement is highlighted. - Toggle the right sidebar any time with
Ctrl+Space B(and the left withCtrl+Space b).
For example, move Agents to the right so your agent statuses sit on one edge and your project list on the other. If you hide the left sidebar entirely, the Menu button moves to the right sidebar so Settings is always reachable.
Selecting text
Section titled “Selecting text”Drag across any pane to select, and releasing auto-copies to your clipboard. Full details, plus scrollback, are in Scrollback & Copy.
Opening links and files
Section titled “Opening links and files”Agents print references all day: the PR they opened, the doc they read, the file they just changed, the test that failed at line 42.
Hold Ctrl and whatever is under your cursor underlines. Ctrl+click
follows it. If you would rather not hold a modifier, right-click and pick
Open Link or Open File.
| Under the cursor | What a Ctrl+click does |
|---|---|
https://bohay.dev/docs | opens in your browser |
bohay.dev/docs | same, with https:// filled in |
localhost:3000 | opens your dev server, over http |
src/main.rs | opens in a bohay tab, like clicking it in FILES |
src/main.rs:42 | opens in a tab, scrolled to line 42 |
A file path opens in bohay, not in some other app. It goes through exactly the same path as clicking the file in the FILES tree, so it respects your Settings → General → Open files with choice: the built-in read-only viewer by default, or your terminal editor if you set one.
A path only underlines if the file is really there. Paths are resolved against
that pane’s working directory, so src/main.rs means what it means to the shell
you are looking at. Text that merely looks like a path stays inert, and so do
directories. That means a link you can see is always a link that works.
Compiler and test output usually prints file:line, and that whole reference is
one link. The line number is honoured by the built-in viewer. A terminal editor
opens the file at the top instead, since the flag for jumping to a line is
different for every editor.
You do not need the https://. A bare bohay.dev or google.com/search works,
and localhost:3000 opens your dev server over plain http.
Bare domains are matched conservatively, so ordinary text does not turn into links:
the name has to be lower case, end in a TLD bohay knows, and localhost needs a
port on it. If a domain of yours is not recognised, writing the https:// always
works.
One consequence worth knowing: a filename can also be a domain. .rs is
Serbia, .md is Moldova. So main.rs is ambiguous, and bohay settles it by
looking at the disk: if the file is there, it opens the file. If not, and the name
is a real domain, it opens the site. If neither, nothing happens.
Only http and https URLs open. Everything else is ignored on purpose: the text
comes from whatever is running in the pane, and a click would end up at whatever
your system has registered for that scheme.
Two more details:
- A URL that wrapped onto the next line still opens as one link. This is the part your terminal cannot do for you, because it only sees the finished screen.
- The browser that opens is on the machine you are sitting at, even when you
attached to a remote server with
--remote.
Ctrl+drag still resizes panes as it always did. The two never collide, because
a link only opens when you release without moving.
Detaching
Section titled “Detaching”Closing your terminal never loses work, because the server keeps every pane alive. Run
bohay again to reattach, or Ctrl+Space d to detach on purpose. See
Your First Session.