Transitioned from gnu stow to nix/home-manager and haven't looked back.
The great part about that setup is my configuration contains not just my dotfiles, but also the installation of the programs themselves.
I don't use the "nix" way of configuration though, I instead have home manager symlink everthing for me. Then I can bail on nix anytime and not have to translate all my files back to yaml.
Glad programs like the above exist though for those who don't want to sink time into nix but want to reasonably track configuration.
I’m fully invested in Nix/Home Manager, and I use YADM to manage the nix files and other random stuff that isn’t in Home Manager yet or doesn’t fit.
IMO it’s a good fit to use them together. YADM lets me do things like easily setting per-host configurations, encrypting secret files, etc.
My new host setup is to use YADM to pull my dot files, then install nix and run home-manager to install everything else. YADM even supports bootstrapping to automate that for me
Without more information, that sounds like extra complexity. You can easily do per-host configurations using home-manager. Actually, I consider that one of the perks of the nix based setup, so I'm not sure why I'd want another tool for that.
Gnu guix has a system that does this as well. I just started using it and have had use for it already: replicating my home environment on another computer was flawless.
Copied one dir over, ran guix home reconfigure and after everything installed, the environment was... Almost the same. I just need to write an integration that installs flatpaks since some apps are only available there.
Does this program allow linking the same file to different locations on MacOS vs Linux? I have a few config files like the vscode settings.json that end up in different paths but have the same content. (I see it allows for files that are OS specific but not clear if there is a way to keep them in sync if they are the same, but just need different paths)
I use stow at the moment and it is almost perfect but I don't believe it can do that without multiple symlinks or something messy. Didn't like home manager and other dotfiles solutions seemed too bloated for my case
I'm satisfied with Ansible for this use case
Transitioned from gnu stow to nix/home-manager and haven't looked back.
The great part about that setup is my configuration contains not just my dotfiles, but also the installation of the programs themselves.
I don't use the "nix" way of configuration though, I instead have home manager symlink everthing for me. Then I can bail on nix anytime and not have to translate all my files back to yaml.
Glad programs like the above exist though for those who don't want to sink time into nix but want to reasonably track configuration.
I’m fully invested in Nix/Home Manager, and I use YADM to manage the nix files and other random stuff that isn’t in Home Manager yet or doesn’t fit.
IMO it’s a good fit to use them together. YADM lets me do things like easily setting per-host configurations, encrypting secret files, etc.
My new host setup is to use YADM to pull my dot files, then install nix and run home-manager to install everything else. YADM even supports bootstrapping to automate that for me
I wrote a little tool that symlinks stuff from your git repo into $HOME.
https://github.com/Lillecarl/nixos/blob/master/users/lilleca... https://github.com/Lillecarl/nixos/blob/master/scripts/uglin...
There's something called mkOutOfStoreSymlink that does this natively, but it makes a symlinks from $HOME -> store -> git repo which annoyed me a bit.
For me getting my home environment up and running is just "FLAKE=$PWD nix run nixpkgs#home-manager -- --flake $FLAKE - - impure"
It's nice to not use "Real home manager" for some kinds of configurations since Nix is pretty slow.
Without more information, that sounds like extra complexity. You can easily do per-host configurations using home-manager. Actually, I consider that one of the perks of the nix based setup, so I'm not sure why I'd want another tool for that.
Gnu guix has a system that does this as well. I just started using it and have had use for it already: replicating my home environment on another computer was flawless.
Copied one dir over, ran guix home reconfigure and after everything installed, the environment was... Almost the same. I just need to write an integration that installs flatpaks since some apps are only available there.
Does this program allow linking the same file to different locations on MacOS vs Linux? I have a few config files like the vscode settings.json that end up in different paths but have the same content. (I see it allows for files that are OS specific but not clear if there is a way to keep them in sync if they are the same, but just need different paths)
I use stow at the moment and it is almost perfect but I don't believe it can do that without multiple symlinks or something messy. Didn't like home manager and other dotfiles solutions seemed too bloated for my case
Yes, it does. https://yadm.io/docs/alternates#
I used yadm for a while. I switched to Chezmoi (https://www.chezmoi.io) though. Same ideas, but much better execution IMO.
I'm surprised by this because I find the chezmoi workflow very annoying, to the extent that I wrote my own thing (see my other comment).
Where did you find yadm fall short?
Cool, I'm going to give this a try.
I got frustrated with the chezmoi workflow and had Claude write something similar for me the other day.
https://github.com/snth/dot
It's just a simple bash script that acts as a wrapper around git and copies tracked files to a dotfiles directory and back.
Some more dotfiles resources:
https://dotfiles.github.io/ https://vcs-home.branchable.com/
Can’t we stop naming things with “Yet Another,” yet?
Yet Another Considered Harmful Is All You Need
YAQTSNT
“Yet another question to say no to”
Yet Another Considered Harmful
Yet Another Complain About This?