leafeon.systems

The animated Pokemon Black/White 2 sprite of a shiny leafeon.



Linux, Tech Giants, and the Death of Consumer Freedom



Introduction

I switched to linux.

Honestly, I could end this blog post right there and I'd get showered with upvotes, Reddit gold, and knee socks. Sorry to disappoint, but I do have a lot more to say than just that. I am writing the entirety of this blog post (and the entire website for that matter) on my good ol' Razer Book 13, a laptop that I used to call useless and less worth than buying a used 2018 MacBook just half a year ago. That was back when it ran on Windows 11 though, nowadays it's loaded up with EndeavourOS. Normally I'd just call it Arch Linux for the sake of brevity and simplicity, but I have a friend who would 100% murder me if I did that, and I don't want to chance it.

Anyways, why did I use to think so badly of my laptop? It's simple, really. It was slow, its battery life was horrendous, and quite honestly, it just felt really unresponsive and sluggish. It's kinda surprising really; I bought this laptop brand new and it got released in 2020. You'd expect it to run alright with its Intel Core i7-1165G7, 16 Gigabytes of RAM, and that sweet, sweet Intel Iris Xe Graphics. But no, getting work done on it felt like a chore, gaming barely worked with it, even struggling in games like Stardew Valley, and god forbid I tried to do any video editing on it. Is it the lack of a dedicated GPU? Probably, but even after using it for almost a year for school, I just couldn't bring myself to blame all of the performance problems on just that one reason.

And that doesn't even touch on the other problems I had, like the extremely disappointing battery life. I'd charge it full overnight, take it to school, take notes in class, and I had to plug it back in after just three to four hours. It has a 55 watt-hour battery; that's 5 more watt-hours than my MacBook M1 2020 has. So how come my laptop is underperforming so much in all of these categories?

You saw the title of the post, we both know where this is going. I'm going to drop the mysterious writing now. Modern Windows is a rotten piece of garbage, and we both know it. Everyone who uses their PC for more than just word documents and online shopping knows that Windows sucks. From the cluttered and unorganised UI to the endless performance issues. Yet most of us use it, as if we all have some horrendous case of Stockholm syndrome.

But before I get to how I finally broke the curse and made the switch, let me tell you about the plethora of issues that forced my hand. For example, everyone's favourite feature, wuauserv, better known and feared as the Windows Update Service. It breaks all the damn time, and every time it does I have a 50/50 chance of fixing it by deleting some cached updates. If that doesn't resolve the issue, then best of luck, because you're re-installing Windows once again, baby! While wuauserv is broken, you lose access to the Microsoft Store (that one time you actually needed an app from that place), any game downloads or updates from the Xbox App, and obviously any updates to your Windows system. It was already bad on Windows 10, but ever since I updated to Windows 11, it's been downright awful, with the service breaking or corrupting every few weeks, even after re-installing my OS many times over.

Then there's the developer experience, which just so happens to be extremely important to me. Ever since Python got added to the Microsoft Store, it's been awful to work with. I would download the binaries from the Python Foundation's website, add them to my PATH, yet every time I tried to invoke any Python binary, my shell would tell me to kick rocks and download it from the Windows Store. So I finally give in and download that version instead. Well, guess what, all of a sudden my pip packages don't get recognised if the code is on any drive other than C:, and even adding everything to PATH manually doesn't fix that. I'm restricted to writing any Python on my main drive, where I usually don't keep any of my other code. But at least everything should work now, right? Nope, pip doesn't recognise my Python installs, and I have to invoke it through the Python CLI every single damn time. And that's just Python, don't even get me started on how unnecessarily tedious setting up any C++ development is. It got so annoying to set up after every reinstall that I completely stopped writing any low-level code on my Windows machine and used my old MacBook for it instead.

Well, it's time to bite the bullet then. I want to switch to Linux, but where does one actually begin with that? Well, fortunately, I had a friend that has already been daily-driving Linux for a while to help me get started. I didn't go in completely blind due to my minor experience using Debian-powered servers. But that knowledge doesn't extend past knowing how to run Minecraft servers, hosting basic JavaScript APIs, and setting up a nginx server for websites. I was lacking basically all knowledge regarding actually using a Linux-powered operating system. Now, let me be clear here: after some consideration, I decided to choose EndeavourOS (from now on referred to as EOS), an Arch-based distro. Basically, the entire Internet discourages newcomers from starting with Arch, due to its more poweruser-centered approach to configuring the system and managing your installed packages. There ARE Arch distros made for more casual and less knowledgeable users, for example, Manjaro, but after some consideration and reading some posts on Reddit, I decided against it (nowadays I would even go as far as to say Manjaro is a bad distro period). I was now ready to install my first Linux distro, so I grabbed a USB stick, burned the EOS ISO, and booted into the installer on my main PC, my friend on a call with me to help me through the process.

