Recipe: driftwm-like
Disconnected clusters scattered on the canvas; pan, zoom and overview between them — the driftwm working-set model on a 2D plane.
On this page
driftwm puts windows on an infinite canvas where they snap into implicit groups — clusters of related work you roam between by panning and zooming. atlaswm has first-class groups: disconnected tiled clusters on one plane, plus a zoom ladder and an overview to travel between them.
What it feels like
Instead of switching workspaces, you move around space. A cluster of terminals here, a browser-and-notes cluster over there, a chat cluster off to the side — all on the same canvas. You pan to one, zoom out to see them all, zoom back into another. Work is placed, not paged. Each cluster keeps its own focus, so coming back lands you where you left off.
The atlaswm primitives it uses
- Disconnected groups — multiple tiled clusters on one plane
(
spawn-new-group,group-next/group-prev). - Pan in X and Y to roam the canvas.
- The zoom ladder (
100% → 50% → fit-plane) to pull back and see the whole set. - The overview for a bird's-eye grid (here, a grid of planes if you also use several).
- Group tags so a cluster can be gathered/summoned as a unit.
Config
mod "super"
binds {
// Roam the canvas.
"Mod+Ctrl+h" "pan-left"
"Mod+Ctrl+j" "pan-down"
"Mod+Ctrl+k" "pan-up"
"Mod+Ctrl+l" "pan-right"
// Pull back to see everything, then dive back in.
"Mod+z" "zoom-out"
"Mod+Shift+z" "zoom-in"
"Mod+o" "overview-toggle"
// A one-shot groups mode: start a cluster, switch between clusters,
// tag the whole cluster at once.
"Mod+g" "submap:groups"
}
submaps {
groups oneshot=#true {
"n" "spawn-new-group"
"l" "group-next"
"h" "group-prev"
"t" "group-tag-toggle:work"
"Escape" "submap-exit"
}
}
Mod+g n starts a fresh cluster at the viewport top-left; Mod+g l / Mod+g h
cycle between the clusters on the plane. Mod+z repeatedly pulls back to
fit-plane (every cluster at once) and one more step to the overview; Mod+o
jumps straight to the overview.
The default
Mod+ois the planes submap — this recipe rebinds it to the overview, which is the more driftwm-shaped move. If you want both, pick another key for one of them.
When to use it
- You think spatially: "the email stuff is over there, the code is here."
- You want working sets without the rigidity of numbered workspaces.
- You like zoom-to-overview as your primary navigation, the way driftwm does.
Mix it up
Tag a cluster (group-tag-toggle:work) and you can
gather or summon it from
anywhere; move a whole cluster to a fresh plane with group-to-plane:<n> when one
canvas gets crowded; drop anchors on the clusters
you revisit to jump by name (that's the
spatial hub recipe). See also
niri-like and
i3/sway-like.