After Xmas holidays, and after doing some initial testing, I finally moved to Fedora’s Silverblue Spin. My main box now shares Silverblue with Windows 10 and Haiku, the tablet uses Silverblue only, and an old HP Stream 7 has to use regular Workstation because, while Silverblue ISO boots the device and installs itself, upon first boot BIOS reports no operating system available, so ended up with Workstation there instead of Silverblue.

Back in January I wrote a brief review on installing Fedora Silverblue and first impressions, with plan to write a broader review later once I had used Fedora Silverblue for some time on regular basis, as a daily driver, for everything. So here we are.

Just as a reminder, hardware setup is: MSI B350M Mortar with Ryzen 5 1600, MSI Radeon 5700/4GB, 24GB DDR4, SSD drive for Windows, SSD drive for Haiku and SSD drive for Silverblue, HD drive for data.

The reason

The first most important question to be asked here is why Silverblue. Well, I’ve been using Ubuntu for quite some years, starting in 2005 (Ubuntu 5.04), for everything, alternating with Windows at work. Before that, all versions of MacOS from System 6, Windows from 3.1, and several linuxes, varying from Slackware, Gentoo, RedHat, SuSE… and even BeOS (the reason for having Haiku).

Updates in the Ubuntu realm never worked really well for me, resulting always in a broken system that needed a complete clean reinstall. Besides that, Ubuntu always throwed at me alerts stating that some part of the system suffered some kind of crash needed to be reported, and while that wouldn’t stop the system, it was quite annoying to close the alert window every time it appeared.

As now my time is limited, I don’t have enough free time to fiddle with distros, jump from one to another, check here and there, do the setup, install the software, work for a while, realize it does not fit my needs, start over with another distro, and so on. I did try Fedora Workstation, but ended up with same update issue, that render the PC a bit of a mess in need of a clean install. That is when someone pointed me to take a look at Silverblue.

So there I went, downloaded Silverblue 31, did some testing inside VirtualBox, and on a very old laptop, and the testing went fine, so here I am now, on the Silverblue wagon. I haven’t yet done any “rebase” to a new version, which is expected to arrive soon, and that will be the last test needed to be done. If the rebase works well, then it certainly will be a GO.

Nonetheless, being Silverblue an immutable OS, ostree based, deployment based, I am quite confident that everything will go well, or at least with not so much hassle. In fact, I have already pinned the default Silverblue 31 install, just in case, as can be seen in Img. 1. I’ll go into the LayeredPackages and LocalPackages later on. This “pin deployment” option is one of the good things of Silverblue, also available to certain extent on Haiku. It allows me to save that deployment (the default one in this case) who proved to be reasonable stable, and go back there if anything wrong happens later on. Nice idea.

Img. 1 – rpm-ostree status

I use this PC mostly for Game Development, at a very slow pace, so I always get caught in the middle of the new distro version update process. Until now, for the two games I’ve “completed”, always a new version of Ubuntu came out causing troubles with the update process. So with the deployment approach, I expect that even with flaws, it will be at least less trouble.

From 0 to 100 in some time

One of the things I like most about Silverblue is that upon installation, the number of installed software is so small that some might get frightened.

Img. 2 – Default installed software

Actually, for me this is desirable. Though I’m not a developer, I rather decide what to install than someone telling me what to use. Yes, I can uninstall everything by myself, same as installing, though as with any drawing, I rather start with a blank slate than with an already painted one where I must wash out the unwanted stuff.

Img. 3 – Installed software

Installing software is quite straightforward using the Software software, and in order to have access to some other offerings not available within Software, I did set up Flathub, to install everything I “need”. On Img. 3 something is still lacking, Gnome-Builder. Basically because now I’m working on some game projects with Godot and Codium, which does not leave so much time left for working on software development (I’m no developer, I just enjoy that).

