TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Dotfiles Management Tools?

35 pointsby mthwsjc_about 4 years ago
My customized shell script isn&#x27;t as robust as it should be and I don&#x27;t want to reinvent an inferior version of what must surely already exist.<p>What tools would you recommend for managing dotfiles that are robust, doesn&#x27;t have external dependencies, uses git and are idempotent?<p>I&#x27;d like something that manages directories of files (e.g. ~&#x2F;.vim&#x2F;ftplugin&#x2F;) in sub-directories, as well as in $HOME. If the tool can deal with multiple systems (MacOS, CentOS, debian) then even better!<p>Thanks!

11 comments

knoebberabout 4 years ago
Arch wiki has a nice list: <a href="https:&#x2F;&#x2F;wiki.archlinux.org&#x2F;index.php&#x2F;Dotfiles#Tools" rel="nofollow">https:&#x2F;&#x2F;wiki.archlinux.org&#x2F;index.php&#x2F;Dotfiles#Tools</a><p>I made a dotfile management tool: <a href="https:&#x2F;&#x2F;github.com&#x2F;knoebber&#x2F;dotfile" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;knoebber&#x2F;dotfile</a> , but it&#x27;s not based on git or designed for directories of files.<p>I think Chezmoi would fit your usecase well: <a href="https:&#x2F;&#x2F;www.chezmoi.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.chezmoi.io&#x2F;</a>
zestsabout 4 years ago
Here&#x27;s a guide using a git bare repository: <a href="https:&#x2F;&#x2F;www.atlassian.com&#x2F;git&#x2F;tutorials&#x2F;dotfiles" rel="nofollow">https:&#x2F;&#x2F;www.atlassian.com&#x2F;git&#x2F;tutorials&#x2F;dotfiles</a>
评论 #26869028 未加载
评论 #26869764 未加载
评论 #26868576 未加载
TheLocehiliosanabout 4 years ago
I’m biased, but would recommend trying yadm.<p><a href="https:&#x2F;&#x2F;yadm.io" rel="nofollow">https:&#x2F;&#x2F;yadm.io</a><p>I specifically have a design goal of very little external dependency. It only requires Git and Bash be present, so it is quite portable. Many people even use it on some network equipment. You can simply download the script if it isn’t packaged somewhere.<p>It can easily handle directories of files, but also submodules. Many people add vim plugin Git repos directly as submodules.<p>If you are familiar with Git, you’ll find yadm extremely easy to use. When you need them, more features are there to solve specific problems, like bootstrapping operations, encrypting private data, templating, or system dependent alternate files.<p>On a new system you can quickly bootstrap your existing dotfiles repo using <a href="https:&#x2F;&#x2F;bootstrap.yadm.io" rel="nofollow">https:&#x2F;&#x2F;bootstrap.yadm.io</a>, without yadm installed yet. This is mostly useful if you’ve included yadm directly in you dotfiles (directly, or as a submodule, or as some installation during bootstrap).
seniorivnabout 4 years ago
<a href="https:&#x2F;&#x2F;github.com&#x2F;nix-community&#x2F;home-manager" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;nix-community&#x2F;home-manager</a> is much more than that, but it can be easily used as a basic dotfiles manager the way you described it
jmercourisabout 4 years ago
Gnu Stow is something I&#x27;ve often heard referenced. Disclaimer: I have no experience using it.
评论 #26868309 未加载
评论 #26868282 未加载
评论 #26868329 未加载
epakaiabout 4 years ago
I use yadm (<a href="https:&#x2F;&#x2F;yadm.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;yadm.io&#x2F;</a>), and like it for dealing with multiple systems because of it&#x27;s alternates system (<a href="https:&#x2F;&#x2F;yadm.io&#x2F;docs&#x2F;alternates#" rel="nofollow">https:&#x2F;&#x2F;yadm.io&#x2F;docs&#x2F;alternates#</a>). It&#x27;s git based, and works on various systems (your list is covered).<p>edit: Note if you&#x27;re on Debian stable, the current package is 1.x. At this point testing has moved on to 3.x. It&#x27;s probably worth going straight to 3.x to avoid reworking alternates and dealing with other changes. The testing&#x2F;unstable package is easy to backport (look up simple sid backport).
vulcan01about 4 years ago
Although I just use git (with symlinks from ~&#x2F;.dotfiles to wherever the software is actually expecting the config), most people I know use <a href="https:&#x2F;&#x2F;yadm.io" rel="nofollow">https:&#x2F;&#x2F;yadm.io</a> instead.
mthwsjc_about 4 years ago
chezmoi [1] looks like a tool for power-users. I&#x27;ll give it a try and see how it goes. It seems to be more capable (and more complex) than dotbot [2]<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;twpayne&#x2F;chezmoi" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;twpayne&#x2F;chezmoi</a><p>[2] <a href="https:&#x2F;&#x2F;github.com&#x2F;anishathalye&#x2F;dotbot#plugins" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;anishathalye&#x2F;dotbot#plugins</a>
markemerabout 4 years ago
I’ve been using Chezmoi for a while now, I rather like it.
genpfaultabout 4 years ago
Hardmode: INI canonicalization + some sort of per-section&#x2F;key .gitignore for &#x27;noisy&#x27; or machine-specific data.
qq4about 4 years ago
Can&#x27;t get much simpler than git and stow