Darshan Soni

@darshandsoni

From Ubuntu to Fedora to Solus

Originally published at darshandsoni.com on May 2, 2017.

This article is a reasonably long one, but it summarises my linux experiences so far and details the reasons I for me to adopt Solus as my daily driver. I’m not in a position to technically assess the developers of linux based distributions and I give them all credit for their hard work as Open-Source project developers. Instead, take this as one account from a run-of-the-mill engineering student who just needs a pleasant daily driver :)

1. Leaving Ubuntu

I adopted Fedora 2 years ago, as my first “distrojump” after a 6 year long Ubuntu stint. Ubuntu was my first ever linux OS and installing it flipped my computing world upside down. Nothing can replace the years of learning I had on my good old Hardy Heron, arguably Ubuntu’s most famous release to date. My reasons for jumping to Fedora were multiple and examined in depth below.

The desktop environment

The biggest of these was probably Ubuntu’s complete rebranding and shift to the Unity desktop environment. Although Unity became fairly stable and well received by users late in its life cycle, there’s no denying that when it was first introduced, it was incomplete and a big shock to GNOME 2.0 users. I have a theory that Unity was continually hated upon, even after it became a polished desktop environment, simply because there remained an entire strata of users who began their Ubuntu experience with GNOME 2.0 and had the rug pulled from under their feet. So while there were new users to Ubuntu post-2012 who saw and grew to love a very polished Unity environment, behind them was a generation of disgruntled GNOME 2.0 users. It didn’t get much better for the GNOME camp either because GNOME itself rebranded in its 3.0 release, making for a UX disaster that upset Linus Torvalds himself. That left a huge crowd of users flocking to other Desktop Environments to call home, myself included. Because of my busy schedule, I settled with Unity for a while. In the next few years, I frequently shuffled between Unity and GNOME 3, seeing improvements in them, but never quite feeling satisfied.

The PPA system

Ubuntu, with its Debian base was like home to me. My world never grew beyond apt-get and add-apt-repository. For one, GNOME 3 was trying to fix a lot of issues, but the frozen state of Ubuntu’s repositories made it impossible to get cutting edge releases of GNOME without adding other PPAs. And that’s all fine, until I began to add PPAs all over the place, just to test new sotftware. This became tedious hell when I made system upgrades every 6 months and found tonnes of repositories, conflicting packages, broken links, unmet dependencies… the list goes on. I basically broke Ubuntu so much that I had to nuke and pave. And this happened over and over again. It was becoming very evident that given my interests in getting updates quicker, I needed to switch to something else. It’s not that Ubuntu was bad in this sense; rather, I now had different purposes!

Boredom?

Finally, I felt I was on a plateau with my Ubuntu knowledge. I needed a change in working environment; something with finer grain control and a new routine! This isn’t to say there was nothing else to learn on an Ubuntu machine — far from it really! It was just one of those situations where a change was needed and one that didn’t involve peppering my machine with developer PPAs.

So there you go, enough weight behind the push factors to lead me away from Ubuntu.

2. My Fedora Era

Fedora really appealed to me. It was known to be bleeding-edge, yet remarkably solid, in part thanks to the work of Red Hat in supporting it. I got my introduction to the rpm world and got my hands dirty with the dnf package manager (The yum package manager had just been deprecated when I flashed Fedora on). Loved it. For me, DNF just handled things so much better than apt-get. I didn’t get as technical with it, but it seemed rock solid with the visible transaction checks and a richer list of package versions. I got to experience bleeding-edge GNOME 3 and was excited about having software way before omgubuntu could spread the word to it’s ‘buntu crowd - tongue heavily pressed to my cheek there! It was all fine over the 2 years of use but eventually its fair share of problems also came by. Mind you, I still have a lot of affection for the Fedora project. It has by far been one of the most reliable systems I’ve ever used and RedHat is without a doubt a remarkable example of SaaS done right. Their documentation is very human-readable and the software base is rock-soid, which is to be expected given their reliability clientele. The fedora forums were a very helpful space: very little “noob shaming”; prompt replies and concise threads thanks to the userbase being, on average, more experienced than the wide variety of Ubuntu users. I don’t have a metric for that last statement… just a feeling I had. So anyway, what could possibly drive me away from Fedy?

KDE Multiscreen woes