In that software list, everything is Flatpak but Codium, LMMS, Tutanota, pCloud and Godot, which are AppImages. Groupme is a WebApp, Variety and GnomeWeb are layered packages, the former, in order to allow desktop background switching, and the later in order to be able to generate WebApps when needed. That is why there is AppEditor at the beginning of the list. Also Gnome-Tweak-Tool is a layered package because it’s not available as Flatpak, and yes, I do like to tweak the looks of my desktops. I can’t imagine everyone in the world wearing all blue jeans, grey t-shirt, white snickers and red socks, creepy. So it does not make any sense to have the desktop just like everyone else, as different people have different workflows, needs, use cases and the like.

Img. 4 – Shell extensions

Also, I added some shell extensions, Dash to Panel to have the panel on the left of the display, Workspaces to Dock (I love Gnome workspaces management), and Shelltile to be able to adjust windows a bit more precisely than default Gnome tiling.

In order to have more control on the screenshot process, I installed GnomeScreenshot and set it to launch on pressing PrtScr key, instead of default behavior.

Besides, I added Chinese and Russian input methods, which in Fedora is a flawless, straightforward process, and just works.

At the beginning, I started to add fonts the regular way, but ended up with all fonts being layered as an independent package, which after some fonts, resulted in the rpm-ostree status command to display a whole bunch of lines just with the fonts. Finally, I decided to add them in the .fonts directory inside /home, for now, so will only be available to the user of that /home, though at least I won’t have hundreds of layered packages.

Doing all this setup took time, though it’s a process that only needs to be done once, and wouldn’t be needed again unless there is need, or want a change later on, which its also possible as nothing is so static as to stay still forever.

The only issue I found with getting to my “default” setup is that I want the whole system to “understand” me, that is:

  • System language: English
  • Time format: HH:MM (24 hours)
  • Date format: YYYY.MM.DD
  • First day of week: Monday
  • Default Location for weather/time: I want to set it myself
  • Default units: Metric

And Gnome does not allow to fulfill all those requirements. I always end up with some unwanted location unable to be removed in Weather. If set the formats in Settings to Spanish then there will be a mix of languages as weekdays will be in Spanish, while I have language set to English, and this does not allow dates to default to YYYY.MM.DD, so it turns out to be a bit of a little mess. Nobody is ferpect.

Initial flaws

What didn’t work properly after the initial setup, besides the mix-sorta-mess format-language thing was audio and video due to multimedia codecs being something that come outside of Silverblue. After quite some research, and digging online I had to go to Fedora Silverblue : installer les codecs multimédia, and follow the steps there in order to pourrez écouter et visionner ce que vous voulez. Thanks a lot. Merci beaucoup!.
Problem solved, though with layered packages (Img. 1). And that meant that had to add as LocalPackages the RPM-Fusion free and non-free repos.

Another issue I have deals with the screenshot app:

Img. 5 – Flatpak Screenshot setting custom shortcut

While default Gnome behavior makes a sound when taking the screenshot, changing the setting to use the Flatpak package of Gnome Screenshot ends up making no sound at all. Only the visual feedback is present, no shutter click. This is a small issue, though annoying sometimes. Yes, well, I like the interactive screenshot, and haven’t found how to get it with the default screenshot setup in Silverblue’s Gnome.

Also, I couldn’t get SMB to work properly, I have access to the share through FTP, though I couldn’t get access to that share through SMB. Trying to access the SMB share always ends up in an empty folder, or an error Could Not Display address. The file is of an unknown type.

Another issue, this more problematic, is that Dropbox and pCloud do sync upon installation, and that’s all folks. Next time turn on the PC, no syncing, no nothing. Dropbox and pCloudDrive folders are there, though no syncing is possible. Adding files or folders to Dropbox or pCloudDrive folders doesn’t make those files appear in the respective clouds. This is really a very big flaw as does not allow me to use the cloud to share calendars (GnomeCalendar), Notes (Notes) and wikis (ZimWiki) among devices, to cut dependence on Google, Apple or Microsoft.

Triple Boot

With three operating systems installed in different drives on this PC, triple boot was a must. I needed to be able to boot Windows 10 and Haiku besides Silverblue, and there is a catch here:

Img. 6 – Known limitations of Silverblue: multiboot, manual partitioning

