It’s another 10 year retrospective. Ten years ago was a time of transition for me, so there may be one-or-two more of these to come in the next few months. This time, I’m going to look back on ten years of daily driving Linux, and the various phases of my Linux journey.

My very first encounter with Linux was very brief. The first time I went to university (a course I never finished), the univesity IT team provided a CD with Ubuntu on it. I played around with it for a few days or so, but didn’t really know what it was, and threw the disc out.

From 2010-2013, I had used a MacBook Pro, but someone spilled beer on it at a Super Smash Bros. tournament. At the time I was utterly broke, well in the red. I had no insurance on it, and wouldn’t have been able to afford a repair. I was computerless for a few months thereafter. When I finally got to university later in the year and got some of that sweet student loan money, I bought a cheap, used laptop… which ran Windows 8.

I hated Windows 8, really hated it. After going from OSX to Windows 8… man, what a disappointment. Then I remembered “that Ubuntu thing” and thought hey, why not.

My setup history

I’m going to run through the various Linux systems I’ve had since that first install ten years ago. In case you’re not a Linux nerd, the two main definitions:

Distro: Your Linux distro determines the basic software that your machine comes installed with, and the main means for installing and updating software, via your distro’s software repositories and accompanying package manager. The major distros include Debian (and its child Ubuntu), Fedora, and Arch.

Desktop environment: Most distros come bundled with a desktop environment. This is the basic GUI and suite of applications on your machine. Think of the “obvious” differences between Windows and Mac. Windows has a bottom panel and a start menu (or did until Windows 11), and applications like Notepad, the Task Manager, and control panel. On Mac, there’s a top panel, a dock, the spotlight, the windows have 3 coloured buttons in the top left… these are the different desktop environments of Windows and Mac. But on Linux, the OS and the desktop environment are not the same thing — you can install a different desktop without reinstalling the whole machine. Major DEs include GNOME and Plasma.

2014-2017

Distro: Ubuntu
Desktop: Unity

This is where it all started. I installed Ubuntu as a dual-boot on my Windows 8 laptop, and kept it around even after upgrading to Windows 10. I was a mathematics student, so I was using TeXStudio to write my notes, playing with Python in a tiny cute IDE called Geany, and generally having a really fun time trying out this strange new operating system. I worked through William E Shotts' The Linux Command Line, which is still where I’d recommend beginners start. This is also the time I started trying vim a bit more, which I had tried on Mac but not seriously.

The Unity desktop was fine for me at the time; as it was my first install of Linux, to me that was just what Linux desktop was like.

2017-2018

Distro: Arch
Desktop: i3

This was a big jump. I had a friend at university who was also living in Linux typing up his notes, but using Arch with a “desktop” called i3, and he persuaded me to switch.

Arch is considered an advanced Linux distro. It’s ultra minimal — when first installed (via the command line), it doesn’t even have a GUI. That has to be installed separately, usually by installing a desktop environment. Arch also distributes cutting-edge software, with everything kept bang up to date, multiple times a day. The savvy user needs to be very confident on the command line, and restrained when it comes to installing and updating software: reading release notes, perhaps holding off on updates until others have reported bugs, and knowing how to roll updates back in case there is an issue. I was not the savvy user at this stage.

Moreover, i3 isn’t a true desktop environment — it’s a window manager, it displays windows and not much else. Specifically, a tiling window manager, which means by default, each window fills that screen, or the screen is automatically divided into sections that are filled by windows, rather than windows floating and stacking over one another. Because windows fill the screen, you have to make use of multiple workspaces to to open more than a handful of windows.

People who don’t “get” tiling window managers wonder why on earth you’d want this, but that misses the point. The point is that window placement is handled without the mouse. Apps are (at the configuration level) assigned to preferred workspaces, workspaces are assigned to preferred monitors. The result is that when opening an app, it is automatically placed where you want it, and accessible via a known keyboard shortcut (for example, my browser would always be on workspace 3, and hence always be accessible with Super+3). Within a workspace, app windows either share the full screen real-estate and can be navigated with arrow/vi keys, or are collapsed into a single “tabbed” window for full-screen use. There’s no getting lost in alt-tabbing, and no dragging windows around (or even worse, dragging between monitors).

