Hacker News new | ask | show | jobs
by keyle 632 days ago
I don't mind configuring my tools to work for me. For example I'm a polyglot, inevitably I work with a lot of tools, IDEs, and programs. I've rigged everything so I have a lot of continuity; and context switching isn't a nightmare.

For some I use VSCode, IntelliJ, Micro or others. They all have similar(ish) shortcuts. It means I can transition so much quicker without grinding my teeth.

My point is, I don't mind configuring my tools. What I do mind, is having ease of transfer between environments, so that my configuration comes with me.

I love IntelliJ's config to cloud, it somewhat just works. It allows me to change something on the work laptop that will apply at night on my home machines. VSCode does the same now (it used to require a plugin and github).

Micro and other tools use a ~/.config/subfolder which also works, I use git to pass stuff around various computers, with various degrees of success.

My .zhsrc / .profile is carried around and I have all my 2-3 letters aliases that do complex things, so I don't need to remember everything. This is a powerful way to be very productive very easily. And if you forgot how it works, just read the file. The amount of time where I saw a senior professional waste time re-googling the same thing over, or fumbling around their shell history has boggled my mind. ref. [1]*

If you're a professional, chances are you're going to cart your configs and settings with you for many years to come. So make it as portable as possible.

Even my lazygit is configured. One time, I got a new job, I left it as default... and forced push changes by mistake (because it's not turned off by default and very easy to fat finger it), and that caused a lot of grief. So be careful about acting proud in being 'zero config'.

I'd recommend being efficient, not a purist in search of minimalism. It also shields you from upstream software changing their default on a whim.

[1] https://xkcd.com/1205/

1 comments

For managing config files I use yadm https://yadm.io/, which I learned of on HN.

Among other great features, it lets me tailor settings per OS (Windows, Mac, Linux) and per client. And my settings are all in git, so they’re easy to save and copy around, and they’re all in one place, not dependent on each tool to know how to save their settings on some server.

Have you used Chezmoi (https://chezmoi.io) before? I've been using that for a few years now; I'd be curious to understand how YADM compares.
I have not used chezmoi, thanks for the pointer. From the comparison chart it looks similar to yadm. It looks like go vs. bash is the biggest difference. It’s occasionally handy to debug yadm’s bash script, although it’s been years since I had to do so. I’ll take a deeper look.
A major reason I stick with yadm, aside from that it works great and offers me no trouble, is that for basic usage I can just reuse my existing familiarity with the git interface, replacing "git" with "yadm" in the command.