I Switched to Gentoo

I’ve been away for a while now, but some of that time was spent compiling…

My longtime readers know I’m normally an Arch user. I’ve used Arch Linux as a daily driver since 2020, when I first started running it from a VM during lockdown on my then-main Kubuntu system.

While I did love running a Linux system for the first real time since 2009 and 2010, I thought Kubuntu was alright at getting my feet wet with Linux again. In fact, while I’d even wholeheartedly recommend Kubuntu to anybody new to Linux, Arch was where everything began to “click” for me.

That was when I decided to try Arch Linux out with an install script, which was a third-party affair and not something provided by Arch Linux at the time. I installed my Arch system in a VM, but I soon found myself so in-love with how everything was that I decided to erase Kubuntu and install Arch on bare metal without the script.

Fast forward six years, and even during a hiccup in 2023 where I monumentally screwed up my system, I still saw vanilla Arch as my daily driver this entire time. Although I was technically running CachyOS on a kernel and repo level as of late, I used my Arch installation loyally for years.

Sure, I did dabble in openSUSE Tumbleweed for a long time when my old workplace let me use it as my daily driver, but Arch Linux was always my go-to at home. No matter what, I could always count on Arch being there for me. I knew how it worked, and I always knew what to expect from it.

Why Gentoo?

But using an OS for six years does introduce some cruft over the years. My .config directory (and my home in general) became cluttered up with remnants of old programs I had previously uninstalled and forgotten about. It would have normally been easy to think that maybe I needed to do a reinstall at some point of Arch, much like I originally had simply because I screwed up, but it was largely an unattractive prospect to me.

I thought to myself, why reinstall if everything was perfect for me? Arch behaved just fine, and that was also because I used it so long and so often that I knew what to expect of it.

But as my system developed more clutter, the thought of a fresh Arch install did cross my mind here and there a few times. I also considered a few other distros that I still haven’t tried.

  • Void Linux looked kind of neat, but it looked like business as usual outside of its init system and xbps, assuming I did try and install it.
  • Artix Linux looks great, and I have nothing but mad respect for their development team, but I still feel more comfortable on systemd at this time, especially with how I got my printer drivers working at home.
  • openSUSE Tumbleweed is something I was at least familiar with already, but it never really played nice with my desktop hardware. If anything, it only ever worked great on my ThinkPad.
  • NixOS seemed like the option I was most likely to try. Still, its biggest feature, reproducibility, is not really something I need. That, and what I’ve been able to infer about, “the Nix way of doing things” does little for me.

I thought making a clean install was going to lead to just another routine reinstall of Arch… Until then a certain video appeared in my recommended feed on YouTube:

Considering I originally wrote off Gentoo, back when I first heard about it in 2009, as an impossibly difficult distro, I was intrigued by a big change in Gentoo:

You don’t need to compile everything anymore if you don’t want to!

After seeing the above video, Gentoo looked like a much more attractive prospect for someone like me, someone who didn’t want to compile every last thing on a Linux distro.

It turns out binaries have been a thing for Gentoo since 2023, and even things like the kernel have been possible to install this way. While this decision has led to some infighting about continuing to do things “the Gentoo way,” it arguably provides more flexibility. Instead of compiling one particularly massive dependency package that kept failing, I now had the option to install a binary of that one package alongside the rest of the lighter dependencies. (Yes, I’ve already experienced this myself during the setup process.)

My Setup Process

I consulted the Gentoo Handbook for the most part and, when I was confused by something, got a little help asking to understand what something meant or if it applied to my use case.

However, I didn’t want to just have Gentoo as a little testing ground for small things here and there. I actually wanted to use it as a desktop. It’s not the most exciting proposition, but I thought, “Why don’t I take what I’m doing on Arch, and I just do that on Gentoo?”

That’s why I started the process of moving as much as I could wholesale from my Arch setup.

And a few other odds and ends from my system.

I switched to Dracula for my Gentoo build. (No, I am not being held hostage.)

Despite how OpenRC is treated as a first class citizen of the Gentoo world, I’m largely used to using systemd, so I opted for that. For apps that require Xorg or any future window managers I might want to try out, I opted to install XLibre because this is an Nvidia-free household. That, and I appreciated actually having the option to install it easily, which is more than I can say for many other distros.

Furthermore, I started to install the programs I count on daily from portage:

  • Brave (The binary for this was a blessing.)
  • Kitty
  • Nemo
  • Obsidian
  • mpv

But the biggest cosmetic difference so far is how I switched from my beloved Nord to Dracula. I mostly did this because Gentoo’s logo is purple, and Dracula is my favorite purple-heavy color scheme on Linux. There wasn’t really much else to it than that, really. I know a few people would likely recommend Catpuccin or other schemes, but those don’t really do much for me. Besides, Dracula’s support is incredibly widespread, and I can count on it being available in more places than Nord.