Baby's first install

I got greeted with a beautiful live environment, running KDE 5 at the time. The install process actually went pretty smoothly, apart from the first attempt where I accidentally corrupted my drive a little (don't interrupt a partitioning process), but it ended up being easily salvageable by running Windows in repair mode and running sfc /scannow as Trusted. Lessons learned, attempt two went smoothly. Once EOS finished installing, I booted into it and—oh wait, where's GRUB? Some more tinkering was required to get GRUB set up properly, but that ended up being because of my slightly janky drive setup. My EFI partition alongside Windows was on my SSD, and I installed EOS to a partition on my nVME drive instead, therefore it had issues finding my EFI partition. Nothing a little help from my friend couldn't fix though. Now I could finally boot into EOS and get my system set up.

In case you are wondering, there was a point to me explaining my entire installation experience. I feel like my drive setup I mentioned earlier wasn't too uncommon, with me planning to install Linux to a partition on a secondary drive to test it out before fully committing. Yet my specific setup led to some issues—issues that I was only able to fix quickly thanks to my friend who was already very knowledgeable with Linux and how it works. Most of the people who are going to try installing Linux are going to be alone, with nothing but the internet to help. And trying to diagnose an issue without even knowing what you're doing is never fun. EOS prides itself on its easy-to-use GUI installer within its live environment, very similar to the Windows installer. And I'd forgive the average first-timer for selecting the wrong option during partitioning or not knowing what an EFI partition even is. Yes, I know all of this nowadays, and I install vanilla Arch Linux when I'm bored sometimes, but I didn't back then. Sadly, this isn't an issue that's easy to address, due to the nature of how PCs work. You can't just have an automated process for this because every single setup varies wildly from the last. And a user will be even more disappointed when some automated installation process detects a partition wrong and accidentally corrupts your Windows boot (looking at you, archinstall). I will talk about this topic more later down the line though; we should get back to the story.

So yeah, I'm booted into EOS and am now installing everything I need to get started using my PC. This seems like a good moment to mention that my PC has an NVidia RTX 3080ti as its GPU. We all know the fairytale by now: Linus holds a talk, mentions how shitty NVidia is to work with, turns to the camera, and shows them the finger while saying "Fuck you Nvidia." But I never really understood the pure hate the Linux community had for NVidia. I always thought it was simply because they refuse to open source their drivers, something that would be against the ethos of Linux users. But let me confidently tell you, I get it now. Everything that has anything to do with your monitor (i.e. any GUI application) ships with its own little quirks when you run with team green. Let's take Discord as an example, a piece of software that never really got the love from the dev team for the Linux version compared to any of the other versions. Up until fairly recently, Discord's codebase was based on a pretty outdated version of Electron, a version that simply didn't interface with Linux well. Want to share your screen? L bozo + ratio, because that is not going to happen, especially not with an NVidia GPU. Now, there are workarounds for pretty much every Nvidia GPU-related issue, but most of them require at least some amount of tinkering before getting it to work. Thankfully, in Discord's case, there's an alternative app that you can install that's maintained by the Linux community. It's called Vesktop, and it aims to mitigate as many Linux-related issues as the normal version of Discord has. It's based on Vencord, which means that you get easy access to all of the creature comforts that modded Discord clients have, for example, themes and plugins, but it also means that you are technically breaking Discord's Terms of Service. Not an issue for me though, I'm anti-establishment enough to do it anyway, and everything is working just like on Windows now.

Next on the list was Steam. Now let me tell you, Valve has been making some insane improvements to gaming on Linux, thanks to their Steam Deck. I never tried gaming on Linux in the pre-Deck era, but from what I've heard, it's a gigantic improvement. Not only is Proton super powerful, it's basically the only thing the average Linux gamer will ever need for their games. AND IT'S BUILT RIGHT INTO STEAM! That's truly awesome; a golden standard, in my opinion, for user-friendliness on Linux. I can't wait to finally boot up Rainbow Six: Siege and—oh yeah. Anti-Cheats... they sure are something. Specifically, they are awful for Linux users. It is straight up impossible for me to play R6S on Linux, no matter what I try, because Ubisoft decided not to support Linux as a platform. I will never understand such a mindset. Technically all they would have to do to support Linux is enable a single setting in their EAC configuration, they wouldn't even have to make a Linux port thanks to Proton. Yet it's a mindset a sad amount of companies have in regard to their games and their Anti-Cheats. VALORANT is an absolute no-go as well, though to be fair Riot Games would have to make an entire Linux version due to its invasive nature. But hey, 95% of my library works just fine on Linux, without any gotchas. It's become a routine for me to check a game's compatibility score on ProtonDB before buying it, and amazingly, almost every game I wanted to play so far works just fine on Linux to this day. But wait... why is Geometry Dash only running at 60 FPS?

Time for the next "Fuck you Nvidia" moment: Refresh rates. If you want to run your monitor at a refresh rate higher than 60, say goodbye to your old, low-performance display server and say hello to Wayland! Sorry Xorg, we HFR up in this bitch. But not VFR, that's too far. Now what does this actually mean? Well, no matter what distro you decided to go with, you have what's called a display server. Simply explained, it's what communicates with your programs and desktop environment on what to draw on the screen, and how to do it. While different distros are slowly switching to using the Wayland compositor by default nowadays, many distros are still using X11, an ancient piece of software that flat out doesn't support high refresh rates, or HFR for short. Its upsides are pretty strong though. Due to its age and well-established codebase, it works pretty well with NVidia GPUs. They had enough time to iron out any kinks, and the experience is pretty stable. Wayland, on the other hand, is the modern alternative. It's the new kid on the block, a kid that supports HFR, but a new kid nonetheless. That means that it has its variety of issues when running NVidia, and I encountered my fair share of them. My screen would go black when fullscreening YouTube videos, games wouldn't render properly sometimes and have black bars on the top, the Steam overlay was completely fucked up and unusable, and sometimes my PC would become very unstable, or even unusable. It became normal for me to switch between X11 and Wayland depending on my use case, and most of the time I'd choose X11 if it wasn't specifically for HFR gaming. The thing is, Wayland is very actively developed and many of these issues would be fixed within an update or two, but new issues would come up shortly after. I became hesitant to update Wayland whenever I seemed to get a version that happened to play well with my setup at the time. Now, I am happy to say that Wayland has come a long way since then and my experience keeps getting better and more stable by the day, and I switched to Wayland permanently by now, but it's still not perfect.

It should surprise no one when I say that developing on Linux has been amazing from day one. Everything simply works, from installing languages and IDEs to all of my tools just working out of the box. If you're a developer, using Linux is simply the best choice you can make. Unless you write iOS/OSX apps, obviously, but I still don't get why you'd willingly subject yourself to glorified Objective-C. I use Rider by JetBrains for all my .NET projects, and VSCode for everything else, including this very website. Maybe I'll switch to Fleet once JetBrains makes that IDE usable, but that's a topic for another blog post with less rants and tangents. Either way, I have nothing more to add to this category. Everything just works.

The Present and the Future

I've been daily driving EOS for a bit over half a year now, and I can confidently say that I do not plan on going back to either Windows or OSX ever again. I can't wait to witness the shitshow that Windows 12 is set to be, with all its AI bloat and privacy invasions that the EU would surely love to take a look at. I mean, they already struck gold with Recall, right? It doesn't get much better than quite literally running 24/7 surveillance on your machine and having it analyze and process everything on your screen. Gives me real CCP vibes if you ask me. Either way, I'm sticking with Linux. Chances are I won't stay on EOS forever, but it's been treating me pretty nicely so far. Have I deleted my Windows install for good? No, and that's sadly not an option for me. I need to keep a partition with Windows on my PC because of VR gaming and gaming with unsupported games (like Rainbow Six: Siege) as well as some proprietary software that simply doesn't run as well on Linux, like FL Studio 21 and Adobe Premiere Pro. My laptop has been exclusively running Linux for a few months now though, and I don't need anything else on this thing.

Due to private reasons, I have recently acquired a roommate. He's my best friend since 4th grade, and like me, he is a developer—though a bit more neurotypical, and it's more of a side hobby for him. He's been daily driving a first-gen HP Omen gaming laptop that's already on its way to computer heaven. Its performance is awful, with it not even being capable of running Rocket League at more than 40 FPS on Medium 1080p. Yet it's all he needs, as he repeatedly tells me, due to him being heaps more extroverted and social than me, therefore actually going out and hanging out with people most of the time instead of gaming. I offered him many times to show him the world of Linux, as I confidently guaranteed him that his games will genuinely run better if he just switched to it. He knew that all of his games would run on Linux because I play together with him, and I just so happen to be running the same games on my EOS install. But he keeps refusing, unwilling to put in the extra effort of having to potentially tinker and re-learn aspects of an operating system when he simply wants to game a bit after his shift.

Let me tell you, if your first reaction was to roll your eyes and call him lazy for that, then you're, at least in my opinion, part of a bigger problem. The thing is, I advocate for Linux and the importance of Free and Open Source Software, and I think it's extremely important that the mainstream masses start giving Microsoft the finger and show them that they're not invincible; that we won't sit down and eat the shit they serve us, calling it an operating system when really it's a buggy, malicious, and profit-driven human rights violation. Yet I absolutely get why people don't want to make the switch. If you want someone to muster up the motivation to make such an important and huge change, you need to offer them an experience that is IDENTICAL in terms of performance and convenience. No normal user should ever, under no circumstances, have to bring up a terminal. It should not be expected of normal, new users to "learn the Linux way of doing things," because they don't want the Linux way of doing things. They want the switch and the experience to be convenient, frictionless, and comfortable. Normal users don't want tiling window managers or other buzzword software; they want a desktop environment that doesn't feel too different from Windows. What Linux gigachad power users don't understand is that all of this is perfectly fine. The only ones who disagree with that are the ones that are actively against Linux growing and mainstream adoption.

Why do you think the Steam Deck was such a success? Its performance is good, yes. Its price point is even better, and that screen is gorgeous. But do you think that every single Steam Deck customer looked at the product and thought, "ooh, that's running Arch"? No, they don't give two shits about it. Valve made the experience so frictionless and comfortable that people forget that they are currently gaming on Linux. They are simply enjoying their games, tuning out the device that they are playing on. That's the perfect experience, no matter what OS is running your games! It doesn't matter if you're on Windows or Linux when your game crashes; it's annoying either way, and chances are you'd rather just play a game than spend your precious off-time fixing it. There's this massive underground debate in the Linux community whether Linux should be a mainstream distribution or not, and if yes, if it's already polished enough for that. "The year of the Linux desktop is right around the corner!" they say. And I think I made my stance very clear on whether Linux should become a mainstream operating system. But is Linux ready for mass adoption in its current state? No, I don't think so, not by a long shot.

The thing is, I am a person who is perfectly comfortable working with a Terminal. In fact, I actually prefer using CLIs over GUIs. I am a developer and a power user, and I am well aware that I will never be able to view Linux through the eyes of a normal user. But starting out as a newcomer to the Linux Desktop gave me at least a bit of a look at how normal users must feel when trying out Linux for the first time. It feels scary, like you're one misclick or one typo in your Terminal away from rendering your PC unusable. I won't pretend like part of that is due to the reputation Linux has. That nerdy, scary hacker operating system where you need to type a thousand commands in a hackerman terminal to install a web browser. But if we ever want to shed that false reputation, then we need to put some effort into it. The GNOME Foundation has been making amazing strides in providing users with a desktop environment that feels familiar enough to a new user while keeping everything simple. I am sadly not in a position where I can recommend Ubuntu to anyone due to recent events, but if you came to this blog post looking for advice for your first distro (how the fuck did you read through all this and not leave yet), then I'd go with Linux Mint, specifically with the Cinnamon Environment. It's based on Debian, has a rolling release window, and is made with newcomers in mind. Anyways, we need to keep working hard to show the public that Linux can be an operating system like the others; made by people, for the people.

But the OS alone is still not enough to bring people to Linux. What do you think, how many Photoshop users are there? I can tell you, it's 23 million people a month. 23 million people that will never switch to Linux because their software of choice is not supported, and a good chunk of them won't settle for substitutions like GIMP, which is fine. Why put in the effort of switching to Linux when your entire workflow will end up being fucked anyways, right? Sadly, this is not an issue we the people can fix. Companies and tech giants like Adobe need to realize that Linux can be an entire market of users for them (their unethical business practices aside for now). We need more mainstream users to show them it's worth it, and we need more tech companies to port their software to show users it's worth it. Do you see the issue already? And no, WINE is not an option in this context. The average user won't want to set up WINE just to run their software at often suboptimal performance and compatibility. It's tinkering that the regular user doesn't want to do.

"Gee, isn't that pretty pessimistic?" No. In my opinion, that's the most objective and realistic opinion you're gonna find on the internet. I want to see Linux grow. I want Microsoft to realize that they are not an untouchable giant who can do whatever they want. I want to see Microsoft's stock plummet to the ground as the masses switch to Linux, realizing that they are not just using an operating system, but selling their soul and personal data to a behemoth of the tech world. We live in a time where we can count the number of companies leading our world and our lives on our fingers. Every single one of us lives in a chokehold of the same few tech giants who control every aspect of our lives, from how we communicate to how we eat and order wares online. Okay, I may have gotten a bit carried away there, but I stand behind what I wrote. Linux doesn't just stand for fancy customization, hacking, and development. Linux can be our response to the audacity that tech giants have. If we stop using their products, stop being the product ourselves, and switch to FOSS alternatives, then we can take back control of the entire industry.

THAT'S why i switched to Linux, THAT'S why I emplore you to try it too and THAT'S my opinions about Linux, Tech Giants and the death of Consumer Freedom. Thanks for reading.



If you like (or didn't like) what you just read, feel free to throw some feedback my way over on Mastodon or per E-Mail! <3