I've been bikeshedding with dotfiles for 20 years and ended up with Chezmoi[0] in the end.
It came down to the fact that it's easy to install and easy to bootstrap as long as your dotfiles are in a public Github repo. It also integrates with a bunch of password managers to grab any secrets you might need in addition.
I use the "run_onchange_install-packages.sh.tmpl" to install basic packages to computers I bootstrap chezmoi on, it adapts based on the operating system using chezmoi's templating system[1]
It takes a few tries to remember the flow of "chezmoi add"ing a file after editing it so that you can push it to Github. After that it's just a matter of chezmoi update on your other computers to bring them up to date.
For .gitconfig I use a .gitconfig.local file on my work computer to override my personal credentials and not have to mess with templating the file.
It came down to the fact that it's easy to install and easy to bootstrap as long as your dotfiles are in a public Github repo. It also integrates with a bunch of password managers to grab any secrets you might need in addition.
I use the "run_onchange_install-packages.sh.tmpl" to install basic packages to computers I bootstrap chezmoi on, it adapts based on the operating system using chezmoi's templating system[1]
It takes a few tries to remember the flow of "chezmoi add"ing a file after editing it so that you can push it to Github. After that it's just a matter of chezmoi update on your other computers to bring them up to date.
For .gitconfig I use a .gitconfig.local file on my work computer to override my personal credentials and not have to mess with templating the file.
[0] https://www.chezmoi.io [1] https://www.chezmoi.io/user-guide/advanced/install-packages-...