I have a modular family of git repos with a &#x27;dotfiles&#x27; one that pulls in the dependencies via bower and handles various bootstrapping and install steps. I also have one for my system config which works similarly. Vim, zsh, and tmux have their own standalone repos with one step install and updating scripts. They are written as normal plugins that load other plugins.<p>I want to avoid vendor lock-in to something like chef for this. The idea is that everything is either defined in a tool-agnostic config file, and bootstrapping &#x2F; installing &#x2F; updating the dependencies is handled by simple shell scripts. Down the road I can always swap out the tooling (bower, config_curator, archutil) without updating code in my repos since state is defined as data.<p>I don&#x27;t like syslinks or putting ~&#x2F; under git as I don&#x27;t want my working tree to affect my dotfiles until I run an &quot;install&quot; command.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;rxrc" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rxrc</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;rxrc&#x2F;dotfiles" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rxrc&#x2F;dotfiles</a>