Don’t listen to him! Just start using Nix to manage dependencies and dev environments for your projects but keep your OS the same until you are really good at Nix
How does that work? Let’s say I’m on pop os developing a thing, how would I manage deps and dev envs with nix then? In a VM or what?
I’m a Linux nerd, but I totally don’t get nix. Tried to install some nix package manager on my Debian based distro and it was completely broken (the nix thing, not my os)
I um… didn’t get started yet. But a colleague demoed it to my and it’s kind of between virtual environments and containers, if you’re familiar with Python.
You write a Nix config and specify exactly which versions of which package you want to have. Reproducibility is the main selling point of Nix. Things don’t just break overnight because a dependency of a dependency of a dependency got upgraded. You can always go back to exactly what it was like before. Guaranteed. That’s pretty cool.
Ok so you got that config, then you build and activate it, and it replaces your shell. You enter the Nix shell. You still have access to all your files and directories, but your Nix config controls exactly which versions of your tools you have. gcc, npm, python, maven, whatever you use.
You can see why this makes people want to build an immutable OS.
The main drawback of Nix is that it has a bit of a learning curve. Hence why I haven’t started yet. Maybe it’s time though.
I want to but COSMIC DE.
Too gimmicky
I’d been hearing a lot about NixOS so I did a VM install. It wanted me to setup my own partitions manually without even giving preset sane defaults like I was back in 1994 installing Slackware.
Nope. My OS is a tool, not a lifestyle.
I need to compile my kernel… by hand with tools from beige-age computing.
it wanted me to setup my own partitions manually
You’ve obviously never used nix, it’s GUI installer can auto configure just fine.
When your OS AND apps are declared and stateful a lot of risk and complexity is removed. Configuring is just a bad experience with poor usability and worse documentation.
So, I’m an arch-btwistan, what does nixos do for a gamer/youtuber/low-tier-wannabe-musician? Legit asking, because I really don’t know what makes nixos tick, and the (very little) I’ve read doesn’t really explain the benefits of it
Everything about your OS is defined in a config files and can be rebuilt. You break something you don’t need to do a complete reinstall if you can’t figure it out. Just rebuild the last working configuration. Sharing builds with your friends is easier.
For gaming getting your graphics card going is much simpler. I never had steam and proton games run as well as they do with they nixos defaults
Basically but it’s better, nix has a unique way of doing the underlying the logic which as is own benefits. Also since nix is not a container it doesn’t have any of the speed penalties that come along with that. Since nix is functional as well, it means all operations can be undone. So where you might te build a docker image from scratch or by using a A/B system like other immutable distros it allows nix to just modify the system while it’s running with minimal side effects.
Very well built patches and ways to share them. This is a good thing for gaming as we can try bleeding edge like Arch. But without having to rely on AUR or scripts to copy locally. Thanks to Nix Flakes you simply reference the flake someone shared (after double checking what is in it) and rebuild a NixOS derivation and voila, patch installed. I installed a complete SteamOS in 1 minute with this, reboot and everything works. Even with your locally signed in Steam account 👌
nothing imo, it’s main benefit is making reproducible environments, imagine you need 10 machines to have the exact same things running on it, setting up each one would be a PITA and keeping them the same is near impossible, nixos solves that problem.
it’s not gonna do anything for you, most people just want a working OS system on your PC so that you can do the things you need to do, if you have that, there is no reason to be fucking around with nixos.
Imo the worst part of nix is how it turns into this chicken or the egg scenario. Let me explain, nix is very good at reproducing things. It ensures that all things are the same when installing a piece of software. Once someone writes a nix module, generally speaking, it “just works”. You can always take that nix file and get it to run the same way on another machine. But since most gamers/musicians don’t give two shits about reproducible software, it doesn’t get packaged. And with no packages they will never be interested to get into nix.
As I write this though I realize, many open source projects have struggled with getting contributions from the community. Personally, I just think nix solves the issue of “idk, it works on my machine” better than anything I’ve seen. Being able to reproduce software and stop dependency issues is a very valuble thing, just not for everyone.