A trackpad-first infinite canvas Wayland compositor.
Primary repository: GitHub · Mirror: Codeberg
demo.mp4
Traditional window managers arrange windows to fit your screen. Stacking compositors do so by piling windows on top of each other; tiling compositors do so by squeezing them to fit and utilizing workspaces.
driftwm is an infinite-canvas compositor: windows live at their native size on an infinite 2D canvas, and your display is a camera viewing it. When two windows come close, they snap together, forming implicit groups that can be moved, resized, and viewed together. No tiling, no workspaces, window overlaps happen only on purpose.
Designed with laptops in mind: navigation and window management are trackpad-first; the infinite canvas makes the most of a small screen.
Built on smithay. Inspired by vxwm; borrows implementation details from niri.
Warning
This is experimental software, primarily built with AI.
pan_zoom.mp4
Infinite 2D canvas with viewport panning, zoom, and scroll momentum. A quick flick carries the viewport smoothly until friction stops it.
Pan & zoom bindings
| Input | Action | Context |
|---|---|---|
| 3-finger swipe | Pan viewport | anywhere |
| Trackpad scroll | Pan viewport | on-canvas |
Mod + LMB drag |
Pan viewport | anywhere |
Mod+Ctrl + arrow |
Pan viewport | — |
| 2-finger pinch | Zoom | on-canvas |
| 3-finger pinch | Zoom | anywhere |
| Mouse wheel | Zoom | on-canvas |
Mod + scroll |
Zoom at cursor | anywhere |
Mod+= / Mod+- |
Zoom in / out | — |
Mod+0 / Mod+Z |
Reset zoom to 1.0 | — |
navigation.mp4
Jump to the nearest window in any direction. MRU cycling (Alt-Tab) with
hold-to-commit. Zoom-to-fit shows all windows at once. Configurable anchors
act as navigation targets for directional jumps even with no window there —
useful for areas with pinned widgets. Bookmarks: named canvas
spots the camera jumps straight to.
Navigation bindings
| Input | Action |
|---|---|
| 4-finger swipe |