Before I knew it, I was eventually up and running on my own Gentoo system, and the pieces kept coming together from there.

Observations Coming From Arch

My current Gentoo setup with Hyprland and DMS.

I did want to make one thing clear. I didn’t leave Arch for any of the following reasons:

  • I was bored with Arch and wanted something different just for its own sake.
  • I stopped liking Arch altogether for one reason or another.
  • I somehow broke my Arch install and had no way to get it working again.

I still love Arch as a distro overall, and I appreciate how long I’ve used it as a daily driver. It worked just fine until the very end, and believe me, I really don’t distro hop.

If I pick a distro, it’s because I know I’m going to use it. I used Arch for years on my desktop, and I used Fedora for a good few years on my ThinkPad (it came preinstalled) before I switched that to openSUSE Tumbleweed eventually.

If anything, I switched to Gentoo for two reasons:

  • My Arch system had a lot of leftover files from previous programs and apps I either deleted or forgot about, and the prospect of going through all of those directories to clean them out seemed intimidating.
  • I became extremely comfortable with Arch.
The obligatory neofetch from my Gentoo desktop.

The aforementioned video sealed the deal.

As a result, realizing that Gentoo was more approachable than ever and remembering I had a spare drive within my PC that was previously dedicated to Timeshift backups, I started to wonder if it made more sense to try it out on bare metal. It seemed more reasonable than going through all the effort of setting up everything in a VM for a truncated experience. Besides, if I decided I didn’t like Gentoo, my main Arch setup was still right there on its own separate drive.

A couple of days later, when I finally had some free time, I partitioned the spare drive, ran the live Gentoo environment, and I was up and running under two hours with the minimal tty install.

But my observations coming from Arch became more pronounced as I installed my system and switched.

First off, the setup was a little easier in some ways. I mean, yes, both are involved and require knowing what step to take next, but maybe it was easier for me this time around because I knew the process would be involved. Well, there was also how I didn’t have to worry about selecting the best pacman mirror. (Yes, I still had to worry about a good pacman mirror when I used a setup script in 2020.) While I love pacman, I don’t miss mirror selections.

While using emerge, I did discover masking. From what I can still gather, masking involves packages that are marked as unstable or, in some cases, have other caveats like EULAs to accept. Still, the process of unmasking them is only a slight inconvenience at worst once you figure it out. I believe this is largely part of what makes Gentoo so intentional to use. It’s the masking, USE flags, overlays, and other options that all add to its intentionality. Gentoo is simply showing me another layer of complexity where Arch normally made decisions for me, much like a longtime Ubuntu or Linux Mint user using Arch for the first time.

Another big difference I’ve seen from Gentoo, more obviously, is the fact that I can compile packages. Anyone who has even heard of Gentoo in passing knows that this is one of the bigger and best-known reasons to run this distro. While I have compiled most of my system, again, one of the bigger advantages of modern Gentoo is being able to decide when you want binary packages. As a result, I can selectively and intentionally pick what I want to install, much like I did with Arch, but I can choose if I want to compile or use a binary package.

Most Linux users think about compiling the kernel, but I wanted to get started with something that worked right away. That’s why I chose to install a binary kernel and, once I was settled in, look into compiling a kernel just for my hardware later.

Figuring out how to compile my own kernel is still a work in progress for me, but I’m still learning!

In fact, that’s exactly what I’ve done so far, granted I’m still troubleshooting a few minor issues with my own kernel on my desktop. Once I do have that running reilably, it’s going to be even better! But on the bright side, my reasonably strong hardware means I only wait an average of 23 to 25 minutes for each kernel compile right now.

Speaking of compiling, Gentoo finally made me feel like a (long overdue) RAM upgrade would be worthwhile. In our state of affairs, RAM is overpriced to say the least, but having more makes a great difference for compiling heavier packages. Considering what I’m working with, I started to feel like the modest 16 GB I have in my system is not really ideal. I’m now waiting for more RAM to arrive in the mail, though I am feeling the cost of it.

There’s probably more I could describe. I could discuss how installing XLibre on Gentoo was relatively more straightforward than when I did this on Arch (getting it on the AUR was kind of weird). I could discuss the extensive troubleshooting I performed to get my wireless printer working (I really hate printers). I could even bring up how different emerge commands feel compared to that of pacman in general.

But instead, I can talk about how using Gentoo for about a week had me sold. I started the migration process where I backed up my important files to a separate drive, formatted my Arch Linux drive one last time, and used dd to move my Gentoo install into it.

Upon migrating to Gentoo, however, I finally realized something about myself that wasn’t quite so obvious in the past.

My Need to Tinker and Tweak

Getting Gentoo to actually run wasn’t the obstacle standing between myself and a working machine. In fact, I actually like the process.

