Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Relationship to niri

Atrium is a permanent fork of niri, not a tracking branch. Upstream fixes are cherry-picked into the parts that are niri’s; the parts that are Atrium’s own diverge for good.

niri’s: cherry-pick fixes

src/backend/, src/handlers/, src/render_helpers/, src/protocols/, src/utils/. The compositor plumbing. Atrium modifies them only for a bug upstream has not fixed yet, and takes the upstream fix when it lands.

Atrium’s own

src/layout/ (workspace model, TilingLayout, five algorithms), src/ui/, atrium-config/, atrium-ipc/, resources/.

Adapted: touched carefully

src/atrium.rs, src/input/mod.rs, src/ipc/. The bridge between upstream code and the layout. Changes here are surgical: add the action dispatch, do not restructure.

Grafting

Each niri release is triaged commit by commit into four buckets: take (cherry-pick with -x for auditability), adapt (a bug idea that applies to Atrium’s rewritten code, ported by hand), skip (scrolling-layout features, systemd and dinit integration, packaging, CI), or batch. A ledger records the cursor and the standing skips so nothing is re-litigated. Atrium is currently synced with niri v26.04.

Smithay

Atrium pins a private Smithay fork by revision, carrying robust-context creation (EGLContext::new_robust_with_priority) for GPU recovery. A graft that bumps niri’s Smithay pin rebases the fork branch onto the new pin and updates both revisions together.

Names that stay niri’s

Shader uniforms (niri_scale, niri_progress, and the rest) are a public API for custom shaders and are not renamed. Comments citing GitHub issues on niri are historical references and stay. Everything else is atrium: the crate, the Atrium state struct, ATRIUM_* environment variables, ~/.config/atrium/.

Version string

Atrium’s own version is CalVer (YYYY.MM.MICRO, no v prefix, so a bare number is ours and v26.04 is niri’s). The niri base is reported alongside, as in atrium 2026.09.0 (niri v26.04).