My frustration with the direction of the GNOME project kept growing. It seemed to me that they were constantly driving towards a “dumbing down” of their interface: taking away power user elements from Nautilus, the default file manager; hardly introducing an ecosystem of useful extensions; becoming very resource heavy and bizarrely driving away from the desktop experience to a half baked tabled interface that had no practically viable hardware to match it.

All these issues frustrated me and had me looking for another desktop environment. One of my colleagues pointed me towards KDE, being a longtime fan of it. I had some reservations about it, and to know why, you have to go way back in the day. Long before stable, beautiful Plasma 5 that we know today, to the frustrating years of KDE 4. In transitioning from KDE 3 to 4, they basically pulled a “GNOME 3.0”. A bug-ridden interface that alienated users. My only experience with it was a live Kubuntu iso that played up massively with my ageing Acer box and I never looked back at it. So I figured, ok, I’ll give KDE another chance then! I just transitioned to a new job so it was the perfect time of quiet to try something new. Oh creamy hummus, how I love what I saw! It was so pleasant on the eyes and the interface was far more intuitive than GNOME. The Qt framework was really made it a coherent space. Then, I discovered the level of fine grain control I had over all my settings. I’m talking kioslaves, krunner, drop-down terminals and all the other hidden goodies. Then you have tools like KDE connect that were so simple, but did their job so well. The Unix philosophy taken seriously I tell you!

But it all came crashing down with multiscreen woes and package bloat. Now, these aren’t core KDE problems and I do sympathise with KDE devs on this. They’ve frequently talked about why multiscreen is a complicated thing to maintain and it certainly makes it trickier in that KDE is used on so many platforms that there’s a blurred line between distribution level bugs and global desktop environment bugs. A multiple monitor bug with the KDisplayManager popped up during one of my busiest times, rendering any secondary display completely useless. I won’t go into the technical details of the bug, but essentially, my screen was half blank at all times. Rolling back didn’t work as it would re-update when I pulled in any other packages that depended on it. And uninstalling it worked, but rendered my secondary display useless. With no time to deal with it and a big backlog on the developers’ ends, I kicked it off and looked for something quick and easy to get going.

So I got myself Xfce

Hello Xfce. Why Xfce? It’s old-school gtk2. Barebones but modular. It was my GNOME 2.0 (MATE was still experimental in my mind then). Xfce kept me going for a few months. It was minimal, extremely stable and modular. I was even more familiar with it because I swapped crouton on my commute-friendly Chromebook for a fully-fledged single linux distribution, GalliumOs, which is a Chromebook adapted Xfce-based distro that runs like butter on low-end hardware. Xfce to this day, remains something of a “homely” environment for me. Give it to me anywhere and I’m fine with it. Sure, the stock version of it can be ugly but most of my desktop work is heavily keyboard based anyway. But Xfce is an aging DE. It still uses gtk2 — even MATE is moving to gtk3 now! It’s also known for having spells of no updates at all, with hardly any adaptation to changing multimedia content and user interaction styles. So I was ready for a new environment!

Too much bleeding-edge?

Look, Fedora is through and through, a bleeding-edge distribution. I get access to the latest packages, but I have to accept breakages when they’re untested. The project doesn’t hide this reality and truth be told, it is remarkably stable for a bleeding edge distribution! Again, it’s probably a matter of my needs not being met instead of an issue with Fedora itself (apart from that little KDE display settings debacle). After giving it some thought, I realised that Fedora would be fine on a dev machine where I’d test stuff continuously. It seems that over the past few years, my Toshiba laptop has become a bit of a “base” for me: Sturdy enough to handle my engineering projects, but also holding its own as my home entertainment system. All I do at home is connect it to a nicer display. So I needed something more stable for a home computer. Perhaps I overcompensated for the out-of-date Ubuntu software with a zealous Fedora machine that chugged down updates sometimes more frequently than daily.

What I needed was a “curated, bleeding edge machine perfectly cut out for home computing use”. If any Solus core dev read that statement, I suspect they’ll be tingling with excitement! I’d love to have new software on my machine, but I don’t need AUR level depth; most packages are redundant anyway, there’s tens of wrappers for every core package I’ve seen.

3. Adopting Solus