Since I was pretty much only using this machine to write mathematical notes, this was ideal. My main workspace would be split between my text editor, the preview of the pdf I was composing, and the pdf I was studying from. Tiling these windows on a single workspace, occasionally jumping away to open the “browser” workspace was perfect.

typing notes on i3

As mentioned, however, i3 only displays windows. No other batteries are included. You want to connect to the wifi? There’s no built-in wifi menu or applet on a convenient panel. You either have to connect via the command line, or manually install a GUI wifi applet. And that’s the story for everything — you need to install all the other parts of your desktop manually. The lock screen, a dock or panel, an application launcher or “Start” menu, a calendar applet. Even displaying a desktop background requires an external application. And all of this is configured through one text file that essentially controls your entire desktop experience.

Truth be told, while I liked i3, I wasn’t really ready for this level of minimalism and DIY. Arch requires a certain level of know-how, as does i3. I was quite dependent on the friend who introduced me to Arch+i3 combo to get things to work, and still never quite got power management working.

2019-2020

Distro: Manjaro
Desktop: XFCE

Manjaro is a derivative of Arch, aiming to be a kind of “beginner-friendly” Arch that just works, while retaining Arch’s impressive software offering and rapid updates. There was quite a lot of hype for Manjaro around this time, and I did enjoy using it for quite a while. However, I eventually ran into problems with updates either failing or breaking my system, for reasons that I think are partially my fault and partially the design of the OS (such as practically encouraging a rather blasé approach to the Arch User Repository, a kind of vast crowd-sourced app store with minimal quality control). These days, Manjaro has fallen out of favour due to poor management.

On the other hand, XFCE is great as a traditional desktop environment. It’s stable, fast, lightweight, and reasonably customisable — just not particularly flashy. XFCE’s app launcher, Whisker Menu, is surprisingly powerful too. Manjaro’s default layout for XFCE is Windows-like, with a start menu and task bar. I tweaked mine to be more like a Mac, with the menus in the top bar and a dock

My Manjaro XFCE setup

It was when installing Manjaro that I realised I’d not booted Windows for over a year. I did not install Manjaro with a Windows partition. It was a full Linux system from there on.

2020-present

Distro: Pop!_os
Desktop: GNOME (with Pop shell), and sway from 2024 onward

After falling out of love with Manjaro, Pop!_os seemed perfect for my needs. It’s based on Ubuntu, so software updates are slower and steady. It has great support for discrete Nvidia chips in laptops (right clicking an app shows a menu option to launch with the discrete graphics). And, most intriguingly, Pop’s spin on GNOME introduces a tiling window mode: by installing a few extensions and configuring my keybindings, I could hit one shortcut to instantly turn GNOME into an i3-like desktop experience, but with the convenience of a full desktop environment.

I’ve been running with Pop!_os for about 4 years now, with the view that if it ain’t broke, don’t fix it. In 2024 I did get a second monitor, and was disappointed that Pop’s desktop doesn’t handle multiple monitors with anything like the grace of i3, so I installed sway, a spinoff of i3. These days I mostly use sway, but hop back into Pop’s desktop if I need something I haven’t configured in sway yet.

My only real gripe with Pop!_os is the developers, System76, have been working on a brand new desktop for Pop for a couple of years now, which means they’ve barely done anything to update the current iteration of Pop in that time.

Now

I do sometimes think about switching back to Arch, armed with more knowledge. Now I’m using sway, it would make some things easier — a lot of small applications designed for sway are not available outside the Arch User Repository, and trying to build from source has left me in dependency hell (the dependencies are also probably in the AUR). But on a cost-benefit basis, Pop has not not let me down for four years — why risk changing?

I cannot see myself ever switching to another OS — I use Windows for work, and while it does a lot of things well, there’s a lot about it I really hate. MacOS is good, but I don’t want to pay for Apple hardware, and I disagree with a lot of Apple’s business practices (irreparable devices, abuse of IP laws, proprietary ports, and general user lock-in).

What started as a simple protest against Windows 8 led me on a learning journey, and the adoption of the sensibilities of Linux. Linux users expect privacy and autonomy — the OS should not impose itself or attempt to extract more value from the user. Learning curves and rough edges are (currently) a price to pay for freedom from all that.