Recipe: niri-like
One row, scroll columns along X — atlaswm as niri, in 2D. The horizontal scrollable strip, with the second dimension waiting when you want it.
On this page
niri freed the tiler from a fixed grid of workspaces: windows live in an endless horizontal strip of columns, and you scroll along it. atlaswm is that — and then some, because the strip is one row of a 2D plane. Use the plane like niri's strip and you get the niri feel; the vertical axis is there the moment you want it.
What it feels like
You spawn windows into columns that march off to the right. Focus left/right scrolls the viewport to keep the focused column in view; there's never a "screen edge" the layout stops at. New work just extends the strip. When a column gets busy you stack windows in it (the vertical axis), but the default motion is horizontal: a long, scrollable run of columns.
The atlaswm primitives it uses
- One plane, used as a single row — columns across, pan along X.
- Focus that scrolls the viewport — moving focus to an off-screen column pans to it (built in; no config needed).
- Pan in X for free scrolling without moving focus.
- Column-width presets (
cycle-width) for niri's "set column width" feel.
Config
Copy-paste into ~/.config/atlaswm/config.kdl. This keeps every default and just
reinforces the horizontal flow with explicit, ergonomic binds:
mod "super"
// Spawn into a new column to the right; stack vertically only when you ask.
binds {
"Mod+Return" "spawn-column"
"Mod+Shift+Return" "spawn-below"
// Move focus along the strip (scrolls the viewport to follow).
"Mod+h" "focus-left"
"Mod+l" "focus-right"
"Mod+k" "focus-up"
"Mod+j" "focus-down"
// Carry the focused window along the strip.
"Mod+Shift+h" "move-left"
"Mod+Shift+l" "move-right"
// Free-scroll the strip without moving focus.
"Mod+Ctrl+h" "pan-left"
"Mod+Ctrl+l" "pan-right"
// niri-style column width: cycle the presets.
"Mod+s" "cycle-width"
"Mod+Shift+s" "cycle-width-back"
// Snap a column to a fraction of the screen.
"Mod+u" "width-set:1/3"
"Mod+i" "width-set:2/3"
"Mod+p" "width-set:1"
}
When to use it
- You already think in niri's scrollable strip and want it on Wayland with a Smithay core.
- You like one long workspace over many small ones — extend right instead of switching.
- You want the option of the second dimension (push a window past the top/bottom edge to start a row) without committing to it.
Mix it up
Stay one-dimensional, or reach for more: stack windows vertically when a column
fills up, add a few planes as the rare
"different context" workspace, or zoom out (Mod+z) to a fit-plane overview of
the whole strip. See the other recipes —
driftwm-like,
i3/sway-like,
spatial hub — or
build your own.