Sidetracked

Defending your right to exist as you are

I was thinking last night about Linux apologists.

You've probably met one, those people who try to defend Linux at every turn and insist it's the best at everything. People who love to remain adamant that desktop Linux will overtake Windows. It won't.

The desktop Linux toolkit we have today was fundamentally built by enthusiasts for enthusiasts. Windows, as an example, was built for the consumer and the business man, from 1 to NT to 11.

From around ME and onwards, they moved nearly everything to GUIs. An average user will never have to use the command line.

The standard toolkit used for functioning desktop Linux environments (GNU/BusyBox, X11/Wayland, Pulse/Pipewire, GTK/Qt) still expect that you either have knowledge of the system you're running, that you are willing to edit config files and use the CLI for anything and potentially everything.

Distros like Debian or OpenSUSE have historically done a good job at hiding this and building a GUI wrapper for everything and anything - which is great. But those expectations don't go away. Typically, they show when something goes wrong. Keeping it under a GUI lock and key doesn't remove the issue.

"Linux"

So far I have tried to avoid calling it "Linux". Linux very well might be better than Windows, I'm certainly not in a position to say, I'm no expert in C programming, and the source for Windows' kernel is not public.

Blanket statements like "Linux is better than Windows" is comparing a single, massive, cohesive integrated commercial operating system (Windows), to a singular monolithic kernel (Linux).

Because that's what Linux is. A kernel. A kernel has 4 responsibilities: memory management, process management, device management, and system calls. Notably, none of those are "showing a GUI" or "printing a document".

No, because what most people refer to as "Linux" is a combination of software that is not Linux. They're referring to Debian or Ubuntu, or everything else that was built around Linux. It's like referring to the dirt as your house.

Often, it's projecting all the work done by completely separate projects (GNU, freedesktop.org, GNOME, KDE, systemd, Debian, Canonical, etc) onto that one word.

You can say "Linux" is better because there is no Linux.

In reality, most are referring to distros. Specifically ones like Debian. That's another problem, most times "Linux" is a shorthand for Debian. Debian is not Linux.