Actually I got past the manual partitioning issue doing my own manual partitioning according to defaults, that is, I first checked what Silverblue states as default partitioning scheme, letting the Anaconda installer do a recommended partition scheme, then I created the needed partitions matching my personal requirements. Result, no issues there.

The multiboot process was not as easy and took me more time and effort, trial and error, problems and headaches, I finally got it working as explained here I do Triple Boot (Silverblue, Windows 10 and Haiku). I have it working right now though sometimes, it does fail a bit.

This coronavirus situation sent me home to work, so in order to not mess work stuff with home stuff, I decided to use a virtual machine for work using Boxes. Boxes is a Flatpak, and has many limitations, hard drive size as well as access to files and folders on USB attached devices, so I ended up installing Silverblue again on an external drive and let the PC boot from that drive. This method works quite well with any linux distro, as well as Haiku, not with Windows, so I might end up taking the Haiku disk out and put it inside an USB 3.0 case and boot from there instead than from internal drive, leaving the PC only with Windows 10 (can’t get it installed on external drive) and Silverblue.

Other option is that having each system drive with their EFI partition also allows to boot each drive from within the BIOS, so no need for GRUB to manage the triple boot, then should need to tell GRUB not to autodetect other OSes, which is besides EFI boot partition separation, what I presume, the cause of all issues with multiboot.

Multiboot has proven feasible with Silverblue, though not without issues, and not recommended to those with a weak will? or lack of patience?. Nonetheless, I’m not sure yet on how I will change this process in the near future, though having external drives for some things seems to have plenty of winning tickets. We will see.

Silverblue as a Daily Driver

Using Silverblue as a daily driver has been a mixed experience. I like the idea of an immutable system, with software updates related to the “software developer”, and system updates being “atomic”. This approach seems less prone to issues later on, and pinned deployments warrant that in case of trouble, user can go back (rollback) to a safe working state; I like that. I also think this is a very good option for a Linux Phone operating system, and regarding this, we will see it very soon, as this year 2020 seems to be the year of Linux Phones with the Librem 5 and the Pinephone available now, and plenty of communities working on bringing various distros to these devices. Hopefully I will get a hand on one of them and check it by myself soon too.

Software

I use this PC mostly for game development on my free time, I’m not a GAME DEVELOPER though, I can do simple things, and improvement goes at a very slow pace as have to share the free time among a variety of matters. Being Silverblue an immutable system, I tried to install everything as Flatpak when possible, and if not, as AppImage, that way, I would have the least layered packages possible, which in the end, is one of the goals of Silverblue’s approach, system software updates follow a different path than software updates. The software I use for this purpose is (all OSS):

  • Godot Engine: 2D and 3D game engine.
  • Codium: Coding Editor, OSS version of Microsoft’s Visual Studio Code, to code with GDScript. GDScript is similar to Python which is what I use when I want to program some software (no, I’m not a software developer either).
  • Inkscape: Vector drawing software. I use this for logos, 2D characters, textures, blueprints for 3D models…
  • MyPaint: Freehand painting program. I use this to paint textures, backgrounds, characters…
  • Gimp: raster graphics editor. I use it for textures and backgrounds, processing the images, apply filters…
  • Blender: graphics software toolset. I use it for 3D modelling and animation of any character/element of the game, as long as it’s a 3D game.
  • LMMS: digital audio workstation. I use it for audio effects and soundtracks.
  • Audacity: digital audio editor and recorder. I use it to record and process audio, to use directly or to pass it to LMMS.
  • Musescore: scorewriter. I use it to write the score of the soundtracks, so I won’t forget and can play the score back if needed.

Then I use the common ones, those that everyone uses. So, before digging deeper inside the ones I use for gamedev, I should point out that I’m using the Flatpak version of Thunderbird, and yes, can open attached files from thunderbird though with a bit more interaction:

Img. 7 – Opening attachment in Thunderbird Flatpak

Drag and drop attachments don’t work on Thunderbird Flatpak and need to be attached by pressing the Attach button and selecting the file from the file browser.

