Skip Navigation

What dotfiles manager do you use?

I'm looking for recommendations for a dotfile manager - there are so many out there I've got a bit of options paralysis!

I'd like a system that can backup all my dotfiles - with version management - and, if I nuked my home directory, could restore them all for me with a simple command.

Thanks in advance for you suggestions!

79 comments
  • cp -r to an external drive. And cp -r back in case something goes wrong.

    I know, it's boring and no way "modern". But hey, it works and it does not require internet access!

  • a git repository configured to ignore basically everything except the dotfiles. For my sway config I load configs from a symlinked folder, which points to a different config depending on the machine being configured.

  • nuking your home directory

    Imho, in that case, you should look int a more proper backup strategy to restore all your files, not just your configs.

    • Or at the very least partition ~ as btrfs/zfs and do regular snapshots. The downside is, of course, that a rollback won't just roll back the dotfiles. But I guess if the scenario is "nuking [the] home directory" then that's probably not an issue.

    • Thanks - yes I do have that, but I also wanted something specific to my dotfiles to make management and restoration a bit easier.

      • I have a vorta backup, running on a regular basis for my home dir which has GBs of data.

        Mounting and restoring files is literally a matter of seconds.

        But if you want something that you can easily take with you, you can go with a symlink/git approach:

        • have a folder "configs"
        • move all your dotfiles thst have NO sensitive data like credentials into that folder
        • symlink them into their proper place
        • use GIT to track them and push them to a git repo

        Once you need them somewhere else, it's just a git pull away... easy as that.

        What I dislike about existing solutions, is they come with their own binaries, conventions, and stuff, but basically do almost the same... this is the "raw way" that will hold up on any system, and almost all of them have git.

  • I've tried several dotfile managers, but after adding my files I interact with them so infrequently I forget how to use them.

    The thing which finally stuck is this method from Atlassian: https://www.atlassian.com/git/tutorials/dotfiles

    Your entire home directory is a bare git repo which ignores untracked files. It's just plain git so there is no additional tool to learn or forget.

    I've put my vim plugins as git submodules so they're easily and efficiently tracked and updated too.

    • I used to use this but nowadays I prefer the single, declarative file approach of Guix Home and Home Manager.

  • I use git and nix (home-manager) for most of my dotfiles. The main advantage of this is that if manages dotfiles, but also you whole user environment, so you can install some software that you need for your rice for example. It's very powerfull, but it takes time to get it to work properly since you have to learn nix expressions !

  • My own intricate system of 4 git repos to manage dotfiles, bash initialization, cli tools/scripts, and system state.

    The last one keeps track of installed packages and "dotfiles" out of the home directory (system config files like /etc/hosts).

  • I use a Git repo for the files, and a simple Makefile to script the correct paths and optional install steps for them

79 comments