Embracing Open Source Part 2: Linux

This post is a part of my Embracing Open Source series. You can read the last post here, or if you are particularly interested in a related topic or want to get in touch with me about the series, please send me a message.

Linux is a tough topic to wade into, but this will be a pretty general overview of my path into using the open source operating system for the last year and change, as well as some general recommendations and best practices to keep in mind when trying to dive in yourself. My recommendations shouldn’t be taken as gospel, and everything I say is up to your interpretation anyway, so if you have a different preference, then that’s great! Part of what makes Linux such a great OS to use is that there’s so many options.

Like I wrote in my previous post, I’ve been a casual observer of Linux for a long time, only dipping my toes in here and there. At some point in the fall of 2023, however, I decided I’d like to try to fully dive in to running Linux and only Linux as much as I could. At first, it started as a kind of fun challenge for myself, but I quickly found out that I just prefer the way Linux handles a lot of things. Here’s how things progressed for me.

In late 2023, I installed a second hard drive in my primary desktop PC. I installed Manjaro to it so that I could leave the Windows drive intact for my wife to use whenever she wanted to use my computer for something. Over the next year or so, I made small modifications to the system, tinkering here or there when I tried to do something and couldn’t or wanted to use a new program that wasn’t in the default repositories. I figured out how Systemd Mount Units work, installed the KDE Discover store, set up flatpak, and used Proton with non-steam games. I dipped my toes ever so slightly into the terminal. I even tried to install some things from the AUR (Arch User Repository) which didn’t work, but I assumed it was something I was doing wrong.

Over time, I started to understand what kind of OS I’d installed. My previous Linux experience was with Ubuntu and Linux Mint, both of which do major releases once or twice a year, with minor updates in between. Manjaro, on the other hand, is a rolling release. That means that packages go live very quickly without being held back for a major version change of the underlying system. I liked this change. It felt like I was getting new features more frequently and stuff was staying up to date better. I also was having less in the way of programs insisting that their dependencies were out of date than in my previous experience. Overall I had a good time. There were problems, though, that I would only start to discover later.

Earlier this year, I switched to EndeavourOS, which is less of a distribution all its own and more an installation script that runs after a basic Arch Linux install to set up some basics that Arch normally doesn’t give you right off the bat. Manjaro is also based on Arch, but they have different repositories and a different methodology for package releases, which means packages can be out of date. Normally this isn’t a big deal, but anytime you try to use the AUR, those build files will often insist on having the latest packages and will fail if they aren’t available. Overall, Manjaro feels like it’s bolted on to the existing OS, while EndeavourOS feels like a layer of helpful tools that floats on top.

My current EndeavourOS experience is that the AUR works, I use the terminal a lot more, and I’ve had to fight with a few things here and there to get everything working just right. It’s not all roses, but if something isn’t working quite as expected, I usually can figure out what is going on and fix it. More reliance on the terminal is kind of a blessing in disguise. Oh, and I’m using Hyprland, which is a tiling window manager (more on that in a bit) that looks really snazzy and is a joy to use, but is also completely different to how I used to use my computer.

Picking a Distribution

Okay, so you’re feeling emboldened. Maybe you want to install it on a virtual machine first. Maybe you want to just dive right in. Either way, you need to pick a distribution. Linux itself is just the kernel. You can’t really use plain Linux as an operating system, so maintainers and developers will build out distributions, versions of the OS that are the same kernel underneath, but might have different packages surrounding that kernel. There’s a few things to keep in mind when picking a distribution to try. How big is the team behind it and how big is the community? Does the distribution use a rolling release, or a set release schedule? Is the distribution based on something else, or is it its own top level thing? Is it immutable? Let’s go through these one at a time.

First off, the team size behind a distribution and the size/activity level of the community is huge. Unlike a commercial OS, no one is being paid to support you if something breaks or isn’t working right. The community around a Linux distro and the size of the team behind it does a lot to show you how likely it is that someone out there has an answer for your question. Ubuntu, for example, has a big team at Canonical running the show and the community is pretty extensive. Arch, on the other hand, has a slightly smaller community, but the activity level and knowledge of that community is huge. Generally, I’d suggest staying away from distributions with small teams or communities. Stick to well recognized names. Fedora, Arch and Ubuntu are all good starting points. Which one to go with will depend on the other factors.

Next, consider the stream. Is the distribution you’re considering downstream from something else? Some distributions are based on others. For example, Manjaro is based on Arch. Ubuntu is based on Debian. Linux Mint is based on Ubuntu. Sometimes this is a benefit. If something isn’t working in Linux Mint, the likelihood of a solution for Ubuntu working is pretty high. That said, every layer of abstraction from the upstream sources means updates will take longer to get to you and you might have to contend with distribution-specific changes which negates the increased community size from being based on something else, like there’s some issues I had in Manjaro that couldn’t be fixed by looking for Arch knowledge because those issues came from the way Manjaro’s maintainers handle packages and hold some back for more testing. I decided to go with EndeavourOS partially because it leaves basically all of the base Arch distro intact, while just doing some of the setup footwork for me.