Saving files, depending on the software used, allows them to be saved anywhere on the system or just on certain folders inside the /home directory. This is due to how different Flatpaks deal with permission to access the filesystem. When packaging a Flatpak it can be set to be fully sandboxed so only has access to /home folders, or can give the Flatpak some extra permission to gain access to the filesystem, which is what I need, because I have different hard drives with different partitions, each for its own purpose. My personal hardware configuration does not ease the process, I know. Had I have set everything inside /home would have freed me from these troubles. I know.

GODOT + CODIUM: I started this two with their Flatpak version just to find out that I wasn’t able to integrate VSCode into Godot. My goal was to use VSCode as the external editor for Godot’s GDScript, but being both software Flatpaks, it was not possible, or at least I wasn’t able to achieve the desired result.
Then I decided to move to direct release for Godot, and to Codium because Codium seemed to be the only available AppImage version of VSCode. With this versions chosen, I finally could integrate Codium as the external editor for Godot. Since that moment, both have been running side by side all the time.
Actually, was thanks to this issue why I found VSCodium, and been happily using it since.

Img. 8 – Godot and VSCodium side by side

INKSCAPE: It didn’t abide to my GTK theme pick, thus I hade to change the GTK theme to Adwaita Dark each time I use it so I can really see what tool I have to pick and where. I already have some sort of muscle memory of where the tools are, but better check with your eyes too. This is not an issue with Silverblue itself, but an issue with the theming system regardless of the distro of choice, as I’ve found that some software integrates theming better others.
This Inkscape thing is just annoying though it does not affect Inkscape’s functionality.

Img. 9 – Inkscape (Adwaita Dark-Left / ArcDark Tangerine-Right)

LMMS: I also started using LMMS as Flatpak, though I found that there were some missing files (STK) in the Flatpak and was not able to perform certain tasks. When trying to use some instruments, there was an error as noticed by Missing files from STK on LMMS. I found this site when I was trying to figure out what was going on with LMMS and how to fix it. Thanks Filipe Teixeira for your guide. Nonetheless, I ended up using the AppImage version of LMMS as it comes directly from the developers, and it doesn’t have that STK issue.

Other than those, I haven’t found any issue with these software that should be pointed out here, though I presume it might be because I only scratch the surface of the software. Maybe if digging deeper, issues will start to arise.

Hardware

Regarding external hardware, I only use an USB microphone, a KORG microKEY 25 USB keyboard, ZOOM FX processor with USB for guitar, and a HUION WH1409 pen tablet.

The microphone as well as the guitar/bass FX processors both have USB to connect to the computer so, if one fails the other would too. Luck here, one works, so the other works too. Yes, I can record audio from the microphone and guitar FX processor in Audacity, it can’t be done inside LMMS yet because the feature is not present.

Img. 10 – Audacity recording. Top track, USB microphone. Bottom track guitar FX USB processor

Audacity does not let me pick which connected device (microphone or FX processor) to use, so have to be careful with what I do when recording in order to just record what I want to. Well, mostly record microphone audio when recording FX processor, so have to unplug the microphone.

With LMMS, the keyboard is there and can be selected in order to create music. I had to do some doc reading to understand the workflow of LMMS, because the first time I used it I was like WTF, where is everything, what do I do and how.

Img. 11 – LMMS recognizing MIDI keyboard to play music

The keyboard can also be used with MuseScore, first setting I/O to PortAudio instead of PulseAudio to write music but have to be aware that PulseAudio only has one MuseScore ALSA Playback ON as in Img. 12. In this case, the more does not mean the merrier. Setting this is a must if want to play the keyboard and listen to something while notes appear on the Score. PulseAudio Volume Control is a must to identify issues here.

Img. 12 – MuseScore settings for using keyboard as note input

