Fedora Sway Atomic

I have tried a great many different Linux distributions over the years, but I have recently settled on using Fedora Sway Atomic for my desktop and laptop workstations.

Info

Fedora Sway Atomic is the new name for Fedora Sericea. You may still see valid references to Sericea, especially in the Fedora repository URLs.

Sway is a minimal tiling window manager for Wayland. It is ideal for efficient keyboard centric development and for getting out of your way.

The “Atomic” part refers to rpm-ostree, which was originally used by the CoreOS team to build an operating system that is built entirely to support containers. The root file system of an Atomic host is mounted read-only, and the packages are distributed in an image, rather than installed individually. This makes updating (or rolling back) the system far easier, and makes for a more stable environment. There is no need to replace packages one-by-one, you just download the new image provided by the distro, and then reboot the system to use it.

The base image includes all the typical things everyone needs: coreutils, a display manager, web browser, terminal apps etc. However, the base image is still pretty bare bones. Except for a few directories, the root filesystem is immutable, so the process of installing packages might be a bit different than what you are familar with.

If you want to install something that isn’t in the base image, you have a few different options:

  • Podman or Docker containers (including toolbox and distrobox). Since containers use their own image, they are separate from the root image, and can be freely created and destroyed separately (no reboot).

  • Flatpak is a type of application container that includes all of its dependencies, and it is sandboxed/isolated from the host system, therefore they can be installed/managed separately from the base image.

  • Use rpm-ostree to create a new image layer. This extends the root atomic layer with extra packages that you want to install natively (not in a container). It bundles all of the requested packages into a new layer, and this is laid on top of the root atomic layer. The machine must boot the combined layers as one image, so therefore you must reboot the machine each time you install new packages this way.

For almost everything, I use Podman containers via toolbox and/or distrobox and these can even include graphical applications. Flatpak doesn’t appeal to me. For a few things that cannot be installed in a container, I have added them as an rpm-ostree layer.