Windows and Mac users will be used to the periodic release schedule of something like Ubuntu. Every year, Ubuntu releases new versions in April and October, just like Microsoft will do their “H1” and “H2” releases for the first and second half of the year. You still get updates in between, but those updates are for the packages and programs on top of the base OS, not anything core to the OS itself. This means that if a core component of the OS gets a new feature, any developer that wants to use that feature can’t update until the next major OS release. This release methodology increases the stability of the OS, but also means that at worst your packages may be six months out of date. It also introduces the risk of a version upgrade breaking things because so much is changing at once and maybe not all of the programs you use or their dependencies are ready for the jump when you do the upgrade. A rolling release, on the other hand, is meant to basically be always up to date. Every time a package, core or not, gets an update, you can apply it. It means that every time you update, something might break, but in actual use it means developers can keep their programs up to date and using the latest features as much as possible. Just make sure you update at least once every couple weeks or you might find that the system refuses to update or something else breaks. Arch, OpenSuse Tumbleweed and distributions based on them are rolling releases. Linux Mint, Ubuntu, Fedora, and Debian are all periodic releases.

You may have heard of an Atomic OS or an Immutable OS. These distributions use layers of abstraction to make the core of the OS completely unchangeable by the end user. This is how Mac OS is built these days. Every install is exactly identical on the system level as long as it’s using the same OS image. This is nice because users can’t destroy their install nearly as easily and backing up or restoring the OS is trivial. The downside is that some changes that a user might want to make become more difficult and will be wiped out with new updates because the core of the OS is completely overwritten when a new version is installed. Fedora Silverblue, Bazzite, and Steam Deck OS all work this way. Most other distributions don’t. I like to get under the hood, so I avoided these for my main computer, but my home theater PC doesn’t need to be as customized, so I put Bazzite on it.

Finally, after looking at all of those aspects, do a little bit of research into the intention and ideology of the team making the distributions you are considering. Read the websites, try to get a feel for what they want their OS to do. What is important to them. Compare that against what you want to do or are interested in. For example, this blurb is on the EndeavourOS home page: “Start your Endeavour with a lightweight Arch-based, terminal centric system ready to personalise and a stellar community at your side.” It tells you right away that if you aren’t interested in a system that is built to rely on the terminal for core functions, you should stay away. Likewise, if you are looking for a strong community for support, this might be a good spot for you. Compare this to Linux Mint: “Linux Mint is an operating system for desktop and laptop computers. It is designed to work ‘out of the box’ and comes fully equipped with the apps most people need.” They’re focusing on making things work with little configuration and are touting the idea that the OS comes with a bunch of software already installed. This might be a better OS for you if you just want to pick up and go without worrying much about configuring the system or dealing with the terminal, but on the other hand, maybe they’ve made some decisions about what software “most people need” that you won’t agree with, so you’ll have to go searching for alternatives or spend time removing junk you don’t want.

There’s one final thing to mention before we close; the Desktop Environment. if the Linux kernel is the core and the Distribution is the layer of core packages around that core, the desktop environment is the top layer of applications the user will be interacting with every time they use the computer. Sure, this means the browser or word processor, but also the file manager and general desktop. Unfortunately, there’s not a ton of guidance I can give here other than telling you to look at the screenshots of the various flavors of desktop environment available for the distribution you choose. Usually the big names are the most well documented and reliable. The two giants in this category are GNOME and KDE Plasma. Both of which are available on a huge number of distributions. Others, like XFCE, Cinnamon or Mate, are usually pretty good, but maybe a little less well supported with customizations. There is, however, a different category of desktop environment available. The Window Manager. These are basically the desktop environment alone with no bells or whistles. Some won’t even come with a taskbar by default. Naturally, these are much more difficult and time consuming to configure, but it also means that the configuration is usually portable between computers and there are a lot more options to set things up exactly how you like. Window managers include Sway, i3 and Hyprland, among others. If you’re new to Linux, I suggest sticking with the standard Desktop Environment options, rather than going for a window manager. If you’re interested in a more in-depth exploration of my window manager of choice, Hyprland, then watch this space. I’ll get to it sooner or later in this series.

I hope all of this is helpful to someone. Linux is a hard thing to build recommendations for, since the experience of using a Linux desktop can be so varied. Next time, we’ll explore Hyprland and how I’ve got my desktop set up with a tiling window manager for the first time.