Desktop / Window managerSource release

FlameWM

A small Linux desktop built as a systems project, not a theme.

A Rust X11 window manager and desktop shell for Linux, with an experimental Wayland session and an HTML/CSS shell compiled to native rendering.

Status

Source-level 0.1.3 release. X11 is the supported default; Wayland is not yet a daily-driver claim.

Checked version 0.1.3

Evidence checked 2026-10-30

FlameWM case study visual

The problem

Desktop environments are enormous because they solve decades of integration problems. A useful alternative has to choose a narrower contract: own the window-management authority, render a shell efficiently, and be honest about which session is ready.

What I built

  • Built the window-management core, workspace model and X11 authority instead of wrapping an existing WM.
  • Built an in-repo renderer that compiles HTML/CSS shell descriptions into native drawing code, with no browser runtime.
  • Added a Wayland compositor path on Smithay while keeping X11 as the supported default.
  • Wrote verification gates for architecture, render compilation, tests and packaging rather than relying on screenshots.

Architecture and trade-offs

One owner for workspace state

The workspace topology lives in a shared API model and is consumed by the WM, platform layer and pager. A single owner avoids the usual drift where the panel and the window manager disagree about which desktop is active.

Rust crates with hard boundaries

Window management, Wayland compositing, shell control and rendering are separate crates. Pure models stay independent of X11 and Wayland so they can be tested without a display server.

Compiled shell, no web runtime

The shell is described in HTML/CSS and compiled into native rendering commands. That keeps the layout model familiar without shipping a browser engine or a JavaScript runtime to draw a panel.

Verification is part of the product

The project runs doctor, architecture audit, promotion audit, cargo checks, tests, release build, render compilation and font checks before a source release. The 0.1.3 release is explicitly source-level; it does not claim that a full installed session has been accepted on every machine.

← All work