tldr; Is it worth the effort to learn and use Home Manager (with flakes)?

I discovered NixOS a few weeks ago, and spent a bit of time reading and learning… Then since I had a week off for Thanksgiving I jumped in, and installed it on my laptop as an experiment. I then spent the rest of the week updating my desktop and my home server as well.

I have my config in a git repo https://github.com/minego/nixos-config and I have been using flakes. I am sure there is a lot of room for improvements (and I’m very open to suggestions if you have them) but I’m pretty happy with what I have so far.

I think I’m going to install it on my kids’ computers soon as well, so I can easily manage their configuration, and make sure they are regularly updated, etc.

But, despite all this I haven’t touched Home Manager yet, and I find it rather daunting. I’m not sure why though… I have a dotfiles repo that I’ve used for a long time. It uses gnu stow to create appropriate symlinks.

So, is it worth switching to Home Manager, and trying to replace my dotfiles repo with that? Aside from my neovim config (which is a whole repo on its own) I think I probably could convert everything, and it might improve things? I don’t know…

  • mister_drgnB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Yes.

    1. Home-manager is super useful for configuring applications. At a minimum, you can use it to install dotfiles, but it has dedicated options for configuring many popular programs, such that you can fully configuring them via nix config files instead of dotfiles, if you prefer. You can also configure your system itself (e.g. you desktop environment). Basically, you get a bunch more options to use on top of the NixOS options.

    2. There’s no reason to be daunted by home-manager. You will need to spend a little time working out how to integrate home-manager into your configuration (you can do much of this in your flake file, I suggest looking at the home-manager page on the nixos wiki). After that, it’s just managing nix config files, same as you are already doing.