--- title: How I stopped worrying and ended up using Linux instead image: src: https://img.sebin-nyshkim.net/i/b9fd20eb-e4c5-4f76-ae8a-b57773c3acc9 alt: Photo of a penguin flapping its wings credit: Photo by Sander Crombach on Unsplash width: 1200 height: 630 type: 'image/jpeg' tags: ["linux"] draft: true --- News about tech has been very grim lately. Microsoft keeps pushing Copilot on everyone in Windows, GitHub, even keyboards. The "AI" craze has seen companies burn down years of goodwill in a flash in the search of *The Next Big Thing*. Enthusiasm in tech is at an all time low and people are looking for a way out of the cycle of trash. The only alternative that remains is the one people keep shunning: For as much as the [meme](https://yotld.com) tries to suggest it'll never happen, Linux has made incredible strides on the desktop. Not least of which can be attributed to Valve's Steam Deck hitting big and showing a device shipping with Linux out of the box can sell, next to their [continued](https://www.phoronix.com/news/XDC-2023-AMD-Colors-HDR) [involvement](https://www.phoronix.com/news/Steam-Audio-SDK-Fully-Open) [with](https://www.digitaltrends.com/computing/nier-automata-steam-deck/) [Linux](https://lists.archlinux.org/archives/list/arch-dev-public@lists.archlinux.org/thread/RIZSKIBDSLY4S5J2E2STNP5DH4XZGJMR/) [at large](https://www.phoronix.com/news/Valve-Upstream-Everything-OSS). It showed there is [rising interest](https://www.gamingonlinux.com/2025/01/gdc-2025-survey-shows-pc-game-development-growing-with-lots-interested-in-valves-steam-deck/) in bringing games to the Steam Deck, which could benefit Linux as platform as a whole. Linux on the desktop might not be ready this year. Or the next year. Or the year after that. But it's getting *more ready* each passing year and that's the more important part if you ask me. I've been running Linux full time for the past 10 years, but not for the reason that might seem obvious at first. Sure, there were grievances with Windows, but these come dime a dozen from many people every day. The story of how I ended up on Linux as my daily driver of choice started out a little different. ## Throwing my sanity out the Window(s) In 2012, I built myself a PC for the first time in a long time. For a while, the machine ran quite well. But problems started cropping up not long after. I wanted to get into the Let's Play and video game scene on YouTube. I got myself a USB3 video capture device, because USB 3.0 was the latest hot shit (ah yes, [simpler days](https://en.wikipedia.org/wiki/USB_3.0#USB_3.2)...) and I naively thought that the U in USB really stood for "universal". Unfortunately, the video grabber was only compatible with Intel CPUs, not the AMD Bulldozer CPU I had bought[^usbcontroller]. [^usbcontroller]: Or rather, it was incompatible with the 3rd party USB 3.0 controllers AMD used compared to the 1st party ones by Intel. So I sent it back and bought a PCIe card that was compatible. At least it was recognized, but I kept getting crashes and BSODs — not to mention the fact that the PS3 encrypts everything via HDCP and I now also needed an HDMI splitter to get that out of the signal… *[HDCP]: High-bandwidth Digital Content Protection However, the USB problems were not limited to the video grabber. It happened time and again that USB hard disks simply lost the connection during larger transfers. If this was not the case, then the transfer was agonizingly slow - so much for USB3 speeds… To top it all off, after upgrading to Windows 10, the computer simply shut down without warning, as if someone had pulled the plug. I was growing quite desperate trying to figure out what was causing the random shut offs. I ran RAM checks for hours and tried to reproduce the conditions that made it shut off, but no dice. The shut offs remained random. Sometimes they would even happen several times in a row while Windows was booting up, which prompted the OS to boot into rescue mode after enough failed attempts. ## Enter the penguin I began running out of things to try to remedy the situation. Being at my wit's end, I decided that, y'know what, fuck it, just install Linux on the damn thing. What's the worst that can still happen at this point? After a few days of running [Linux Mint](https://linuxmint.com) on my machine, it didn’t shut off unexpectedly one – single – time. I thought I was going crazy. How could a change in OS be the solution to this seemingly unsolvable mess?! But it was and it allowed me to use my machine again. That was all that really mattered to me and so I started to adapt to my new situation. +++ Side Note ![Screenshot of SuSE Linux 9.0 running KDE 3.1 with a few applications opened](https://cdn.sebin-nyshkim.net/-B88C5jFVA7 "This was my first introduction to Linux on the desktop in 2004") The first time I tried getting into Linux was during my teens in secondary school, starting with SuSE Linux 9.0 around 2004, included on a CD in a magazine with an installation guide. I was fascinated about the little things open source software did differently from what I was used to, e.g. tabs in the file manager, installing any software in a centralized software center, customizing the look and feel by just downloading files from the internet, copy them somewhere and BOOM new theme! I even held presentations in school showcasing how similar Linux and Windows were in terms of day to day use-cases, like listening to music, watching videos, writing documents and surfing the web. I tried other Linux distributions as well, like Debian and eventually Ubuntu. They were very different but that didn't dampen my curiosity. Back then, internet speeds were quite slow, so downloading several hundred megabytes of ISO files was very arduous. At one point that saw me actually *order* a Debian DVD online, so I wouldn't have to wait for downloads or change through a set of 14 CDs when installing literally anything. Shit was wild. I even played games on Linux back then, like Doom 3 and Neverwinter Nights (these actually had official Linux versions readily available). But the majority of games I played were exclusive to Windows and unworkable with the version of Wine that was available at the time. So I was missing a reason to stay on Linux for longer because for most of the things I did with a computer, I still needed to boot back into Windows. Alas. +++ ![Linux Mint 18 with its flagship Cinnamon desktop](https://cdn.sebin-nyshkim.net/-Bx5pkSihhX "Since I've heard a lot of good things about Linux Mint I was giving that a shot and it served me well for many years") I was still very "Windows pilled", in that I avoided doing things via the terminal like the plague. Luckily, Linux Mint being very beginner focused allowed me to avoid it for most stuff. I only updated core system packages with `apt`, the rest of my apps I took from somewhere else as a `*.deb` package or I went to the software store app that came with Linux Mint. Over time I did get more experimental, thought, and started using the Terminal more. The reason for this was that a lot of troubleshooting stuff I found online would be terminal commands. It kind of clicked that if I wanted to do something on Linux in the fewest steps possible and without scurrying around in a GUI that nobody touched in the past 3 years, the terminal was the way to go. It also helped that I learned what the `man` command was and that any terminal tool came with a `-h` or `--help` option that explained how to operate it. It made me realize that if I just chilled out for a sec and read about what things did and how they worked, that I could do things quicker and the solution was always rather obvious the more I learned the ins and outs. It felt like I was back in control and could set up my computer to service me and my computing needs, not the other way around. The fact that Valve hit the scene with Proton and Steam on Linux sealed the deal. I could just launch any game in my Steam library with Proton and play it like it made no difference. This was it. I wasn't using Linux out of a necessity anymore. I started preferring it this way because Linux started to serve my needs better. It just stayed out of my way and didn't hassle me with stuff that had no relevance to what I was doing at any given moment. It wouldn't push something on me that I had no desire for and left my system settings alone. I felt like it respected my time and intelligence as a user. My computer worked the way that I wanted, not how someone else thought it should work. It felt like I was back in control! But, just in case I would need it, I was looking into ways to banish Windows into a virtual machine that I'd boot up only ever so occasionally, for the stuff that absolutely would not run under Wine[^winvm]. That's when I learned that it was possible to have a VM use the host machine's actual hardware and people were actually doing it successfully. My mind was blown such a thing even existed! [^winvm]: Stuff like games that come with kernel-level anti-cheat (a whole can of worms in and of itself), which Wine lacks the capabilities and resources to translate. But it needed recent software, which Linux Mint, hailing from Ubuntu LTS roots, would most likely not provide in a timely manner. Most people who were passing their computer's GPU directly into a VM to run graphically intensive games were on… Arch Linux. I knew Arch was a whole different beast in terms of Linux distributions, where you had to do **everything** yourself. I neither felt I was willing to do that nor did I feel cut out to be able to do it. *[LTS]: Long-term support ## Keep rolling, rolling, rolling Lucky for me, I noticed a certain distribution climb the ranks on [distrowatch.com](https://distrowatch.com/) going by the name of [Manjaro](https://manjaro.org/). I looked further into it and learned it was *Arch-based*. I've never heard of any distro being based on anything else other than Debian or Ubuntu. It presented itself as both bleeding edge and user friendly and I was gonna give it a shot, if that meant I would also get to do more tinkering. ![Screenshot of Manjaro KDE with the file manager and terminal open, next to a couple system monitor desktop widgets. The wallpaper has a milk glass appearance behind open windows.](https://cdn.sebin-nyshkim.net/-BFoUGXUFLb "My customized Manjaro KDE desktop at the time. I'm such a sucker for glassy interfaces 😩💦") And for the most part, I pretty much got what I expected. I was able to enjoy very recent software, on a rolling release basis, without the frills of having to manage everything myself. Also, I learned of a neat little thing called the [AUR](https://aur.archlinux.org/), with tons of more great software that was just waiting for me to install it. I was very excited of the possibilities! Also, Manjaro being a rolling-release disto, just like Arch, meant I did not have to deal with major distribution release cycles, receiving updates to the latest versions when they become available. I was always up to date, as long as I just kept installing periodic system updates. What a concept! It wasn't soon after that my tinkering continued. I learned of a thing called [LVM](https://en.wikipedia.org/wiki/Logical_volume_management). I knew of it from the Ubuntu/Mint installer as an option for partitioning but it mystified me. Since I was on an Arch base with Manjaro and I felt comfortable with the inner workings of my system more and more, I consulted [Arch Wiki](https://wiki.archlinux.org) a lot more, too. I learned that LVM allowed for some really flexible partitioning setups, while also allowing for something called LVM caching, combining the speed of SSDs with the cheap capacity of spinning HDDs. I got it done pretty comfortably with Manjaro's text-based installer. Calamares (the GUI installer) was… limiting and buggy[^calamaresbugs]. Once Manjaro discontinued their text-based installer for lack of maintainership, and LVM cache had gotten pretty integral to my setup, I started looking into making the jump to proper Arch Linux. [^calamaresbugs]: Specifically, despite Calamares seemingly being capable of LVM-based setups, it kept destroying the ones I prepared on the terminal and complained about the root file system having disappeared once I started the intallation. Turns out Calamares, for some reason, still calls `mkfs` on the partition directly instead of the LV that was selected. Only way around that was formatting the LV with the desired file system ahead of time and just point Calamares to a completely prepared setup. ## Look Ma'! No GUI! I first started dipping my toes in by installing Arch into a VM. It went well up to the point I had a typo trying to set my timezone and my TTY (**T**ele**TY**pewriter, the "DOS prompt" of the Linux kernel) got completely fucked up. After all the trouble I went through of even getting to that point, I shut it all down and decided to come back later. I knew installing Arch would be a lot of manual work, but I was more worried about the execution, when I should've been worried about the amount of research required to learn about all the concepts that graphical installers have been abstracting away from me all this time. I never had to think about how to partition disks and formatting them on the terminal before, or how to install the bootloader from hand, or what went into building an initramfs to end up with a bootable system. Eventually, I managed to complete the installation process and have the machine boot into a graphical environment. Let me tell you, I was never more excited logging into *any* desktop environment. It was a personal breakthrough! I felt like I was equipped with the knowledge and prowess to run Arch on bare metal. Before doing so, I spent considerable amount of time researching what my ideal setup would look like. My ideal stack at the time looked something like this: - **Wayland:** A modern and secure display server - **Pipewire:** A modern, low-level multimedia framework - **KDE:** Highly customizable desktop - **LVM Cache:** Combine the speed of an SSD with the cheap capacity of a large HDD - **btrfs:** Filesystem with modern features like CoW, subvolumes and snapshots - **zram:** Compressed swap space in RAM *[CoW]: Copy-on-Write The pragmatic DIY nature of Arch essentially allowed me to build and maintain my own distro, and I was eager to build the most cutting edge system to be at the forefront of what was going on in the open source world. ## Deeper down the rabbit hole Once I went pure Arch, it felt like I could do anything. It wasn't long before I looked into how to secure my system with encryption. It was another big hurdle for me to take and these days I encrypt all my hard drives wherever I can. Since I was handed a laptop at work and was free to put Linux on it, it was important to me to maximize the security on a portable device. I knew Linux was Secure Boot capable, but not exactly how it worked. So naturally, I looked into that, too. Turns out, Linux distributions that are able to boot with Secure Boot enabled use something called a "shim", that is signed by Microsoft, and hands the boot process over to Linux once verified by the computer's main firmware. It's kind of a workaround, since Microsoft has an iron grip on the whole Secure Boot landscape[^secboot]. But I also learned that nothing stops me from putting my own keys and signatures into it so OSes that I sign with them can boot with Secure Boot enabled. So that's what I did! Tools like `sbctl` made it trivial to generate keys, push them into firmware and sign bootable binaries[^sbctl]. [^secboot]: This is where the prevailing opinion comes from that Secure Boot is the vehicle with which Microsoft is trying to lock out alternative operating systems. But most of the time it's enough to simply turn the entire feature off in the firmware settings and you can boot anything you want again. [^sbctl]: The only tricky part about Secure Boot is how to get the firmware into "Setup" mode. Usually this involves setting the firmware Secure Boot mode to "Custom" and wiping the keystore clean. I also knew that my computer had a [TPM](https://en.wikipedia.org/wiki/Trusted_Platform_Module) and I was curious to see if I could utilize it for anything on my Linux machine. Turns out, I can: It is possible to store [LUKS](https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup) encryption keys inside the TPM and have the encrypted disk only unlock if the system is in a known good state, i.e. it has not been tampered with since it was set up. A presentation by Jonas Witschel (diabonas), who demonstrated this on Arch Linux, was what initially convinced me to try for myself. Combined with the work by the `systemd` maintainers, it is now really easy to deploy a TPM-backed LUKS encryption key via `systemd-cryptenroll --tpm2=device=auto`. Together with this my default setup now consists of (signed) `systemd-boot`, which automatically detects the (signed) UKI on the EFI system partition, and only unlocks the TPM-backed LUKS encrypted disk if the machine's state is the same as when I sealed it against a particular set of values in the TPM. *[UKI]: Unified Kernel Image ## Beyond the desktop Getting this deep into the weeds also prompted my entry into server and network stuff. In turn, a lot of my digital live has also shifted heavily to self-hosted services and open source tools, just by virtue of there being no barriers to entry. It's only a matter how much time you have on your hands and are willing to invest. I host my own [Nextcloud](https://nextcloud.com) for sharing and syncing files, calendar appointments, contacts, and editing documents right in my browser. Free from prying corporate eyes, seeking to feed their bumbling "AI" with my data. [Immich](https://immich.app) backs up my photos and makes them easily accessible like Google Photos, but without the Google parts. I use [Jellyfin](https://jellyfin.org) to stream my movies and TV shows at home and on the go, without the fear of stuff just disappearing from my library or getting pestered with ads despite paying a monthly fee. I have my music collection with me wherever I go with [Navidrome](https://www.navidrome.org). I continuously expand it by buying from platforms like [Bandcamp](https://bandcamp.com) which compensate artists fairer than Big Stream. I have my own [Bookstack](https://www.bookstackapp.com) wiki where I document a lot of the technical stuff I do for future reference. I host my own websites from home with [Nginx](https://nginx.org). I stream my games with OBS to my [Owncast](https://owncast.online) live streaming server while not being beholden to what a corporation thinks I can and can't broadcast. I curate my news sources in [FreshRSS](https://freshrss.org) to read them at home and on the go. In chronological order, free from pushy algorithms and on my terms. Digital sovereignty rulz! ## Looking back If you had told me in 2015 that I'd be using a Notoriously-laborious-to-install Linux distro full time and do all kinds of crazy things with it, I'd have laughed you out of the room. In the 10 years I've daily-driven Linux exclusively[^amdgpuglitch] by now, doing it any other way seems weirdly restrictive to me now. And Arch has been treating me exceptionally well so far. Only once did my system break so badly, that I had to reinstall (and no, it wasn't because an update [deleted my bootloader](https://www.reddit.com/r/linuxmasterrace/comments/x3v5sd/fuckers_stole_my_grub_cant_have_shit_in_arch_linux/)). Getting into Arch also taught me a valuable lesson: That I could learn anything I set my mind to and overcome seemingly insurmountable hurdles. The freedom to have complete control over how my system operates is something I wouldn't want to miss in any future computer I buy. [^amdgpuglitch]: Safe for that one time I couldn't get Linux to even boot on my new 2019 machine because of an [AMDGPU bug](https://gitlab.freedesktop.org/drm/amd/-/issues/1237) that crashed the driver for my GPU. However, if it wasn't for the efforts of Valve to make gaming on Linux finally a viable reality, I probably wouldn't have stuck around for as long as I did[^anticheat]. In the end, gaming is still the biggest thing people use their computers for. Bringing Steam to Linux was a boon to PC gaming and Valve is in it for the long haul, as the Steam Deck and SteamOS continue to prove their [commitment](https://www.gamedeveloper.com/pc/steamos-is-officially-heading-to-third-party-handhelds) to Linux as a gaming platform. [^anticheat]: And more would give it an honest look if the biggest online games weren't loaded with invasive, festering multi-million dollar anti-cheat software that is [still helpless](https://www.youtube.com/watch?v=RwzIq04vd0M) against Raspberry Pi or Arduino boards. Witnessing Linux improve rapidly year over year, from the obscure thing that only runs in data centers to the operating system that inches its way to the desktop, slowly evolving into a desktop operating system that is ready to be daily-driven, is a sight to behold for me. Here's to another exciting 10 years on the Linux desktop! 🍻