I've watched Richard's talk at GUADEC
while ago and wanted to share my thoughts as an end user on this. I have
to note that I have never actually tried running Kubic as a Desktop OS
and currently have no plans after I tried out Fedora SilverBlue (and
removed it after a day or so).
I see the following challenges for an immutable desktop OS comparable to
Kubic & Silverblue:
1. installing packages is a pain, because you have to reboot after an
2. flatpaks are nice (and a partial solution for 2.) but there's not a
whole lot of flatpaks out there. Also, flatpaks (especially editors)
suffer from the "issue" that they cannot interface with most of the
system's binaries (yeah, I know that's actually a feature). That
unfortunately means that you cannot use your system's
I propose the following ideas for discussion, how this could be
1. Use something like Fedora-toolbox (or just the actual thing):
This is a nice wrapper around podman, that allows you to simply start
containers which share your file system, but where you can actually
install stuff with dnf and don't have to reboot. When I tried it on
Silverblue it was even possible to install an X11 program inside
a toolbox container and it would work.
2.1 Add support for layering (like with containers) for flatpaks: let's
say you installed the VSCode flatpak, but would like to use a python
interpreter. Unfortunately, the flatpak runtime refuses vscode to
access /usr/bin/python and /usr/bin/pip, so you're stuck with vscode
without real python support.
Suppose flatpak would support to add a Python layer on top of the vscode
flatpak: i.e. you would overlay a file system which provides python
& pip onto the vscode flatpak, kind of like containers do this (yes
this is _very_ hand-wavy, because I don't have a lot of expertise in
Flatpak/Flathub itself could provide multiple such overlays,
e.g. one for Python, one for Ruby, one for NodeJs, etc. This could
be even used further, for instance to support mods for games
(looking at you Optifine for Minecraft).
Disclaimer: this is not my idea, I've read it somewhere a while ago
with the optifine example, but really cannot recall where (I suspect
2.2 Build flatpaks from OBS projects.
This "solves" the problem, that there is not an awful lot of
flatpaks out there.
Fedora already does that by leveraging their modularity project, so
it is definitely possible. Unfortunately actually implementing this
is going to be a lot of work, but instead of the currently ~650
applications that you get from flathub, you could potentially get
all GUI apps that exist on OBS.
I am however really not sold on this one, as it is a) a ton of work
and b) it would probably be more pragmatic to submit PRs to upstream
repos to build them with "native" flatpak support.
¹: This is actually less of an issue on Kubic, as transactional-update
leverages the standard packaging workflow and installing additional
packages is fully supported. On SilverBlue you have to resort to
ostree layering, which is discouraged to use extensively. That
doesn't solve the rebooting issue, but it means that you can easily
experiment around with additional packages.
Dan Čermák <dcermak(a)suse.com>
Software Engineer Development tools
SUSE Software Solutions Germany GmbH
(HRB 247165, AG München)
Managing Director: Felix Imendörffer