I had been following developments at Solus ever since their relaunch from EvolveOS. What I saw really excited me. The close-knit team of developers got open-source projects and clearly communicated why Solus is being worked on and exactly who it’s for. It’s not just another “distro” based off of something else that ends up just containing a kernal, preferred desktop environment by a main developer and a menu of options that comes preconfigured for ease of use. No, far from it! Solus instead looks back at all the other operating systems and critically asks: What did not work? What can be made better? What should be rewritten? Where can we eliminate redundancies from older systems? And these questions need answering if you’re going to take modern operating systems to a whole new level.

Budgie desktop as an example

A good example of this “learn-from-old-mistakes” approach is with the flagship desktop environment, Budgie. I’ll be honest, when I first saw Budgie, it didn’t appeal to me. I groaned at the prospect of parsing through the pros and cons of yet another desktop environment. But once I tried Solus out and then read into the development of Budgie, a lightbulb went off. Budgie was created for a specific purpose: A home computing environment (think desktop, home laptop connected to peripherals etc). Why aim to develop something for every use case and handle it badly? Why create an interface that displays beautifully on a tablet device that doesn’t exist, with the market clearly indicating it is not interested in it, while sacrificing a good experience on a small but guaranteed chunk of the market that demands a good desktop environment? Budgie was written to specifically address this use case. It doesn’t imagine that it could appear on a tablet somewhere. Nor a phone. Nor a server. It does one job and does it brilliantly. Budgie was written with gtk components as a base, but because its new, it didn’t need to import legacy cruft that the GNOME platform itself currently has. Or implement dated solutions like compiz when it doesn’t need that lag. Ikey Doherty, the project lead for Solus has talked in great depth about his experiences working with the GNOME shell and GTK in some podcasts. Realising that at some point, Budgie was not getting what it needed from GTK and the frustrations / limitations of working around it, the Budgie team made a decision to rewrite it all in Qt. Sure, it’s a lot of sweat and tears, but if you know what you want, why compromise with hacky solutions? Qt in their eyes presents a well-supported framework with a very helpful forum of developers and a homogeneous interface that allows applications to feel native. I really admire this work ethic.

Packaging

Solus also offers cutting-edge packages but has two huge advantages over other operating systems:

  • Carefully curated cutting edge packages ensure that I still get the latest of what’s out there, but a quality assurance that they work and can support a stable system.
  • Packages are built specifically for Solus with a preference to use native dependencies. This makes a huge difference for install times because you’re not getting a package that goes and looks for a dependency from another distribution written in another language that also requires additional compile time.

I have never seen a system that installs software as fast as Solus. In fact, the limiting factor has only been downloading the updates because North American users would receive it from Ireland. This is a problem Doherty seems to recognise all too well and after all, what do we expect from an independent OS that is funded by pure goodness of heart? To even have the download speeds we see right now is a privilege. Not one to accept defeat though, Solus now has a Patreon page which helps keeps the lights and cooling fans on. In due time, I’m sure we’ll get some nice global image distribution.

I had a nervous feeling about packages when I first tested Solus on some spare hardware. There’s no AUR, Ubuntu PPAs or Fedora repositories. Does that mean I miss out on a tonne of software? To alleviate my concerns, I had to do some in-depth studying. By that, I mean listening to 6 hours of podcasts with Ikey, Joshua’s packaging guides and a dash of “Sundays with Solus” videos. Then, one fine Spring day, I nuke-and-paved it on!

Solus seems to have every package I’ve needed so far; the community is highly responsive to package requests for missing necessities; building packages seems far easier and crucially, better documented than many other OSs. So, away goes my concern over packages.

Solus works like a charm

All in all, I have to say it’s refreshing to use Solus. I’m recording 3 second boot-up and shutdown times on a 5 year old, mid-range Toshiba laptop. I have some cutting edge software coming through pipes with a reassurance that they are reasonably well tested (at least on the stable repository), which is such a comfort on a “personal device” that I just need to be ready to go at all times. My development workflow has been a charm with all the usual tools like Atom, Rsync and rubygems ready to go. My home entertainment works out of the box — it seems to remember my settings as soon as I connect my external display with no need for tedious settings. I am very curious about the entertainment server, Plex, having never used it before, so more on that experiment soon! To the wonderful folks working hard on Solus right now, I tip my fedora to you!

Originally published at darshandsoni.com on May 2, 2017.

Topics of interest

More Related Stories