It has been roughly a month since I switched from using Windows 10 as my main operating system to Linux. The reasons for that have all been detailed in The Switching Windows to Linux Experiment blog post. Now I will share a few of the experiences I have made during the first month (it’s been that long already) and what I think about how well it is going.
Let me address the elefant in the room first, the distribution. I think that is likely the first question you, the reader, would ask. The short answer is Pop!_OS by System76.
(You really thought I’d leave it at that?)
The long answer goes like this: to simplify data sharing between operating systems I was thinking about maybe buying a NAS solution in the near future. Synology is known for good NAS storage devices for use at home and they also provide some nice features I would make use of. One of them is a real-time sync from a computer to the NAS, just like I am used to with OneDrive. And from there I could sync to some cloud service, Microsoft’s among them, and also to another Synology, like an off-site backup. I’d just have to equip my sister with one 😉. To bring this back around to the choice of Linux distribution: Synology’s sync client is only available as a DEB package. They do have RPMs for some of their other tools, but not the syncing. Hence, I wanted to go with a Debian based distribution. Otherwise I would probably have chosen Fedora.
When it comes to Debian based distributions, there are a few big names out there:
- Debian (obviously)
- Ubuntu (who, I daresay, provided the biggest push to Linux desktops at its time)
- Mint (being based on Ubuntu but doing some things differently)
Yes, Pop!_OS is not on that list, but they are making a name for themselves lately, from what I can gather. Mainly, because they provide good GPU driver and gaming support out of the box. But, how about I start at the beginning? Let me quickly share my thinking process and how I came to Pop!_OS. To get an initial impression, I have looked at all the distributions in a VM first.
Mint was kicked to the curb pretty quickly. I don’t like Cinnamon because it is too similar to Windows. Other than that, Mint does not offer any differentiating elements I’m interested in.
(You have to know, I don’t care about the Windows Start Menu at all. I really don’t understand what the fuss is all about when that changes.)
Ubuntu is one of the go-to distributions in my opinion. Now that they have backed away from their own desktop environment, although it wasn’t a bad one, I think it has gotten better again. What I really like is something many would maybe dismiss as a minor detail – their custom font. It is really beautiful in my opinion. Ubuntu now also provides an option of a minimal install, something I definitely appreciate – looking at you Windows 10, with your Candy Crush crap in a "Professional" edition of the operating system. Ubuntu was a hot contender.
Debian did win the race initially, though. I like a pristine experience, with no modification of any kind. I prefer an unmodded desktop, no matter if it’s on a computer or on mobile. Short sidenote: I, for example, don’t fancy any of the 3rd party Android launchers that handset makers put on their devices. I would want an Android experience the way Google designed it. It’s the same way with the Gnome desktop and one of the reasons why Ubuntu didn’t make it. I also thought, why not go with original and try that out? Let’s see how good or bad Debian is as a desktop distribution. This is the reason why the first of my blog posts about solving Linux issues focused on Debian. To be more up-to-date, I went with the "Testing" branch because I wasn’t sure how well the older kernel would support my hardware, especially the GPU. I know that Debian stable can be quite conservative. But, that decision came with a serious drawback. More on that in a second.
The initial installation was simple, but I’ve hit a few obstacles pretty early which I addressed in the respective blog posts (that are also much more focused on the problem rather than the story 😉). One was a bug in one of the apt configuration files that prevented updates and another about how to install the NVIDIA driver. Since I knew what I was getting myself into, I didn’t fret about it. It’s called "Testing" for a reason. What I honestly did not expect or appreciate was the fact that installing the Gnome desktop environment also installed a bunch of unnecessary Gnome tools and games and other applications, all of which I removed manually using apt or the software center (because I couldn’t find the package’s name). To provide some automation, I created a list of all the packages and all in all it contained the names of 39 applications. I was surprised to even see Evolution as part of the standard installation. Although that was an unwelcome annoyance it didn’t stop me. What did though, was that I could not install VirtualBox without any hassle. I have found these instructions but on the Debian Testing branch I ran into the following error.
The following packages have unmet dependencies: virtualbox-6.1 : Depends: libvpx5 (>= 1.6.0) but it is not installable Recommends: libsdl-ttf2.0-0 but it is not going to be installed Recommends: linux-image but it is not installable E: Unable to correct problems, you have held broken packages.
So… that was the point when I decided that I do not want to deal with this and wiped Debian’s bytes with Pop!_OS.
So, here we are, at the end of the distribution safari. I am now running Pop!_OS ever since (which is terrible to type by the way). The NVIDIA driver was installed right out of the box, which is nice. Additionally, being based on Ubuntu, Pop! also supports PPAs. It also comes with only the most important packages installed. No Gnome games or other nonesense.
Which brings me to the desktop environment section. As I have mentioned earlier, I prefer an unmodified experience like the developer intended it to be. System76 adds a few extensions to the Gnome shell out of the box, but they are non intrusive and do not change the usage-patterns dramatically, like Ubuntu does with its dock. Don’t get me wrong, it can be a very useful thing and I acknowledge that. I just think the Gnome shell works well as it is, especially if you can train yourself to use ALT-TAB more often. I also enabled the hot-corner support in the upper left. One flick with the mouse and I have a nice overview of the open windows and my favorite applications. I really enjoy how Gnome 3 works. It is so much unlike Windows and yet I do not feel hampered in navigating the system. KDE may be more powerful and more power-user friendly. In its initial configuration, like Cinnamon, it is too much like Windows though. You can, however, configure it with a global application menu like macOS and that is something I’d like to try out.
The reason for that is how Gnome and KDE applications, or more generally, GTK and Qt based applications, look and feel in the opposite environment. When I develop C++ applications I prefer to use the Qt framework. Therefore, the better environment for me to be in is KDE because then my applications and the tools I use for developing them, like Qt Creator, would look and feel "right". Out of the box, bare-metal Qt applications just don’t fit in visually. There are some things you can do to improve it, but it’s still not perfect. Unfortunately, I am someone that cares a lot about a consistent experience and this is something I envy Mac users for. I’m not sure how Apple managed to do it, but every application I know feels as if it belongs there. Ok, not every application. There is one configuration tool for my Nacon gamepad which is ugly as hell, works like crap and is a shitty piece of software on any operating system. But gamer stuff is always disgusting, sadly. Anyway… Desktop consistency.
It hasn’t been perfect the last time I had tried Linux and there still are issues. I don’t mind putting in a few minutes to install a tool and maybe write a configuration file. I do mind having to research for hours and try several things to get a somewhat satisfactory result. Right now, I’m not 100% happy how the few non-Gnome based applications look and feel. Let me give you two examples.
When I use a dark theme, e.g. Pop-Dark or Adwaita-Dark, and I open a context menu or an application menu in VS Code then for a split second the menu blinks bright white before it looks as expected. It’s like it’s being painted in the light theme first before the dark colors are applied. That’s pretty jarring when everything else is dark, like a little flashlight blinding you for a second.
The second example is about the music player Clementine. My keyboard has hotkeys for volume up and down. When I change the volume while Clementine is in the foreground then the window blinks briefly. Annoying.
Not to mention the font rendering or the load file and save file dialogs that look and behave differently. It’s little things like these that stick out to me. It isn’t significantly better on Windows, especially since Windows itself comes with about three (or so) different UI themes. There’s the modern stuff that makes everything look as big as if it is designed for a clumsy baby with its cute tiny hand. Then you have the "regular" Windows theme that applications like the Explorer use and finally the legacy crap that has carried over from Windows 98. I have written a blog post a while back where I discussed the different styles that could be found in a Windows Insider Preview Build. Windows has changed a lot since then, so please only use these pictures as an example for what I’ve tried to explain. What is mostly consistent on Windows though, is how fonts are rendered, how menu bars look, how file save and file load dialogs look – although apps like Gimp still defy that. To put it short: Windows has its own problems with theming while still holding a slight advantage here. At least in my opinion.
Putting all of that aside, from a mere user’s point of view of getting things done I have managed to get almost everything up and running to a state where I do not have to rely on Windows based software any more. There are still a few kinks to iron out and I may get to them sooner or later. It is only a matter of time until it annoys me too much. For example, I haven’t put any time into ripping music CDs and I have one laying on my computer waiting to be converted to mp3. I am just too lazy to bother at the moment. But that is the only holdout for which I do not have a solution yet. Initially, one of the bigger question marks I had was around OneDrive syncing. I’m still working (aka procrastinating) on a final solution to make it more convenient and then I’ll publish a dedicated blog post about it. I have a reliable way of syncing to and from OneDrive although it is not as simple as on Windows. Since I do it "manually", I must be careful when I sync, the direction of the sync and when I change files locally in order to not overwrite anything. As of now, it’s not bothering me enough to finish this project.
Looking into the future, what are the odds of sticking with Linux? I’m not sure yet. I think it has come across that I enjoy using the Gnome 3 Shell. I can get all my things done, even if some require an additional step or two. Honestly, I haven’t gained much if anything at all – if you look at it objectively. It’s was not really an ideological decision, but it slightly steers in that direction and that is something I try to stay away from. I have logical reasons for relegating Windows 10 to gaming only. I also have logical reasons to stay on Windows as it would make a few things much simpler. After all, the choice should be about being able to make the computer do things for me, not entertaining the computer. And to some extent, my decision is not 100% based on practicality. On top of that, I am yet to be able to include Windows 10 in the Linux boot loader. I have spent days researching and I always run into a wall, no matter what I try. I cannot get this to work and as a result I have to resort to mashing the F11 key to bring up the UEFI boot drive selection to get into Windows. This is a huge pain. It really is.
In total, this distinction between a gaming OS and a "work" OS brought with it some obstacles and inconveniences. It is not so much about Linux itself. It is about using the computer. I am aware that it’s not really any different from separating the two use cases into individual pieces of hardware, e.g. a gaming console and a laptop. Although there may be only few situations where it makes sense to run both at the same time, you could if you wanted to. Right now, I cannot. Tired of writing long blog posts? Reboot for gaming. Enough gaming done and time to get back to writing or researching something programming related? Reboot. While it helps me focus on one thing and maybe even prevent me from doing something else only on a whim, it is some sort of a hurdle in other situations as well. An inconvenience.
I’ll end this here for now. I am still on Linux, but I’m starting to evaluate the situation.