

You can install chezmoi and your dotfiles with a single command, without needing Python installed, or even git. chezmoi is easy to install, quick to start with, and is very powerful.
#Dotbot vs yadm code
So now even if Dotbot doesn’t support a feature I want, I can just code a new plugin and dotbot can pass all the information needed to it! Plus, it’s Python based and is version agnostic! (For example, I have antigen as a submodule that gets initialized with the install script.) It works as a submodule with a boot/install script that’s also idempotent.Īlong with that, it supports the use of custom commands to be run, which makes it easy to incorporate other submodules into the repo.

It uses a YAML or JSON configuration file, which I really appreciate because it makes the system very tunable to individual needs. I won’t go too much into what Dotbot does, you can read that on it’s page, but Dotbot is what I think I’ll stick with. So after a few days of trying it out, YADM wasn’t for me. The other aspect that I didn’t like so much was the fact that YADM used the home directory as the primary git repo, meaning I couldn’t rename paths or files to make them easier to edit or see inside the repo.

With YADM there wasn’t enough configuration for me to change the behavior to how I wanted it. These are stored on a separate drive, mounted in my home at ~/unhexium/, but obviously I don’t want that folder being created on the non-graphical systems. I also happen to keep my Team Fortress 2 configs in the repo as well, since “hey why not just VCS everything right?” Looking for a solutionĪt first, I started browsing for solutions, some of the first few resources I found online:Īt first I tried YADM, which was working well until I got to the per-device filters. This was something that was important because I had GUI tools configs alongside my standard shell dotfiles. It also did not do setup properly on graphical vs non-graphical systems.
#Dotbot vs yadm manual
This script was not idempotent in any way, meaning I still had to make manual edits whenever I had to fix a partial install. This was a good idea in theory, however my execution was very poor since I didn’t spend that much time on design. So my first idea: make a shell script that will do the setup for me. I spent way too much time doing the symlink dance on new systems, or updating the changes on all the systems when I would fix a small bug. Originally I had my git repo in ~/code/configs/ and I would just manually symlink or hardlink out the configs I needed for a specific system. Git is obviously a very popular backend for these tools, however you don’t need to be super experienced with it, as there are a lot of tools that simplify the experience and can do a lot for reducing the amount of work you have to do managing them yourself. Now a lot of power users already know the question, “What do you use to manage your dotfiles?”īut a surprising amount of people who spend time customizing their dotfiles don’t know about the numerous tools that are available to help you manage them.
