Remix.run Logo
jbeard4 5 days ago

> NixOS is a superpower to me

Can you expand on this? Just curious what is the main value-add you are getting from NixOS in particular?

danieldk 5 days ago | parent | next [-]

- Fully declarative. I can bring up a system in 5-10 minutes (depending on internet speed) and the system configuration is exactly as any other system.

- Great modules for programs/services in NixOS and home manager. So I typically do not have to figure out what configuration format something uses. Most common options are exposed as module options and for options that are not exposed, it's often possible to write the configuration in Nix (or worst case a string that gets added to the configuration). I can access the documentation of all modules with a simple _man configuration.nix_ or `man home-configuration.nix`.

- I can override arbitrary packages with custom build options, etc. I don't have to maintain separate .spec/rules files or anything. I can just put a somePackage.override/overrideAttrs somewhere in my system configuration and the package customizations are there with my system configuration and always get built with the system.

- Packaging something to hook it up in my system is low-effort. nixpkgs is the largest distribution package set (according to repology). But sometimes something is missing or I want to add some of my own projects as packages, unless it's some insanely bad proprietary application, I can do it in a few minutes.

- Atomic updates/rollbacks.

- Ad-hoc or project-specific development shells (though that is more Nix than NixOS).

I know that the learning curve can be steep, but once you really get Nix and NixOS, it's kinda like being the master of the universe, erm, I mean your systems.

bombela 5 days ago | parent [-]

I don't think anybody ever sold nixos that good to me before.

I might try it again. Last time I really did not like that any minute config change would take 15s to apply.

But the biggest issue for me, is that right now I have a good enough solution, that allows for config file update from applications. I have a small git repo, with one shell script, that symlinks config files, and even generates a few. And so backing up the latest config changes from KDE, freecad, etc, is a git add & commit away. I have another shell script to setup the base Ubuntu the way I want. And my data is replicated via syncthing.

nextos 5 days ago | parent | prev [-]

NixOS gives you the ability to define your system declaratively, upgrade or tweak without fear of breaking anything, and the ability to launch shells with arbitrary and well defined sets of dependencies.