Mental model

Plane, viewport, rows, columns, cells, tabs, splits and floats — the vocabulary that makes the keybinds obvious.

atlaswm is a tiling Wayland compositor built around an infinite 2D plane. Once the vocabulary clicks, the rest of the keybinds follow. This page is the vocabulary.

Plane and viewport

A plane is an unbounded 2D canvas. Windows live at coordinates on it, extending in every direction — there is no "screen edge" the layout stops at.

Your monitor is a viewport: a rectangle that looks onto part of the plane. You pan it (in X and Y — unlike a 1D scrollable strip) and zoom it out to see more at once. The viewport belongs to the monitor, not the plane, so with two monitors each can look at a different spot.

        the plane (unbounded)
   ┌───────────────────────────────────────────┐
   │   ┌──────┐                                 │
   │   │ mail │     ┌─────────────────┐         │
   │   └──────┘     │                 │  ← your viewport (the monitor)
   │                │  [term][editor] │         │
   │   ┌────────┐   │                 │         │
   │   │ chat   │   └─────────────────┘         │
   │   └────────┘                ┌────────┐     │
   │                             │ browser│     │
   │                             └────────┘     │
   └───────────────────────────────────────────┘

Pan with Mod+Ctrl+h/j/k/l; zoom out/in with Mod+z / Mod+Shift+z. Focus follows you — moving focus to an off-screen window scrolls it into view.

Rows, columns, cells

Within a plane, tiled windows are organised hierarchically:

  • A plane is a vertical stack of rows.
  • A row is a horizontal run of columns.
  • A column is a vertical stack of cells.
 row 0:  [ col0 ][ col1 ][ col2 ]
 row 1:  [ col0 ][ col1 ]
            │
            └ a column is cells stacked top-to-bottom:
                 ┌──────┐
                 │ cell │
                 ├──────┤
                 │ cell │
                 └──────┘

New window in a new column: Mod+Return. Stacked below in the same column: Mod+Shift+Return. Move focus with Mod+h/j/k/l; move the window with Mod+Shift+h/j/k/l (pushing past the top or bottom edge creates a new row).

Cells, splits and tabs

A cell isn't just one window — it can hold an arbitrary tree:

  • Splits — a cell can split horizontally or vertically into more panes, recursively. This is where the i3/sway-style nesting lives.
  • Tabs — a column's stack can collapse into a single tabbed cell; only the active tab is shown, and you cycle through them. Hidden tabs are unmapped, so they cost nothing.

Floats and fullscreen

  • A floating window is lifted out of the tiling and positioned freely; drag it with Mod + left-drag, resize with Mod + right-drag.
  • Fullscreen takes one window to the whole output, above bars and everything else, and restores it to its tiled slot when you toggle off.

Beyond one plane

The plane is only the start. atlaswm gives you a pool of planes (think workspaces, but each is its own infinite canvas), free-form tags on windows, gather/summon scratchpads that pull tagged windows together temporarily, disconnected groups (clusters of tiles you can move and tag as a unit), anchors (named viewport bookmarks), and a global overview that shows every plane as a live mini-canvas. These are the primitives you compose into your workflow.

Next: install atlaswm and walk through the first run. The deeper model — planes, tags, scratchpads, anchors, marks, groups — lives in Concepts, and the workflow recipes compose these primitives into ready-to-use configs.