So…#
Why?
Well, I observed most software development enthusiasts—or even robotics, with ROS2 for example—recommend Linux, for good reasons too.
I’ve long known there are simply 2 options for anyone seriously considering a Linux dev environment: Arch or Debian (Fedora seems to be somewhere in the mix, but there’s drama in that area, and I don’t have the brainspace to invest in all that).
I decided to go with Debian this time—since it’s the distro I’m most familiar with. And while installation has never been an issue, I learnt a few things this time, and was surprised to see how much I now understand and not overwhelmed by.
In no specific order, I present to you dear reader, my experiences on this adventure!! (actually, it’s top-down, my brain cannot survive without structure).
Understanding UEFI and BIOS Compatibility Issues#
This one was way too simple when I figured it out, but I was trying so hard to make my laptop boot in UEFI and BIOS mode. But wait, It actually does that—not in the way I envisioned it.* I mean all I had to do was to install Debian in UEFI mode like I regularly would, but when I need to boot into it, just pick Boot from EFI file
from Boot Options. I mean, it’s so simple, but this made me install Debian 4 times!!! (I thought it had to run GRUB on startup no matter what since it was in “UEFI with BIOS compatibility mode.”)
*(Context: I’m installing Debian on my old laptop’s—now external—drive since… well… why not?)
Server/Minimal Installation#
I previously would install Debian with XFCE desktop environment since it was customizable and lightweight. I ditched that this time (cause I already know how that works 🙄). I wanted to explore, to try something new. And it was cool! dropping into TTY isn’t as scary as before (😂, I remember I once thought I broke something—like I always do—on my laptop when I pressed Ctrl+Alt+F1
…memories).
Window Managers (i3 & DWM)#
This is the one! WMs used to overwhelm the heck out of me. So much configuration to worry about, so much to tweak, “YAML, C? Is that Rust? What do you mean Java, AAAAHHHHH!” Not anymore! I been using GlazeWM for quite some time on Windows (check it out, it’s really cool) and it really did extend my ’tweaking spirits’. I’d spend hours tweaking Glaze to look and work exactly as I wanted and all that tweaking paid off, cause now I understand how WMs work under the hood and regardless of the language, I can find my way around it (with the docs or YouTube video guides in another tab).
Drivers and Utilities#
I don’t think it’s mentioned enough that DEs provide a level of comfort with drivers and utilities that does make it appealing to install them over barebones server+WMs installations. Surfing the internet, looking to fix one problem after the other was stressful, but very eye-opening. I learnt A LOT. From figuring out how to set up or reset Wi-Fi adapters, to changing keyboard layouts, to optimizing battery, to something as simple as adjusting brightness levels and volume. SO MUCH worries that DEs solved out of the box. BUT, it was so worth it.
Personalization#
All I’ve written so far kinda falls under the personalization umbrella, but this section is specifically talking about those tweaks that made my machine feel more invaluable, more beautiful if you will, and even more functional. We’re talking about Bash profiles, custom shortcuts, launchers, transparency effects, wallpapers, apps, virtual machines, and many more.
Fun stuffs.
Aaaaand that’s it! I’m hoping to explore even more, fix more nuanced issues that pop up, and hopefully not break my machine for the Nth time.
Rants#
- I don’t know, I’m feeling a lil’ funky with Arch, currently testing it out in a VM, might make the jump when I feel comfortable enough.
- Now I actually have to USE the damn thing. I’ve gotten a little too comfortable with (my highly personalized) Windows as a daily driver. Linux IS better for the dev stuffs though, so I know I will.
- Ubuntu is the recommended distro for Robotics and all that shenanigans, might play around in there a bit, idk.