I'm tired of making decisions

Decisions are our keys to the ethereal freedom, but they are also our shackles to the earth. I’ve been thinking a lot about what makes a system pleasant for me to use, particularly as a workstation. I’ve become disillusioned with a lot of Linux distributions as of late, not for technical reasons, but just because many of them feel cause me to feel depressed and dejected when I work with them. One of the primary factors I’ve identified is how they reckon with choice. What do they allow me to choose? What do they force me to choose? This balance is why I use Puppy Linux, despite everything, and why I’ve gone from being an Arch Linux zealot to avoiding it at all costs.

But before I start bikeshedding Linux distributions with you, my thesis: making too many decisions is bad for my health, so I don’t want to make decisions that don’t matter.

Decisions do not come free of charge, and they are exhausting. The degree to which that exhaustion strikes varies depending on your emotional state, baseline load, disabilities, and so on. When I was younger, I had very few decisions I had to make. I had to decide what to eat for breakfast, what to eat for lunch, what to eat for dinner, and that was it. School made all my daily decisions for me, and my parents provided shelter from big questions like where to live or how much to spend on groceries or all the other fun things that come with living a life. So then, I was free to direct my decision-making to whatever I wanted.

First it was which music to listen to, which Minecraft mods to install. Then it was which IDE I wanted to use, which vim plugins, which Ubuntu variant. When I found Arch Linux, it was like a game. I had the power to design my system in a manner that I’d never had before, choosing which bootloader to use, which display manager, which window manager, which file browser. I’d scroll through the Arch Linux List of Applications for hours, looking at every category, carefully reading about every application, and trying them out to find what I thought was the best.

These days I have too much other stuff to decide. The realities of living are a long list of decisions that anyone reading this that’s been around long enough will be familiar with. Disabilities add on to this. As I manage my RSI, I’m faced with choosing how long I’m allowed to interact with my phone at any moment, which keyboards I can use and where, how long I can play a game without hurting myself. I have to plan out how I’m going to lift a heavy object, and exactly where I’m going to take it, so I don’t cause a flare-up in my hands from doing so.

As a result, I now find getting bogged down in the minutia of my workstation to be an incredibly exhausting and emotionally draining act. This was particularly surprising to me, and I rejected it for awhile, until I saw that it kept playing out over and over again. Choosing which login manager to use is a decision that feels ultimately meaningless to me, as they all suit my needs just fine, and all I really want is to log into my system. The same is true for choosing my status bar, my battery monitor, my audio server, the tool that handles my screen brightness keys.

With Arch Linux, this problem is relegated solely to which software to use and how to configure it. Alpine is mostly on the same page, but has the added cost of choosing which subpackages of the software to install (-docs, etc.). Gentoo is the absolute worst of this world, where every package comes with USE flags to determine precisely how it’s configured and built, and what other dependencies it should pull in.

Even once I’ve made these decisions, if I ever have to install again, I have to either remember the answers or make them again. I’ve got to go find all my little config files for every single bit. I can speed-run installing Arch in about 15 minutes, but it takes six months before I feel like I’ve finished setting it up.

It’s important to understand that these are not criticisms of the systems, but rather an analysis of why they don’t work for me. I wrote a post just a couple months ago about installing Gentoo on an ARM SBC, and the flexibility of the system was a huge boon to getting the hardware working to the extent that I did. All of these exist the way they do to solve a problem.

So if my problem is decisions, why don’t I just go buy a mac? macOS is all about Apple making the decisions for you right?

It certainly is, and I did go down this road. For awhile, I even went as far as living exclusively from an iPad. But here, the pendulum swings. It’s true that I want an environment that makes decisions for me, but I do not want an environment that forces me to live with those decisions in whole, to take it as an all or nothing package. With macOS, if you like what they make, you’re living well. If you don’t like a decision, in many cases it’s nigh-impossible to do something about it and change it, unless you’re an ex-apple engineer well versed in hacking at private APIs.

What about something like Ubuntu? It does address low level things like auto-mounting flash drives when I plug them in, but it really would like me to use snaps (I would prefer not to), honestly it still pushed a great deal of choice onto me at the application level. These days, very few applications come in the Ubuntu installation, and if you’re expecting something like a CD burner program, audio editor, image editor, or partition editor to come built in you’re not going to find it. That’s true of a lot of distributions today. The rise of broadband has left behind the traditional “everything you need is on the CD” approach, and moved towards maintainers largely focusing on creating a very shiny fresh installation that does almost nothing of actual value out of the box.

So I’ve found myself in love with Puppy Linux.

I think a lot of people don’t realize that Puppy Linux is actually a pretty broad family of distributions, each building on top of different package sets from other distributions, like Debian, Ubuntu, Slackware, and Void Linux. Some of the comments I’ve made with regards to not having enough out of the box still apply to some of the pups, like VanillaDpup, a very minimal pup that sprinkles a bit of Puppy magic on top of an otherwise largely stock debian system.

Others though, they feel complete right from first boot. You’ll find multimedia tools, tools for creating bootable devices, tools for collating all of your low level system information, tools for organizing contacts and managing a calendar. There’s a built-in password manager, an IRC client, a webcam recorder, an email client, a torrent downloader. Hell, there’s a built-in program for writing and hosting a personal blog. There’s a fucking PORT SCANNER. BUILT. IN!!! What the FUCK? There is a GUI for configuring and launching samba, a GUI for making SIP calls I am losing my MIND. That’s not even half of it, and all of this is just in the base image for FossaPup64, which I might add, fits on a CD-R with 300MB to spare.

And of course I can still install packages from ubuntu or debian or whatever.

application chooser with choices for every app under the sun

To complement all this, I feel like I genuinely do have complete control of my system. There’s an actually intuitive UI for changing default applications. There’s a GUI for cron jobs. I can edit the bootup script to add in or take out whatever I want and I don’t have to worry about those changes getting stomped on later or causing issues. Hell, I could swap out the init system manually if I really wanted, though I’m not sure why I would. Most of the time there’s a configuration option to do what I want, and when there isn’t I can just change the system, because it’s designed to be my system, not my maintainer’s system.

The downside is that in comparison with the mainstream, the system is not particularly maintainable in the long term. Years down the line I fully expect to be installing a new system from scratch and migrating my configurations over to that. Sometimes packages that rely heavily on post-install scripts don’t install quite right. I would never deploy a fleet of puppy linux systems, nor would I feel inclined to try and run it in a datacenter. I’m quite happy with other options for that.

But the key behind puppy’s attraction for me is that it makes so many decisions for me, guides me through the decisions I need to make myself, but allows me to question, challenge, and change ANY of its choices however I see fit without putting up a fight. And the folks on the forum are particularly helpful too. I haven’t really gotten all of that together anywhere else.

I’m tired of making choices that don’t matter, but I still want options that make a difference to me. If I can get that in a more maintainable way, honestly I’d take it, but with Puppy, for now, I’ve found a zen.