I’ve started to realize how long this has been true about myself to this extent, but it’s undeniable now:

I sometimes troubleshoot for long periods, and sometimes it feels like it really goes in circles (Again, I really hate printers!), but the result is almost always worth it. It’s like getting a hit of dopamine from seeing something that was previously broken working better than expected.

I took days of tweaking and tinkering to migrate over to my system, but my desktop is largely at a state where I can easily do 95% of what I like, pending a few other small odds and ends that I should finish setting up sometime soon.

That also didn’t stop me from taking out my old ThinkPad, my personal workstation that I used to use, erasing my neglected openSUSE setup, and installing Gentoo on that as well.

I could have mentioned this in the previous section, but my Gentoo desktop, with better specs and all, gives me another advantage here. I can compile a kernel for my Gentoo ThinkPad right on my desktop, migrate it over to my laptop, and then run that.

Speaking of the ThinkPad, my need to tweak and tinker was so enjoyable that, for the first time ever, I looked into booting the ThinkPad from the live Gentoo environment, connecting it to my network, and then SSHing into it from my MacBook Air to finish the installation from the comfort of my iTerm2 environment.

Of course, I didn’t want my ThinkPad to just be a 1-to-1 mirror of my Gentoo setup from my desktop, as Hyprland and Wayland both tend to chew away at the system’s battery. That’s why I installed Siduck’s chadwm, a preconfigured dwm setup running on top of XLibre, and I’ve been building the bits and pieces of a complete desktop with this as the foundation. It almost feels like those first times I ever used Awesome WM way back during lockdown.

While the ThinkPad system was largely still inconvenient to interact with, I would comfortably SSH into it and make changes and tweaks right from the convenience of the terminal. Eventually, it was usable. Even as I type this, I’m largely putting the final touches in place after an extensive weekend of configuring it here and there with one change or another.

But aside from enjoying the process itself, I realized something else.

Gentoo Made Me Appreciate Arch More

Photo by Jay Moon on Pexels.com

Using Gentoo made me realize just how much I already know about using Linux in general, and I largely credit that with my extensive time using Arch Linux in the first place.

Thankfully, my time as an Arch user for the past six years gave me a strong enough background that learning Gentoo doesn’t feel so daunting or impossible. I understand a good deal of things, although I am still learning about what Arch typically hides from me, like USE flags, dependency issues, and other complications that might arise from compiling packages.

If anything, I don’t look down on Arch at all. I don’t feel like it’s somehow beneath me just because I’m on a supposedly “harder” distro. If anything, I’ll always be grateful and appreciative for the years I’ve been daily driving Arch. My past six years using Arch are not magically invalidated just because I successfully started using Gentoo.

Gentoo simply exposed more levels of control to me in the same way Arch first did a good while back. If Arch taught me to know more about Linux, Gentoo taught me to decide a little more about how my distro works, a little more about what’s beneath the surface.

The best part here is that, in the event I ever decide that Gentoo is too much for me, that it requires too much granular control, Arch is relatively simple enough for me that I could always conceivably return to it. If my life ever requires me to pay less overall attention to my distro and need something that “just works,” Arch fits that bill for me much like Ubuntu, Linux Mint, Zorin, or many other distros might fit many casual users out there.

I’m Learning All Over Again

Photo by Bakr Magrabi on Pexels.com

Something else I’ve realized after coming this far is that Gentoo is making Linux feel like an exploratory adventure for me again. That same feeling of genuine discovery and excitement is finally within my reach again with Gentoo, and I love it so far. I love how it works on my desktop build, and I love how it runs on my ThinkPad, too.

Granted, I’m not pursuing more complexity for its own sake. Rather, I’m trying to use something just complex enough that I can still learn from adjusting and tinkering with it, getting meaningful results while slowly building my ideal desktop and setup again. One of these days, I might even spend a weekend getting cozy with Cinnamon all over again, too.

I also wanted to close on something else. I’m well aware that Gentoo is not for everyone; I have no issues admitting that. Still, if you’ve been using something like Arch Linux (and I mean actual Arch, not some cheap imitation) in earnest for years now, you really should consider Gentoo if this describes you:

  • Fixing and breaking things is routine for you.
  • You genuinely aren’t afraid of putting everything back together.
  • The terminal feels like home instead of something intimidating.
  • You don’t really mind compiling some or all of your packages.
  • You actually want choices for which init system you use.
  • You not only considered installing Gentoo while reading this, but started contemplating how to set up SSH to install remotely.
  • Most of all, the idea of learning even more about how Linux works sounds appealing and fun.

What distro are you running right now? If it’s not Gentoo, what distro is it, and would you ever consider Gentoo one day? Any other thoughts about this topic? Feel free to comment! I’d love to know what you think.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.