DEV Community

Discussion on: A Brief Guide To Manage Dotfiles

Collapse
 
pauljlucas profile image
Paul J. Lucas

This solution seems unnecessarily heavyweight. Or perhaps I'm just not getting it. What problem does this solve that can't be more trivially solved using GNU Make? For example, my own environment files include not only dot files, but common scripts in bin, as well as other files.

To add a file, just add it in the correct directory using normal git commands. To install it, just run make that will create the symlinks.

Collapse
 
jerrynsh profile image
Jerry Ng

TL;DR: as a noob, I think chezmoi is super easy to use & learn & it comes with very good documentation

I feel like can't do the creators & developers enough justice here without putting this here. I think they are doing a pretty good job at explaining the why's.

As for me:
I don't find it unnecessarily heavyweight.
I had no prior experience in managing dotfiles, yet what chezmoi provides is the ability to abstract all these "magics" with ease of use (super important for me).
Why? As an average Linux user, I find it harder to do things "correctly" as what you have done. While it will benefit me in the long run to learn the nitty-gritty details, I think the time taken for me to do so isn't as rewarding.

I'd rather use a tool that has gotten most use cases "figured out" and I'll just be a happy user (rather than having to figure out how to do things correctly myself.)

Collapse
 
cyberjack profile image
CyberJack

It can do more than described in this post.

For me, one of the biggest wins is personalisation. You can use the same configuration across multiple machines, while still being able to control machine-specific details. Chezmoi can use templates (using the go text/template syntax), which allows you to personalise dotfiles based on the operating system, architecture, and hostname. So, for example, you can use the same global .gitconfig file privately and at work and use a different username and email address on each machine, while still using a single dotfile repository.

It also supports secrets, which can be retrieved from one of the many password managers it supports, and it also supports full-file encryption using GPG, age or any other tool you prefer.

On top of that, it supports dry-runs, so you can see the differences before overwriting any existing configuration.