To say I am a massive fan of Linux dotfiles and tools would be an understatement. I have invested more time than I care to admit into crafting the perfect concoction of Linux tools and their associated dotfiles to get the most out of my system. From ripgrep to zoxide, a custom built dwm setup to hyprland…I have tried (or at least heard of) a good chunk of the tools out there. I also switch between several different Linux devices/operating systems, so I need something that would work across all of my systems.

Part of this quest to build the perfect tools set up also involved the perfect tool to manage all of these files. I went through quite the rotation of different dotfiles management tools over the years. Way back in the day I admitted just copied everything into a git repo folder from ~/….yuck! Eventually I came to my senses and stumbled across stow, which manages symlinks pointing from one directory to another (in this case, my dotfiles -> ~/).

More time went one, and I found the classic Atlassian bare git repo tutorial. This scratched the itch nicely, and I stuck with this for quite some time. Somewhere in there, I also wrote up a large bootstrapping script to install all of my system dependencies, complete with a mini-TUI for selecting different options.

However, the restless part of me kept seeking and searching for the golden goose of dotfiles management…and behold! chezmoi! At long last, I had found the ultimate tool for managing my precious configuration files across all of my different systems. Armed with my bootstrap scripts and chezmoi repo, I had everything I needed to manage my Linux systems until the end of time.

…unless

Something about all of the tool churning, 100s of commits to my dotfiles repos, and general restlessness just…didn’t sit right. I had invested all of this time in finding the perfect solution to a problem, which got me thinking whether this was the problem that needed solving in the first place. Perhaps, the problem was not that I needed just one more tool, but rather that I needed less tools.

…and so, I took another look at my set up.

How many of the tools I was carrying around did I truly need?

How complicated does a bootstrapping script need to be?

The more I thought about these questions, the more I realized the problem I actually needed to solve was to carrying too much junk around. So, I reviewed all of the dependencies I had collected, and aggressively whittled down my list of tools to a much more modest set than I started with. My massive bootstrapping script project was reduced to a few simple scripts that accomplished their goal of a one-time bootstrap just as well.

After all of the reduction, I honestly found that I missed much of what I had a lot less than I thought. All of the tools I thought I needed were actually unnecessary, and/or easily replaced with something minimal that I probably already had installed.

I think this temptation to keep searching, and grabbing, for the next thing applies to a great many things in life. Finding the next thing won’t make us happy, but perhaps we could actually be happy with what we already do have…and appreciate those things for what they are.

I have found the more I reduce complexity and clutter in other areas of my life, the more free I feel to devote energy towards things that actually matter, rather than wasting that energy on solving problems I never even had to begin with.

Perhaps, there are some areas of your life that could stand to be de-cluttered too.