NixOS 24.05 "Uakari" Released
nixos.org
nixos.org
It is perhaps also worth pointing out that you can easily grab a newer kernel as well; https://wiki.nixos.org/wiki/Linux_kernel discusses options.
(Which I mostly mention because I skimmed the page, saw 6.6, made a confused face, went back to check that yes I do in fact have Linux 6.8 on my NixOS 23.11 system, then reread and realized they said default which I didn't really process the first time.)
I like that it's about as close to the SteamOS experience that you can get in a third party distribution, and I like that everything is modular (so you could pick whatever desktop you want to pair it with).
It's weird that _everything_ is configuration in Nix. Little stuff like changing your timezone seems to require a NixOS rebuild (which requires a keyboard). GUI settings clash with the Nix way of doing things.
Conceptually, it is very different from NixOS, with image-based updates and all.
Thanks for the advice though.
You mean setting the timezone (going and writing `time.timeZone = "whatever";`)? Because actually doing the rebuild (`nixos-rebuild switch`) would be easy enough to make a button for if you wanted (just make a .desktop file that runs the rebuild command).
I'm not even sure what that would look like. Nix is such a departure from other Linuxen that I don't think it will magically become easier; I expect you'll always need to understand Nix to use it. Maybe better syntax highlighting etc. would help?
I expect it's much easier to learn Nix in the age of LLMs than it would have been before.
- [any] documentation, the majority of nix modules are undocumented and so the only way to figure out what settings are available is to find and read the source code (and even then it could be using a module to convert the definitions to the target config format, in which case there’s even more guessing, but at least the official documentation of that package gives you something)
- coding standards; lots of modules have different variations of camel case, snake case, adjective-noun, noun-adjective, etc so it’s not clear what the correct format of a setting is for an arbitrary package
- flakes just need to be both an official feature and set to be the default way to interact with nix, it just has too many upsides
- Better errors, the current errors are just horrible to read and you end up picking out 1 or 2 spots in several paragraphs of irrelevant code snippets and stack traces
- up to date resources, since the official docs aren’t very beginner friendly, third party resources end up being the way people learn (vimjoyer has been a godsend), but half the time when you try to use those resources, they’re out of date and lead to broken nix configs, having solid official updated documentation to help new users get started in nix would go a long way here
The flakes situation felt like the sort of thing that the next major release would have finally solved… it’s absolutely baffling to me that this is still not offical and enabled by default… I haven’t seen any new decent documentation in over year that doesn’t use flakes.
I haven't followed it closely and I don't want to misrepresent, but as I understand:
- They pushed the founder of the project out of the BDFL role he'd held for 21 years, and
- They started a new "governance" process that included evicting people who disagreed with their tack/tact. It was done in the name of "inclusivity," but it sounds like the bar for excluding people they disagreed with was very low.
The Snowflake guy (Jake Hamilton) is part of the takeover crew. He's got a fork in-waiting if the takeover of mainline Nix doesn't go the way they want:
The controversy started with questionable sponsorship decisions for NixCon, which brought the entire project leadership under scrutiny as it wasn't the first time this had happened.
This, along with some more long-term issues contributed to the creation of an open letter[^1] criticizing the BDFL of Nix. How valid you consider the criticisms is not for me to decide, but I don't think dismissively reducing the issue to a "woke takeover" is helpful.
Rather than waste time and valuable electricity and water on LLM prompts with poor results, just read the docs and learn. It'll be faster—I promise.
In the open source world what drives development is some neck beards obscure opinion on user friendliness. Which likely still involves a command line tool and a config file with an acronym as the config parameter.
Did I ever read a manual or look up docs for MacOS, windows, iOS, or android?
No. That's what's missing from open source. Well it's not missing, but it's like the lowest priority such that it takes a looong time for something that's open source to approach this level of user friendliness.
> No. That's what's missing from open source.
Sounds like a you thing. I consult macOS manpages routinely. Having been away from Windows for a long time, I consult MS docs on Windows and PowerShell pretty much every time I touch Windows.
Aside from all that... if you're too good to read a manual, you're too good for Nix; do everyone a favor and move on.
Nix has lots of real UX issues to fix but trying to onboard or entice users whose expectation is to read nothing and learn nothing would just be a harmful mistake.
However, to efficiently administrate an heterogeneous server fleet, I have not found better yet.
Right now NixOS is mostly used by devs who don't mind doubling development time because that's the extra time it takes to learn and deal with Nixos.
This makes sense for everybody:
An OS with the power of NixOS and ease of use of MacOS or Windows or Ubuntu.