There is a catch with audio though. While sometimes things seem smooth, most of the time I get some sort of noise coming out of loudspeakers (Display loudspeakers, I should get some small cheap studio monitors, I know), and I presume this is due to using audio through DisplayPort. I presume, I don’t know for sure, because sometimes there is some noise, sometimes the noise is bigger and can hardly hear notes in MuseScore, and sometimes, there is no noise. Weird. Having several audio software opened at the same time also helps increasing the noise.
Not that this is a Silverblue issue, as I had experienced same “effects” when using Ubuntu.
I sure need to review with more detail the Linux Audio Handbook so that I can fix the noise issue here. Maybe using external monitors connected to the analog outputs of the computer would eliminate the noise. Will check that again if finally get the studio monitors.

Now, one of the biggest issues I’m experiencing relates to the Huion WH1409. This pen tablet has two connection options, USB wired and wireless. And the first issue is that I can’t use the pen tablet wired, only wireless. This is a big drawback, as it’s battery powered, so if battery drains, then have to wait until it’s fully charged again to keep using it.

Yes, having a pen tablet is such a big improvement over using mouse with Inkscape, MyPaint, Gimp, even Blender, that not being able to use it properly is frustrating.

The issues do not stop there though. When using the pen tablet (wireless) with any software, be it Inkscape, Gimp, MyPaint or Blender, sooner or later, the pointer disappears from the screen, ending up blind. Yes, there is the mouse pointer on the screen, and if you move the mouse, the mouse pointer moves, but when you move the pen on the tablet, nothing happens until you press the pen against the tablet, then is when really know where you are going to draw. Yes, I have the pen tablet drawing area to match the whole screen, so sort of know where I’m going to draw, though precision is completely gone.
I thought this issue was related to the Huion pen tablet, though it seems related to Wacoms too. I have an old A5 Wacom, wired, recognized by the OS as well as the pen buttons, and tablet buttons, and the same “hide and seek” feature is present.

Besides, once this “hide and seek” feature appears, it makes Inkscape, Blender and Gimp unusable; yes, still can use MyPaint, though in “blind mode”. By unusable I mean that while I can select the tool to do whatever I please on the file I already have opened, nothing is being done. Can’t paint on a layer, can’t select whatever in Gimp, can’t do any figure in Inkscape, until reboot. I presume this is related to the wireless USB key Huion provides, though I wasn’t able to prove otherwise as can’t use the digitizer with the USB cable.

What I guess here is that Silverblue sees the pen tablet as a display, not as a digitatizer, and finds itself with two cursors, mouse and pen. Smoke starts to come out from its ears and ends up deciding “the mouse has the cursor”. Using Silverblue on a tablet does not have this issue because there is no mouse, and the pen acts as a pen and a mouse. So the pointer is always there.

This is by far the most annoying issue I’m experienced when using Silverblue, followed by the noise in audio.

Little treats

There are also other minor issues hanging on there. Some I presume are not related to Silverblue, but to the setup, and are more annoying than critical bugs that interfere with the workflow. There are a couple that I’m not sure if they are related to the shell extensions I have installed, or to Silverblue, though it seems they have more to do with the Dash to Panel extension.

Img. 13 – Software list

One of them usually happens after some time using the computer (Img. 13), and makes the software list to travel across the screen from left to right, then disappears and there is no way to launch software by clicking, has to be done by typing in the search box and press enter as nothing appears there. Yes,, can launch the software from the terminal, that is always there too.

Another minor issue has to do with the clock in the panel, sometimes it shows the date, sometimes it doesn’t… ???#@!!>>

Img. 14 – Clock in Panel. Date is there, then it’s not. Another “hide and seek” game

This are more aesthetic than anything, though quite annoying as they just happen without changing anything in any setting. Witchcraft?? Or just simple plain Bugcraft…

While I don’t have any Pomodoro technique software installed to let me know when I should start resting and get back to work to be more productive (always according to the Pomodoro technique), sometimes Silverblue decides it’s time to get some rest and it Logs Out the current session by itself bringing me to the Login screen. Login back everything is gone and if unsaved work was there, it’s all gone.
This is also one of the big issues that I’ve found these months, thankfully, it doesn’t happen that often to be a problem, also because I do save often. It’s true though, that I wasn’t checking for any pattern when this issue happened, and it doesn’t happen every week. Yes, I should have checked the logs. Now that I write this down I remember the logs. Will do.

