I’m fairly new to NixOS; I’ve only been using it for 3 months.
So far, the whole configuration.nix
, along with declarative, immutable, and reproducibility features, have been some of the best features to keep me using NixOS. I love how I’m able to migrate my configuration.nix to different laptops/desktops, and how it reproduces itself with a few mere commands.
…But what are Flakes?
I haven’t gone as far to venture into Flakes, which I keep reading is “experimental,” but I also don’t understand what they are. I’ve tried reading from the wiki: Flakes - NixOS Wiki. But I don’t seem to understand the benefits of using flakes, such as “Nix expression,” or how it improves the Nix ecosystem.
The only things I’ve been figuring out is to see what packages work or are broken on Nix, and how I would download the Flatpak version if the Nix pkgs fail to work.
I’ve also been figuring out if NixOS poses any specific necessary hardware configuration on different devices (computers with AMD/nvidia/intel GPUs, Mac desktops, and etc.). I also use NixOS on an external M.2 drive so I can test it on different hardware, and to see if it conflicts from system to system.
But aside from that, I don’t know why I would bother learning or trying out Flakes. Can anyone point me to a direction, some useful reading material, or break it down for me in a few sentences?
Thanks!