~/vimma $ less docs/panes.md

page 2/5 · docs/panes

Split panes

Split the window to see up to four pages side by side. Each page in the split is a pane, and tmux's keys after ctrl+b move between them.

Pane keys

ToPress
Split right / downctrl+b v / ctrl+b -
Split along the longer side (a spiral, as in Hyprland)ctrl+b enter
Rearrange into the next layout presetctrl+b space, or :layout tiled
Move to the pane left / below / above / rightctrl+b h j k l, or ctrl+w h … in normal mode
Zoom the pane to the whole window, and backctrl+b z
Close the pane (its tab stays open)ctrl+b x
Swap with the pane left / below / above / rightctrl+b shift+h j k l
Resizectrl+b r, then h j k l; Esc when done

What to expect

  • A new pane opens the start page with the URL bar focused: type where it should go.
  • The focused pane has a coloured border, and the status bar says pane 2/2. Page keys such as j, H and r act on it. Clicking a pane focuses it too.
  • Closing a pane keeps its tab: it is still in the workspace, and ctrl+b g finds it.
  • Four panes at most. Change that with [panes] max in config.toml.
  • Each workspace keeps its own split, and a restart brings it back as you left it.

Tiling layouts

As in tmux, ctrl+b space moves the panes you have into the next preset: even-horizontal, even-vertical, main-vertical, main-horizontal, tiled and dwindle. The status bar names the one you get. No page reloads: each keeps its scroll position, form text and history. In the main-* presets the focused pane is the big one, and each workspace remembers its last preset.

Resizing

ctrl+b r enters resize mode (the badge says RESIZE). l makes the pane wider, h narrower, j taller and k shorter, 5 % at a time; 4l is four steps. Esc, Enter or q leave. Without the mode, ctrl+w >, ctrl+w <, ctrl+w + and ctrl+w - resize one step, as in Vim.

All the keys for this page

The default bindings, as Vimma's own ctrl+b ? overlay lists them. Name is the action's name, which you use to remap it or to run it as a : command. Every key is on the keys page.

Panes (27)

ActionKeysName
Split rightctrl+b vsplit_vertical
Split downctrl+b -split_horizontal
Focus pane to the leftctrl+b hctrl+w hfocus_pane_left
Focus pane belowctrl+b jctrl+w jfocus_pane_down
Focus pane abovectrl+b kctrl+w kfocus_pane_up
Focus pane to the rightctrl+b lctrl+w lfocus_pane_right
Swap with pane to the leftctrl+b shift+hctrl+w Hswap_pane_left
Swap with pane belowctrl+b shift+jctrl+w Jswap_pane_down
Swap with pane abovectrl+b shift+kctrl+w Kswap_pane_up
Swap with pane to the rightctrl+b shift+lctrl+w Lswap_pane_right
Zoom panectrl+b zctrl+w ozoom
Close pane; the last pane closes the tabctrl+b xclose_pane
Resize modectrl+b rresize_mode
Leave resize modeescresizeenterresizeqresizeresize_exit
Make pane narrowerctrl+w <hresizeleftresize<resizeresize_narrower
Make pane widerctrl+w >lresizerightresize>resizeresize_wider
Make pane tallerctrl+w +jresizedownresize+resizeresize_taller
Make pane shorterctrl+w -kresizeupresize-resizeresize_shorter
New pane, along the longer sidectrl+b enternew_pane
Next layoutctrl+b spacenext_layout
Apply a layout preset by name (:layout name)no default keyselect_layout
Layout: all side by sideno default keylayout_even_horizontal
Layout: all stackedno default keylayout_even_vertical
Layout: main pane left, rest stackedno default keylayout_main_vertical
Layout: main pane on top, rest belowno default keylayout_main_horizontal
Layout: a gridno default keylayout_tiled
Layout: a spiral (dwindle)no default keylayout_dwindle

Details

Everything below is Vimma's own user guide for this topic, in full: every edge case and exception. You do not need it to get started.

Panes and tabs

Clicking into a pane focuses it, as ctrl+b h/j/k/l would. So does selecting a pane's tab any other way (the ctrl+b g picker, ctrl+tab, alt+1..9): the status bar's pane n/m and the URL bar follow, and a zoom ends, as it does when a pane key moves. Selecting a tab that no pane shows (the picker, ctrl+tab, alt+1..9, ctrl+t, a link opened in a new foreground tab) shows it in the focused pane: the split stays, and the tab that pane showed stays open in the workspace. A pinned tab shows alone; selecting a pane's tab brings the split back.