Conclusions

These three months using Silverblue has been quite an interesting experience. Overall, it’s been just about the same of using Ubuntu for the past years, more or less the same issues which proves they are more related to the Linux ecosystem than to a particular distro. I’ve been using this on a full AMD computer, and not sure if any issue is related to that.

Installing Silverblue is quite straightforward and easy (at same level of regular Workstation) if you let it do its stuff. I you want something more, let’s say, special, you can do it, and depending on what you want, would need more or less research and patience. Multiboot is tricky but doable. Actually, with the increase of speed of USB/thunderbolt interfaces, I’m seriously thinking about moving some OSes to external drives and boot from there anything that is not critical.

I tried to keep all software Flatpak whenever possible and AppImage whenever not, to abide as much as possible to the immutable system philosophy. Not layering anything that could be installed as Flatpak or AppImage, and it’s coming out quite OK for now.

The system overall has proven quite stable. I haven’t experienced any crash nor any crash alert as those I was experiencing daily with Ubuntu. There is the Logout-Login issue though, that it’s a pain in the butt, but it doesn’t happen that often to be obnoxious. I presume this would be fixed soon.

Codecs for audio and video still need some package layering, and once this is solved, playing every file, be it audio or video, is fine. Only can hear that bothering noise when using audio producing software (Audacity, LMMS and MuseScore). I experience that noise regardless of the software I use, though it might be related to DisplayPort audio out, and if using two audio software at the same time the noise issue is more noticeable. This certainly needs to be fixed.

Hardware usually works well, being the worst issue the pen tablet “hide and seek” cursor game. Not sure if this is related to Linux, Gnome, Silverblue or what. This is certainly a must to be fixed in order to properly work with the device.

Aesthetic issues are common across distros, as not all software uses theming as expected. Expected, expected by the user? expected by the theme designer? expected by the software developer? Too many expectations, not easy to match. This is something that is not a real issue though. I remember when using MacOS, even own Apple software didn’t meet their own HIG, and interfaces vary a lot from one to another. Windows has same issues, though seems Microsoft tries to be more consistent and third party software varies the interface way too much. This HIG stuff seems too easy to set rules, too hard to abide those rules.

Taking into account that Silverblue is still a baby wearing diapers, and still has a lot to learn and improve, I can tell by my short experience that it can be used as a daily driver for most people, once you overcome some differences in workflow or, if you follow the default install settings. With default install settings there won’t be much difference to any other distro. I might change my opinion later on once I do try the first rebase when Fedora Silverblue 32 is out and I do the update.

Nonetheless, I personally do like the idea of updating software by the developers of that software, and updating the system by the developers of the system, thus letting the user to gain access to new versions without having to wait for the distro to include them in the repositories, or adding external repositories. Regarding this, I would like Flatpak, AppImages and Snap to agree on one single package format, though, then again, this is linux and this is why there are so many DE, distros, package formats, package managers, themes, icon themes….

I’m quite confident that Silverblue will evolve into a much mature and stable Spin, even the default Fedora Spin, very soon, and not just for the desktop, but also for mobile.

So, unless you have a special need to use some software that is not available as Flatpak or AppImage, or some of the software you use is crashy, bitchy, noisome, creepy, under Silverblue, anyone could use it as a daily driver (once the codecs issue is fixed) right now. My personal opinion, of course.

Last word

There is a topic I didn’t go too deep into, the Toolbox, mostly because I haven’t really used it. I did some testing though, creating a toolbox and installing Glade and Gnome-Builder there, then add the launchers to the software list. The purpose of this was separating Software development from Game development, in case I should need to add whatever package to the system, better add it inside the Toolbox and not mess the OS. This looks appealing and promising too (opinion based on my ignorance, I might be mistaken though).

As didn’t use it that much, not much to say about it, though it deserves its own review by someone with the knowledge and expertise on containers that Toolbox deserves, and that’s not me for the time being.