Yes, there is Linux, but Debian is not Linux. Debian has added thousands of packages around Linux in order to make it usable as a desktop OS. Ditto with Ubuntu (except it's based off Debian), OpenSUSE, Red Hat, and Fedora.

But you cannot call those Linux. Because "Linux" represents everything and nothing all at once, it can never be proven wrong. Nobody boots into raw Linux, interacts with the memory manager, and says, "wow, what a great computing experience".

The word "Linux" is simply doing too much work.

The crowd that yells the loudest about "Linux" being ready for the masses is almost always using a heavily curated, heavily modified corporate-backed distro. I mean, look at the site of the Linux foundation, it proudly displays Google, Meta, Microsoft, and Oracle.

It's coasting on the massive amount of money and development hours companies like Canonical have put into Ubuntu to patch over the chaotic and fragmented reality of the Linux ecosystem, if you can even call it that. You want the indie street-cred of using "Linux", but you also want the sanitised, hand-held experience of a commercial OS?

Calling it "Linux" erases the actual labour of the people building the user-facing software. The people writing the desktop environments, the display servers, and the packaging systems are the ones actually attempting to make a functional OS.

It's a lazy way to win an argument and allows praise of a hypothetical ideal.

Printers

Printer drivers are a common pain point on Linux. It's simply not usable for a casual. HP is widely and consistently recognised as the most popular printer manufacturer, which makes the Linux situation around it even more damning.

Let me take you back to the 2000s. Horrifying, I know. Linux printing often relied on primitive spooling systems and reverse-engineered Ghostscript drivers. Hardware companies ignored Linux because its desktop market share was minuscule.

In 2001, HP launched the HP Linux Printing Project and released HP-IJS (Inkjet Server). It was an open-source driver interfacing directly with Ghostscript, and it improved print quality and reliability for Inkjet printers.

In 2005, HP consolidated their efforts into a single, comprehensive suite, known as HPLIP. It went beyond printing and integrated with SANE (Scanner Access Now Easy) and faxing. It was basically the whole thing.

In 2006, as HP started rolling out the LaserJet printers at a lower cost, the open-source dream crumbled. They started requiring a binary blob plugin for certain models.

Around 2017-2019, they stopped caring. By 2019, AirPrint and Mopria had fully conquered mobile. They started building these universal standards into hardware and they basically didn't have a reason to keep actively developing HPLIP.

HPLIP's graphical tools were written back in the era of Python 2. Eventually it got completely deprecated, and HP scrambled to port it over to Python 3. This left a mountain of legacy code, deprecated library dependencies, ancient PyQt bindings, and brittle paths.

Remember the binary blobs from earlier? For HP's cheaper LaserJet models, HPLIP requires a binary blob to upload firmware to the printer every single time it powers on.

HP updates the version string every few months, but the plugin version must match the HPLIP version exactly. If you update HPLIP, your printer stops working until you re-run hp-plugin and redownload the blob from HP servers. Which means they can take it away at any time.

I know this problem first hand, I use an HP Smart Tank 530. It's from around October 2019. It should support driverless printing, but in reality, HP cocked it up. Printers released around that time were built on the cusp of the transition.

These include the HP LaserJet Pro M15w and MFP M28w, both are wildly popular. They have mobile printing and AirPrint, sure. But their implementations are buggy, unfinished, or non-standard.

Most Linux distros try to connect to printers using mDNS/Bonjour for discovery, and then attempt to communicate via IPP (Internet Printing Protocol). Not that shockingly, HP fibbed. Most of their printers do not properly implement either and they require a tonne of proprietary software on the client.

I have to use HPLIP and suffer through it. Most do. This is made worse by Debian's packaging system not handling these types of things too well.

Most won't even know to install HPLIP, they'll just go to the settings app, see it doesn't work, and give up.

Often the answer to this is just to buy a Brother printer. But, what about offices? What if you don't have the money? What if you have a niche usecase you need from your printer? What if you just don't want to?

Telling someone who might be struggling financially, or an office that deployed fifty HP machines to "just spend more money" because the operating system can't handle a basic hardware handshake is completely out of touch with reality.

The printer is bad. HP makes terrible, locked-down software, but at the end of the day, the user just wants to print a boarding pass.

A casual user does not care about the philosophical battle between the Linux community and big bad HP. They care that the document doesn't come out the tray. Just to do that, you are thrown into the nightmare of HPLIP. A casual user is going to look at a localhost for hardware config and think the computer is broken.

Most Linux environments fundamentally expect the user to adapt to it, and not the other way around.

Stockholm syndrome

Linux enthusiasts love to claim Proton and DXVK are so good now, and you can just run any game you want and there's no need for Windows, and there's no need for Windows, who needs Windows amirite?

In a perfect world, maybe.

Yes, Proton can run like 70% of the games I want to play. But am I supposed to ignore the 30%? Am I supposed to have nothing and be happy? I'm like the optimal user here, I don't play that many new games. I mostly play games from around 2000-2010.

If you pay for Xbox Game Pass Ultimate, you literally cannot play those native PC games on Linux. Telling a user to give up a massive, affordable library of games just to avoid Windows is terrible advice.

This is all hanging on Steam, a company with many questionable practises that people love to defend, and it requires you to use the Steam app to launch everything?

If Valve decides tomorrow that the Steam Deck experiment is over and they want to pivot their funding elsewhere, Proton development slows to a crawl or stops completely. Proton is entirely corporate-dependent. It's an open-source project on Valve's life support. You are trading one corporate overlord for another.

A fair chunk of modern PC games use Xbox and the Microsoft Store. Do you know what doesn't work under Proton? Xbox and the Microsoft Store.

Some say "I'll never play a game with DRM or anticheat". Good luck.

You are shifting your behaviour and restricting yourself because of the limitations of an operating system, and the "just use an alternative" or "just don't play those games" argument is pure coping. Expecting someone to completely change their hobbies, drop their favourite games, and abandon software they need just to conform to an operating system is ridiculous.

A computer is a tool that allows you to do what you want. When you start changing your behaviour and hobbies, giving up games your friends are playing, abandoning niche software, and rewriting your preferences, the tool is now ruling you.

Eisegesis

I need to address something that's been bugging me. The "FOSS community".

I was watching a video about gOS. gOS (short for good OS) was an Ubuntu-based Linux distro created in the late 2000s, that was very Google centred. Notably, it had no association with Google.

I saw a comment saying something along the lines of "this wouldn't fly in the FOSS community nowadays". And it made me realise something about FOSS.

FOSS as a term means 2 things:

  • It's free
  • It's open source

Enthusiasts assign meaning to FOSS that simply isn't there. It doesn't mean the author shares your opinion about Google or Microsoft, it means they published the code.

There is a massive, revisionist history trend where people treat "open source" as a shorthand for a specific anti-corporate, anti-"Big-Tech" ideology.

The developer doesn't have to take a blood oath against Microsoft to use the Apache licence. It's wanting FOSS to mean "an underground rebellion of developers fighting the system" and ignoring the fact most devs release FOSS because it makes collaboration easier, builds a better portfolio, and is often funded by the very corporations they dislike.

A licence isn't a political party.

If a developer wants to write open-source software that hooks directly into Google Drive, has proprietary telemetry, and sells user info to the highest bidder, that is completely in their right under the terms of "open source". People might not like it, and they are free to fork it, but claiming it "isn't real FOSS" is just pure gatekeeping.

I fundamentally hate the concept of the FOSS community. Again, it just means they published the code. How are you building an identity, an ideology, and a community around that concept? It's genuinely not that deep. It’s a way to collaborate on code without getting sued, and a way to let other people fix bugs.

It’s a mutated version of the early hacker ethic from the 70s and 80s (like Richard Stallman and the Free Software Foundation). Back then, "free software" was explicitly political and philosophical, it was about user freedom and ethics.

This kind of forced meaning of FOSS, like on gOS, lets people feel like they are making a moral or ethical choice and it turns computer usage into some kind of righteous defiance.

Nowadays, you see people like Richard Stallman trying to cram that 1980s anti-corporate ideology back into modern open-source software, even though the modern ecosystem runs on corporate money.

This is all in the name of freedom, it must be.

The consumer as the enemy

I've talked a lot about "casual" users so far.

I'd define a "casual" as someone who just wants to use their computer. Someone who doesn't care if the software is libre or proprietary. Someone who wants to be able to work and to play, and to do everything without having to fork over significant time and effort, and without resistance from their OS.

Casual users are often subtly portrayed as having a lack of knowledge or effort. I believe casual users are who software should be built for.

Software, especially not an OS that will allegedly replace Windows, shouldn't require active investment just to use it.

They are the final and most important test for any piece of software, because a casual user will never indulge. They want to get their work done or play a certain game. They do not want to spend 2 hours configuring Hyprland. They want the computer to work.

The ultimate defence mechanism of an apologist is redefining the "ideal user". Not admitting software should seamlessly fit into human life, and that it shouldn't require exorbitant amounts of thought or time, and instead treating a user’s lack of technical indulgence as a moral or intellectual failing.

The answer is never that desktop Linux is fragmented and poorly standardised, it's that the casual didn't spend enough time on their dotfiles. It's that the casual user expected sensible defaults and a system that would do what it was asked, and not ask the user for something significant in return.

If a casual user struggles with an IPP printer handshake, the knee-jerk reaction isn't "wow, our software failed", it's "RTFM" or "you just don't understand how permissions work".

An everyday consumer or a casual user is not "lazy". They are the ultimate, unbiased judge for the actual, real-world utility of a software. Because they will not indulge, and they will not ignore the issues and the expectation that they will.

A war by proxy

Customization often comes up in Linux circles. A lot of Linux environments are indeed very customizable.

You can tweak every font and colour to suit your exact taste, every animation and sound, and every position and binding to perfectly reflect yourself and what you want.

But you have to recognise that this turns the operating system into the hobby itself, not a tool to get work done.

If you love taking the bicycle apart, greasing the bearings, and replacing the handlebars every weekend, that is a wonderful hobby. But you cannot get mad at a commuter who just wants to pedal to work without the chain falling off, and you certainly can't claim your disassembled bicycle is "ready for the masses".

When you spend 40 hours customising a desktop to your taste, you have invested significant personal labour. If anyone comes and says, "hey, this workflow is kind of clunky", it feels like a critique of those 40 hours and not the software it was built on.

It reframes it as a criticism of themselves and their hard work, and the illusion of choice becomes a prison of time. It becomes a surrogate of their values.

It causes a reaction on the same level as attacking someone's family or personal morals, because it largely is someone pouring themselves and their time into their desktop.

There is a distinct psychological phenomenon that occurs when a person invests enough time, friction, and identity into a specific ecosystem: the tool and the self begin to blur. It becomes a threat to the individual.

It's why debates over something as trivial as a file manager can often become heated, the software is a front.

The real battle is a war over personal validation.

You have to give up Office and Adobe and you need to feel like it's worth it, you must, otherwise why would you do it? Why would you make those sacrifices? You're fighting with the hardware you bought and you're sacrificing your hobbies just to run a certain OS, surely you must believe it is morally superior or objectively better?

The erasure of self

Admitting Windows or macOS handles daily tasks better, once you believe in the supremacy of Linux and you've spent your time switching and you've made your sacrifices, it feels more like admitting defeat.

You must evangelise Linux to validate your own past sacrifices.

When software requires this much sacrifice, this much tinkering, and this much gatekeeping to maintain, it stops being a utility and transforms into a core pillar of someone's identity.

It stops being a flawed kernel wrapper or a broken printer driver and starts being a mirror. To admit that an ecosystem is flawed, fragmented, frustrating, or hostile to outsiders is to admit that a part of yourself and your identity is flawed.

The user is always blamed, they must be at fault. It must be that the missing software or features are unnecessary, that they configured their desktop wrong, that they simply aren't trying hard enough.

It is no longer defending a tool, it is defending your right to exist as you are. If you've spent years mastering a hostile system, admitting a casual user's apathy is justified simply must be false.

If a tool fails the person who just wants to get things done, the tool has failed entirely, and defending it requires a level of personal, irrational investment. It must be that this is worth it.

People build their identity and themselves and their beliefs around Linux and FOSS and they become unwilling to criticise it, instead ignoring any issues, or blaming the user who encounters them, because to criticise would be to criticise what built them and has now become them.

They cannot criticise it, because to criticise the tool would be to criticise themselves. And the tool ceases to serve the person, because the person has become a servant to the tool.