A split made outside Vimma (Firefox's own split-view command, an extension, or a restored Firefox session) becomes the workspace's panes: its tabs side by side in its order, at the widths Firefox gave them, with the selected tab's pane focused. The pane keys then work on it, and the workspace keeps it like any other split. If such a split's tabs are in different workspaces, or the workspace already has a split, Vimma separates its tabs again and the status bar says why; the tabs stay in their workspaces. Separating a split outside Vimma closes its panes.

Resize mode

With two panes or more, ctrl+b r enters resize mode and the status bar says RESIZE. Each key moves the focused pane's nearest divider by 5 % of its split: l (or →, >) makes the pane wider, h (←, <) narrower, j (↓, +) taller, k (↑, -) shorter. A count repeats the step: 4l is 20 %. Growing borrows from the nearest neighbour first, then the next one; no pane gets smaller than 10 % of its split. Esc, Enter or q leave the mode. The mode is modal like the bindings overlay: the page sees none of its keys, and other keys do nothing. ctrl+b keys still work in it. With one pane, ctrl+b r says so and does nothing.

Without the mode, ctrl+w >, ctrl+w <, ctrl+w + and ctrl+w - resize by one step in normal mode (3 ctrl+w > by three), as in Vim. A config can rebind the mode's keys in [modal.resize].

Layouts

Panes tile as in tmux, with one idea from Hyprland. ctrl+b enter is tmux's split-window without a direction to choose: it splits the focused pane along its longer side, so a wide pane gets a neighbour on its right and a tall one a neighbour below. From one pane, three presses make a spiral: side by side, then the right half stacked, then its lower quarter side by side. The new pane opens the start page and has focus; past [panes] max it is refused with the usual notice. ctrl+b v and ctrl+b - still split right and down.

ctrl+b space is tmux's next-layout: it rearranges the panes you have into the next preset, and the status bar shows its name for a moment (layout: tiled):

PresetThe panes
even-horizontalall side by side, equal widths
even-verticalall stacked, equal heights
main-verticalthe focused pane large on the left, the others stacked on the right
main-horizontalthe focused pane large on top, the others side by side below
tileda grid: 2×2 at four panes, two over one at three
dwindlea spiral: each pane takes half of what is left, along the longer side

After dwindle it starts again at even-horizontal. Each workspace remembers the last preset it used, across a switch and a restart, so ctrl+b space goes on from there; splitting, closing, swapping or resizing panes afterwards keeps that name, as tmux does.

  • Pages stay as they are. A preset moves the pages you have into new places; none is reloaded, and each keeps its scroll position, form text and history.

  • Focus and zoom: the focused pane keeps focus, and its page has the keys afterwards. A zoomed pane is unzoomed first, as in tmux. The main pane of main-* is the focused one (tmux uses the first): focus a pane and pick main-vertical to make it the big one. The other panes keep their order after it.

  • Sizes: presets share space equally, except the main pane, which takes 60 % ([panes] main_size). Resize mode and ctrl+w < > + - work on the result as on any split.

  • By name: :layout tiled picks a preset (Tab completes the names), and :layout alone is ctrl+b space. Each preset is also an action to bind in config.toml, unbound by default: layout_even_horizontal, layout_even_vertical, layout_main_vertical, layout_main_horizontal, layout_tiled, layout_dwindle:

    [keys]
    layout_tiled = ["prefix+alt+t"]
    layout_main_vertical = ["prefix+alt+m"]
  • With one pane there is nothing to arrange: ctrl+b space says so. With more than 10 panes ([panes] max up to 16) the even presets would make panes narrower than a tenth and are refused with the reason; tiled and dwindle always fit.
  • **[panes] layout** sets what ctrl+b enter does: "dwindle" (the default) as above, or "manual", where it splits right like ctrl+b v and the tree changes only the way you say. Presets work the same either way.

Known limits

Vimma is pre-alpha. What does not work yet, or works with a catch, is listed on the known limits page:

The guide at the top is written for this site; the details are built from Vimma's docs/guide.md and bindings.md at 1050bcc (2026-10-10).

Keys on this site

Keyboard shortcuts for this website
j kscroll down, up
d uhalf a page down, up
gg Gtop, bottom
/search the docs, or filter the keys
] [next, previous docs page
g hgo home
g dgo to the docs
g kgo to keys
g igo to install
g ago to about
?this help; Esc closes it

In Vimma, ctrl+b ? lists every binding.