Linux Philosophy
2023-12-08
Why Linux
I've been a full time Linux user for the past 4 or so years. It was COVID, classes were remote and I was bored so I wiped my computer and installed Ubuntu for the first time. I was blown away at how different my computing experience was and how the "do it yourself" attitude with Linux applied to almost everything on your computer. I actually quite liked this because it allowed me to fine-tune my computer to my exact specifications, thus learning a ton about how software works and being able to optimize my computer resources.
Arch BTW
I hopped distros for a while, from Ubuntu to other Debian derivatives, to Fedora and eventually Arch based Distros. The Arch install process was very daunting for me, and this was right before Arch became super trendy (Ubuntu was still the wave), and the resources for getting started on Arch weren't as accessible as they are now. However, about a year into my Linux journey I had time on my hands and decided to take the plunge and I after hours of installing and restarting I did it.
I ended up sticking with it for a while, the cycle of my Arch installs would reach some sort of crescendo and then crash stop working because I fiddled around too much. I was still a newbie so I never stuck it out and fixed the issues, I would end up just reinstalling. I got tired of this but still wanted a distro that was minimal + sleek and bleeding edge. That's when I discovered Void Linux, my now 2nd favorite Linux distro. I stayed on Void for a long time, I really liked it. It uses Runit as it's init system which I thought was cool, had an okayish package manager (xpbs). Alas, I ended up going back to Arch because Arch is all those things but just better. The software availability is much better, the AUR is unbeatable. Plus the Arch wiki is the golden standard of documentation. I couldn't go back to Ubuntu, Debian, or even Fedora. One of the reasons why I've stayed on Linux is because I like being able to run software ahead of its update cycle. It gives me the ability as an ever-learning developer to gain insight on how software moves through its cycle and how issues are fixed over time. With all mainstream software the entities behind them are obviously much more concerned about having a fault tolerant product that is reliable for their target audience. With Arch however, there's always the newest or experimental versions. Also with many programs there are alternative packages or forks that I can pull and run myself right off the repos. To me this is the magic of Linux.
How I set up my system
I'm not a crazy minimalist "destroy all bloat" kind of user. I like having creature comforts and "cool" things on my computer even if it's just for pure aesthetic reasons. It's not bloat if you like and use it. However, I do end up taking the most minimal approach initially and slowly iterate upon that with utility in mind.
For instance, I use a window manager instead of a full blown desktop environment. The reason why I do is because once you become accustomed to using key bindings for desktop navigations it becomes a super fluid experience. Being able to dynamically tile windows to preset locations based on program type, or workflow is a really big game changer. Forget the "time saving" benefits just think about fluidity. Every time I'm on Windows and Mac I feel like I'm always fighting the UI on what I want it to do. The reason why is because the Windows and MacOS desktops were designed with a certain user in mind, and I'm not one of them. The average user doesn't think to themselves they wish they can split a text editor and 3 Chrome windows into perfect tiles by pressing SUPER+V SUPER + P + "Chrome" SUPER + H + SUPER + P "Chrome" when they will just click the icon and drag the windows.
With this being said, I use dwm, or Dynamic Window Manager. Pretty old school of me, when there's so many more modern options for window managers, but I'm just used to it. I like suckless software, lots of cool forks and plugins and prewritten config.h's out there. When I first set up my system it was fun going through the configs and checking exactly what I wanted in my wm and building it from there. Plus when you use the full suckless suite, so like dwm + dmenu + slstatus + st, you get a really cool ecosystem where your imagination is the limit.
At a more top down level, not too crazy, I run the vanilla Arch Kernel, of course multi-lib repos enabled, and encrypted at rest at the hard drive level with Grub as my bootloader. Also, using Systemd as my init system.
Hardware passthrough
Probably my favorite thing on my computer is hardware passthrough virtualization. If you're not familiar with this, what this means is that when I start a virtual machine, let's say a Windows 10 vm, the vm "hijacks" the PCI connection for the GPU through VFIO and passes that along to virtual machine. Thus, allowing the Windows 10 vm to utilize the actual GPU as if it were the native OS on the drive. This is cool because if I'm on my Linux system I can just spin up the vm and play PC games on Windows as if it were my native OS. No need for Valve's proton or Wine layers. Pretty cool stuff.