What does Sup Forums think of NixOs?

What does Sup Forums think of NixOs?

Other urls found in this thread:

github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/polybar/default.nix
twitter.com/NSFWRedditVideo

It sounds really cool but I have not tried it.

GuixSD is better.

Guix is a testament to FSF's NIH syndrome.

Switching to it from arch this coming week. Wish me luck Sup Forums

good luck user

The logo looks sick at least

good luck user

yyyyyy

The logo represents the user base very nicely.

I've been using NixOS for around 2 weeks now, ask me anything.

I'm a CS student, so I mainly use my computer for programming and writing stuff in latex, and it has worked pretty well so far.

Until now, I was running Ubuntu (inb4 lel noob) but my friends peer-pressured me into switching to Arch for months. I was waiting for the right moment to make the switch (i.e. after my exams) as I didn't want my PC to be left in an unusable state if I fucked up. But then I learned about NixOS and decided it's superior to Arch.

In the meantime I had read all there is to read about installing Arch, having full-disk encryption, getting bluetooth, wifi and all that shit to work. This helped tremendously for installing NixOS.

It still took me forever to understand how NixOS really works. Most installation guides/tutorials just guide you through the basics, which are easy: partition your disk, run nixos-install, edit /etc/nixos/configuration.nix, run nixos-rebuild switch, and reboot. But then, the hard part begins. There are a lot of options that you can set in configuration.nix, and not that much documentation. You can find all available options (with their description) on the NixOS website, but there are just so much that you just have to guess. What I did is copy some stuff from configuration files I found online (lots of guys put it on their GitHub). And if you fuck up you can just reboot and select the previous configuration in the GRUB menu.

Anyway, I have much more to tell, if someone's interested I can talk about the good parts too.

Does it use systemd?

Interested if this isn't pasta

What is special about NixOS?

what about battery life?
I'm looking for a good distro for programming without shitty battery life.
I've tried debian and fedora, and they suck my laptop's battery faster than i can suck my gf's tits

How does it compare to gentoo?

Special snowflake

Holy fuck, why would you run this on a desktop are you guys all seriously fucking retarded? When are you guys ever going to use reproducible configuration files for your single machine network.

Looks interesting but It is Reserach OS not for use.

Literally this. It's like people running puppy on modern thinkpads - because they think it makes them special.

This. Desktop is not where NixOS shines. The fact that you can't even see a process name under htop behind a long hash string makes it a tad unwieldy.

Though I admit it was pretty neat being able to switch from one config to another and have that clean separation. (e.g. Restarting from GNOME to KDE without any GNOME stuff staying in your $path)

Shit, just like any Linux distro

What is it for, then? Servers?

I'm back guys, sorry for the wait!
No complaints regarding battery life. It's about the same as what I had on Ubuntu, maybe even a tad better (Around 5-6 hours of light web browsing). Like on Arch, or Gentoo or all those DIY distros, you have to explicitly configure it to save your battery. I haven't done anything special except add "services.tlp.enable = true" in my configuration.nix. I'm sure I could do even more, but I won't bother.

I never used Gentoo (I tried once, and didn't even finish installing because compiling took hours and my old laptop was getting too hot). But from what I understand, the great thing about Gentoo are USE flags, that let you choose what features you want your software to be compiled with. And some like the fact that everything is compiled from source.

I'd say NixOS (and the Nix package manager in general) is even better. Let me explain. Every package in Nix is defined in the form of a "Nix expression" that define how to compile it (a bit like a PKGBUILD in Arch). But a Nix expression is a function that takes as parameters:
1. the package's dependencies
2. configuration options (à la USE flags)
And the output is your compiled and installed package.
3. implicit stuff, like the package's version, source code, ...
And the output is your compiled and installed package.

Where it becomes interesting, is that all the inputs of this functions are hashed to uniquely identify this particular configuration of the package, meaning that multiple versions can be installed simultaneously (and old versions are kept around to instantly roll back).

What's even greater, is that Nix calculates the hash before attempting to compile, and looks up the hash on the NixOS server to see if it can be downloaded in binary form. They have the "Hydra" system, basically a farm of servers that always compile the latest versions of the Nix expressions, and serving as a continuous integration service.

(more to come)

>wow it's real hard trying to learn how to config all these packages
>let's solve it by creating additional layer of config that people have to learn all over again

Take the Nix expression for polybar as an example:
github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/polybar/default.nix

On top, between the curly braces, are the inputs to the expression. Most of them are other packages (dependencies), but some are "USE flags", like i3Support or mpdSupport, that change how the package is built. These have default values (after the "?"), which is what you get if you don't explicitly set them otherwise (and what gets compiled by Hydra). But if you want MPD and i3 support, you'd add something like this in your NixOS config:

nixpkgs.config.packageOverrides = {
polybar = pkgs.polybar.override {
i3Support = true;
mpdSupport = true;
};
};


And then, the package will be compiled on your machine. Also, if any package depended on polybar, it would use this version instead of the default one. But if you wanted dependencies to use the default polybar instead, you could simply call your custom version something else, like "my-polybar" and the two versions wouldn't clash.

It's surprisingly good on desktops, for many reasons. I've explained some of them already, and I could give you even more, but I have to leave right now. If this thread is still alive when I'm back, I'll explain some more.

>switching from meme to memest
good job fag

>NixOS is DevOps friendly and has tools dedicated to deployment tasks.

topkek