Hi! I’m trying out Nix and I’m trying to set up and organize everything. Usually I put all my configs in a directory which is also a git repo and synced to my NAS, using the same subfolders they’d be in, and use GNU Stow to symlink the top-level folders (/dotfiles/home/
to /home/username/
, /dotfiles/etc
to /etc
and /dotfiles/usr
to /usr
) and let it do its thing. Would it cause problems to also do that for configuration.nix?
On Arch I already had a /dotfiles/etc
symlinked to /etc
for my custom keyboard layouts, which worked fine… until the update which moved the location of the GUI keyboard layouts. It prevented the update so I undid the symlinks, updated, and put them again to the new location… but somehow it broke everything except the tty and no Wayland compositor I tried would work anymore (and there went my record of having never broken Arch since the first install over a year ago 😅 )
So I’m kinda wary of doing it on an even more critical file… but also I’m very lazy and having everything in a single repo is very convenient… How do you do it?
The “nix way” to handle this is actually to have all your dotfiles generated and “installed” by Nix as part of your NixOS config (via home-manager), and keep your NixOS config in a git repo that you then
nixos-rebuild
from (either withnixos-rebuild switch -I nixos-config=.
ornixos-rebuild switch --flake .
, depending on if you’re using flakes or not).Actually,
configuration.nix
is not critical to the functioning of the system at all; it is only read at “evaluation time”, i.e. when you are usingnixos-rebuild
. As long as it’s under a VCS (i.e. you won’t lose the contents by the time you want tonixos-rebuild
again), you have nothing to worry about. You can ship a NixOS system without it (in fact that’s kind of the default). (unrelated but fun fact: you can also ship a NixOS system without Nix, it’s not actually needed for it to run!)That’s reassuring thanks! I’m not planning on using home manager for now because it makes more sense to keep original config files so I can use them both on Nix and Arch, but I’ll need to look into it when I set up my media server (I know I know, reasonable people just do a debian server, but that seems really boring 😅 ).
Yes, without the package manager. Shipping “with a language” doesn’t make much sense :)
Ah for a moment I had a false hope that maybe you could replace it with another language that didn’t have error messages from hell 😅