How different (if at all) does Nixos feel as a daily driver, if at all? Is it only about getting used to the system, or does it require to do everything the Nixos way?
Also how does user-level configuration work? Does the upgrade system just ignore your $HOME in terms of version control?
All package installation and configuration is handled via config files, so it’s easy to keep track of what’s installed. Also makes re-installation convenient and easy (this is also great if you’re fond of unixporn-style setups).
Because it uses config files to manage this, you can also take advantage of VCS.
Instead of having to work with several shitty DSLs to configure your system, now you only have to use one!
Being able to install multiple versions of the same library is nice. With Nix you can just install whatever the fuck you want, really. Want to use DisplayCAL, but can’t because it was dropped from the current release’s repository for still depending on python 2? No problem, just have your flake pull it from a previous release when it was still in the repos; it’ll just work because builds are done in isolation.
The generation system makes updates fearless, since if something breaks you just rollback.
Development is both better and more annoying. There’s no FHS, so you have to set up a dev environment with a flake every time you want to do a project. This is nice because you don’t miss dependencies as everything has to be explicitly laid out in the flake and other Nix/NixOS users can share your flake and get the same exact dev environment (kiss “it works on my machine” excuses goodbye). Annoying both because you’re required to put in more forward planning with your dev environment and also because it breaks language-specific package managers, so you’re limited to supported languages.
You can’t just git clone/make/install stuff from GitHub, as there needs to be a flake first. If the software already has one included, great! If it doesn’t, you’ll be making it. If you need a dependency that currently isn’t packaged for Nix, you’ll be making more than one. If the software is difficult to package, god help you.
Nix documentation can be really lackluster and also assumes you’re Linux-savvy.
Also how does user-level configuration work?
You use a 3rd party tool called home-manager for this. It provides about the same experience as the system config and has more configuration options for software, so should be preferred when it makes sense.
Overall, it’s great if you’re Linux-savvy and is one of the few distros that is legitimately innovative. Said innovation can also be a pain in the ass on occasion though, but still worth it.
How different (if at all) does Nixos feel as a daily driver, if at all? Is it only about getting used to the system, or does it require to do everything the Nixos way?
Also how does user-level configuration work? Does the upgrade system just ignore your $HOME in terms of version control?
deleted by creator
Thanks for this write up.
You use a 3rd party tool called home-manager for this. It provides about the same experience as the system config and has more configuration options for software, so should be preferred when it makes sense.
Overall, it’s great if you’re Linux-savvy and is one of the few distros that is legitimately innovative. Said innovation can also be a pain in the ass on occasion though, but still worth it.