Aswin Mohan

handcrafted by someone who loves code (mobile, frontend, backend), design and life.

I'm always up for meeting new people and sharing ideas or a good joke. Ping me at [email protected] and let's talk.

2023-Oct-16

Minimal Config, or How I Learnt to Love the Defaults.

Back in my “I have a lot of time on my hands days” at college, I used to spend an inordinate amount of time configuring my software tools. Running custom tiling window managers, making Vim work with multi-pane terminals, supercharged command prompts that showed everything from git status to the weather, and fiddling with font rendering for just the right thickness of ligatures was my life.

I did all this believing that I was improving my productivity in the process. As a craftsman, I thought I should be proud of the tools I use and should shape them exactly to my liking. Turns out configuring the tools turned into an obsession on its own, robbing me of the elusive productivity that I so desired.

An addiction

Each new layer of configuration and plugins needed to work with the existing set of configurations and plugins. Everything started to feel like a huge game of Jenga where the pieces would randomly fall down even if you’re in the other room or with a simple update. Since the combination of plugins and configurations was too different for a pre-existing solution to exist, it became a team effort on forums and bug trackers. Suddenly, I’m spending days configuring custom macOS kexts, figuring out why my config doesn’t work with the latest HEAD branch, and why I have a rogue pixel on the far right of the screen, rather than working on the things that I was getting paid to do.

Wake-up call

That’s when I chose to give it all up for a life of defaults. I wanted something that just works, no bells and whistles, didn’t matter whether it was open or closed as long as it stayed out of my way. I wanted something invisible. That’s when I said my final goodbyes to Linux, bought a MacBook, and just started working. Spend time to learn the defaults, and if something was borderline irritating, then only configure it away or learn to live with it.

So now my terminal runs the default theme and the default font, with a close-to-default Fish shell with two plugins. I run Doom Emacs with 51 lines of config file with the majority being improvements for Elixir. I also made the choice to learn the default keybindings of any software that I come across rather than bending it to my will because muscle memory can be retrained, and I can be as fast on someone else’s machine as well.

I chose tools that don’t require a lot of customization, but the defaults made sense. Tools like Doom Emacs, Fish Shell, and VSCode do this right. They do a lot of things right; you configure the low-hanging fruits and learn to live without the rest.

So, I have settled for a closed system that is as default as it comes. What have I gained by settling for such a simple digital life? Everything is much more stable now; almost nothing breaks on updates, and finally, I can do what all these tools were supposed to do from the start. Let me work on the things that really matter and stay out of the way because, at the end of the day, no one is going to hire someone who sharpens their axe all day without cutting down the tree.