Going Configless

I’ve been going on a custom software config detox recently. I threw out my tmux.conf file. I’ve shrunk my .vimrc file by 50%. As you can probably tell, I’m quite a config junkie. Turned out I hardly used half of them.

For the small number of frequently used aliases, I couldn’t live without the them as I was so used to it. I’ll hop onto a newly provisioned server and forget that g no longer means git. That g undo was set up to be an alias for git reset --soft HEAD^, but I’ll never remember the latter.

I no longer know how to open new vertical panels on default tmux. I was too comfortable with the | and  approach to opening vertical and horizontal panes. Or that long bash alias for a commonly used command masking the CLI flags whose existence I’m not familiar enough to explain. I ended up launching that Docker container with the wrong environment variables.

Life was a lot simpler back when I started to learn the ropes around the terminal. It was plain bash. Then came oh-my-zsh, and I had a bunch more custom magic commands, forming a huge cruft above the core tools that I deal with. I’ll have to set this all up before being productive when I work off a new environment. It’s as if I’ve lost dexterity. I guess this is analogous to how a pilot forgets how to fly a plane manually due to decades of relying on the autopilot system.

Before you stick another alias onto your .bashrc file, ask yourself if it’s going to hurt more than benefit you in the long run.

A good thought experiment is to ask yourself: “Do I know what my custom configs do, and can I replicate the same behavior in the absence of these configs, but still achieve the same result?”

It forces me to learn the tool itself rather than the magic command that is “supposed to tell what the tool to do”. I still keep some around though, but I’ve removed anything that cost noticeably more effort than the defaults. I try to get by with as little of these as I can.

I’ve Marie Kondo’ed my workflow. It now brings me joy when I use a vanilla system without taking a hit in productivity. It probably prevented a couple costly mistakes too. I’ll just fire up a terminal in bash, and I’m ready to go. Less is more.