Using Fedora Silverblue for Compositor Development

JNRowe2 pts0 comments

Using Fedora Silverblue for Compositor Development | Ivan Molodetskikh’s Webpage

Using Fedora Silverblue for Compositor Development

Jun 5, 2026 15:37

4049 words

20 minute read

I&rsquo;ve been using Fedora Silverblue on my desktop and laptop for the past, what, five years?<br>Silverblue is Fedora&rsquo;s main atomic variant, a spiritual counterpart to Fedora Workstation.<br>I also make niri, a scrollable-tiling Wayland compositor.<br>In other words, a core system component that you cannot properly test from inside a container or VM—you really want it directly on the host.<br>So, why would I choose an… immutable distro?<br>How does that even work?

Fedora Silverblue makes a frequent occurrence in my niri release notes screenshots.

Atomic distributions have been slowly rising in popularity.<br>Their main selling point is reliability: upgrades work by swapping the old system for the new one in one go across a reboot, rather than modifying the files in-place.<br>Package conflicts and other errors are caught at the time of assembling the new version (in a separate folder), and therefore cannot break your running system.<br>And if a successful update turns out buggy, atomic distros let you simply reboot back into the old version and keep using it as if nothing happened.

This &ldquo;being able to reboot back&rdquo; thing becomes even cooler once you realize that it works even across major distro upgrades!<br>When the next Fedora Beta rolls around, I can just rebase my system on top of it to kick the tires, and if anything is broken, I can simply reboot back to stable Fedora (and then undo the rebase).

This is like learning about source code version control.<br>A big weight off your mind any time you want to mess around with your OS.<br>You can just go back.

So, by now there are plenty of atomic distributions to choose from.<br>There&rsquo;s a whole host of Fedora atomic desktops, Endless OS, the gaming-focused Bazzite and other Universal Blue images.<br>GNOME OS Nightly is atomic, as well as SteamOS powering the Steam Deck.<br>Many of these are built with OSTree which is something of a &ldquo;git for operating system binaries&rdquo;.

But, you may ask.<br>What if I develop these operating system binaries?<br>Aren&rsquo;t atomic distros immutable and all, how do I test my work?

Turns out, this is not a problem at all!<br>In fact, the same tech that lets you go back after an update can also let you freely tinker with your host system and safely go back after a reboot.<br>I&rsquo;d say that thanks to this ability, atomic distributions provide even more benefit for system component developers than for others, given that they&rsquo;re constantly testing changes that may break their install.

So, let me show you how I do compositor development on Fedora Silverblue.<br>We&rsquo;ll start with toolbox where most of the work happens, then proceed to the fun stuff.

Toolbox #

On your immutable host system, you need a place where you can install the development environment.<br>Fedora Silverblue comes pre-installed with Toolbox, which provides just that—a terminal in a normal, mutable Fedora where you can sudo dnf install to your heart&rsquo;s content.

Under the hood, it&rsquo;s just a podman container with a whole range of things auto-mounted from the host: the Wayland socket, networking, devices, D-Bus, and everything else needed for apps to &ldquo;just work&rdquo; as much as possible from inside the container.<br>You can even interact with it through podman commands:

┌ ~<br>└─ podman ps<br>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES<br>6ceccce5581e registry.fedoraproject.org/fedora-toolbox:44 toolbox --log-lev... 2 months ago Up 41 minutes fedora-toolbox-44<br>Most of your development work happens here.<br>Install all the libraries, compilers, editors, LSPs, debuggers, and the rest of the kitchen sink.<br>Since all of this resides inside the same container, it can all talk to each other and work together.

One slightly annoying detail is that since your fully-configured editor is inside the toolbox, you can&rsquo;t use it to edit files accessible only on the host (e.g. configs in /etc—the system inside the toolbox has its own files there), but that is honestly a fairly minor problem in practice.<br>Fedora Silverblue comes with nano, which works, and if editing host-only files is a frequent occurrence for you, you can always rpm-ostree install a more featureful editor.<br>Another annoying problem is that currently, toolbox prevents SIGHUP from reaching apps, so if you run your favorite editor then close the terminal window, it will happily keep running in the background (along with all its rust-analyzers and such, eating several gigabytes of RAM).

So, running things in a toolbox works perfectly well for most development.<br>CLI tools will run fine, GUI apps will run fine, you can build and install libraries inside the toolbox and test them on apps inside the same toolbox.<br>Even with Wayland compositors, most of them can run as a window (gnome-shell --nested, or simply sway or niri), which...

fedora toolbox rsquo system silverblue atomic

Related Articles