Home | Onion mirror | Git repo | Git onion | Site map | RSS

Silverblue is the Future of the GNU/Linux Desktop

The year of the GNU/Linux desktop will probably never come. However, with Silverblue, we’re one step closer.

Enter Silverblue

Silverblue is a really interesting distribution. It’s what the developers refer to as an “immutable OS”. /usr is read-only, and every update is pushed and applied as a complete image.

Because of Silverblue’s model, it is practically impossible to have any major system breakage due to package conflicts and incompatable package versions. And because much of the system layer is read-only, non-technical users can’t break their systems by running commands they don’t understand. I’m a technical person, but having that assurence on my work machine lets me rest easy.

If we are to have a free and open source world, mass adoption of the GNU/Linux desktop is essential. Adoption by non-technical users is necessary. As much as I wish that computers were only for technical users, this is a genie we can’t put back in its bottle.

Security

I know that Theo is not exactly fond of containers and sandboxes, but on a system like GNU/Linux, which has no unveil, pledge, or any other OpenBSD-specific mitigations, they can be extremely valuable to prevent data from one program being stolen by another, and they provide yet another safeguard against non-technical users messing with files they do not understand. Add SEGNU/Linux on top of this (Fedora is one of the few distros that enable it by default), and it all makes for a delightfully secure and stable GNU/Linux experience.

Installing Packages

In Silverblue there are three main ways to install packages. In order of best practices: Flatpaks, Toolboxes, and rpm-ostree.

rpm-ostree

rpm-ostree is used as a last resort to install packages. It will simulate a traditional package manager by layering packages over the base image. Generally you should only use it for things like video codecs, fonts, and packages that absolutely need to interact with the host system to function, such as a window manager. I only have four packages layered.

That’s for installing packages. However, rpm-ostree is more than just a package manager. It’s basically the way you interface with your system images.

Toolboxes

Toolboxes are really cool. You can use them to run pretty much any distribution on top of Silverblue, including a regular Fedora installation. This makes it really easy to install applications that aren’t or can’t be packaged as Flatpaks, but can be run without access to the root filesystem. I have a Fedora toolbox that I use for most things, as well as an Arch toolbox so that I can use any AUR package on Fedora. Distrobox is also working to allow users to run any GNU/Linux distro on top of any other, which is a really cool project, and incidentally makes Bedrock obsolete (if it ever wasn’t).

Flatpaks

Much ink has been spilled on Flatpak. Some hate it, some love it, but for a desktop system to be used by normal people it is simply the best way to install packages. Appimage comes close, but most people don’t want to create a .desktop file or install an extra application to fully install them (i.e. to get them in their applications list).

Many anti-Flatpakers insist that Flatpak is simply reinventing the wheel; that the problem of program installation has already been solved by distro package managers. However, the amount of energy that is expended on doing nothing more than maintaining the same package across the dozens of GNU/Linux package managers is completely inefficient and only furthers the main problem with GNU/Linux: fragmentation. Sure, Flatpak is only creating another package management system that also has to be maintained, but the difference is that Flatpaks can run anywhere. It doesn’t matter if you’re on Arch, Gentoo or Ubuntoo, if you want to install a Flatpak, you can install a Flatpak. They also give developers a way to directly push important fixes and mitigations to their users, without their users having to wait another year or two for the next version of Debian to be released.

Flatpaks also tend to just work. I’ve always had problems with getting video to play in Fedora–usually I end up installing something that probably installs some other library as a dependency and suddenly things seem to work. On Silverblue it was plug and play. I installed Celluloid, connected to my NAS, and watched a Youtube video I had archived. All without ever touching a terminal.

The GUI

Speaking of using the terminal, how much did I do it? Since I was testing Silverblue’s viability as a desktop OS for normal people, I tried to avoid the terminal whenever possible. Other than using rpm-ostree to install the -devel files necessary to build plan9port so that I could use Acme, I never had to use the terminal, really. I certainly did use it for things, but only because of preference. The key is that using the terminal was something I did because I wanted to, not because I was required to.

The Bad

Nothing is without its flaws. So far I’ve painted a pretty picture of Silverblue, but there were some things I had trouble with.

GNOME Soyware

First and foremost, GNOME Software is the worst program I’ve ever had the displeasure of using. We all have different definitions of “bloat”, but we should all be in agreement that a software centre using a gigabyte of memory in the background the entire time I have my system on is bad design. It wouldn’t be so bad if it did its job, but I have to kill it every third time I try to install a program because it will often freeze up and loose its cache of applications.

EDIT: Lately, this has been less and less of a problem. However, GNOME Software still needs some work.

GNOME-Shell

GNOME itself could be a stubling block for some users. Personally I like GNOME. My mouse has a super key, so it’s very comfortable to use, and the idea of binding applications to super+n instead of workspaces is something I never thought I’d love so much. However, it is a resource hog (especially with GNOME Software running), and some users might not appreciate its minimalist UX (decidedly not code) philosophy. GNOME is a very prescriptivist, opinionated DE, and GNOME-Tweaks isn’t available as a Flatpak, so you’ll have to layer it or run it in a toolbox if you can’t stand GNOME’s defaults.

I used to think that you couldn’t completely remove GNOME if you wanted to layer a WM into rpm-ostree, but I’ve since learned that it’s not impossible, only tedius. If you want to remove GNOME, you’ll have to rpm-ostree override remove every GNOME package on the system. Either that, or you could spin up your own image, which isn’t so hard. Though at that point you might as well use Guix or Nix, because they’re better suited to that task.

Plumbing

This is really only a me problem, but to plumb to other programs I had to install plan9port on the host system. It’s not really ideal, but the plumber is one of those programs that needs host access.

Conclusion

In conclusion, Fedora Silverblue is the next step forward for the GNU/Linux desktop. However, because of GNU/Linux’s fragmented nature, it still has no unifying worldview, and so its users are really only given the choice between “shitty windows” and “shitty macOS”.

The only time the free software community has “won”, it was because they were ahead of the curve. They offered a superior product, and they offered it first (e.g. Apache, Docker). The GNU/Linux desktop has no “killer app”, and until it does, its year will not come.