Skip Navigation

NixOS is weird... I love it

Hello, everyone! I'm a long time Linux user who has warily stared at NixOS from the safe distance one might give to wild animals on a safari for quite some time now... And I finally decided, "fuck it, I'm gonna poke it with a stick."

I absolutely adore this system, even as strange a paradigm as it is coming from a decade of "traditional" management systems. I haven't been this excited about a Linux distro since... Well, ever really. Maybe OpenSUSE Tumbleweed? I can't recall.

Anyway, I wanted to introduce myself and preach to the choir for a second, so to speak. As someone totally new to this paradigm of system management, what are your #1 must read/watch resources you would recommend? I've perused through the NixOS Learn website over the last couple of days, and I'm itching for more. I can't wait to see what all this system is capable of!

10 comments
  • Been using Nix for just over a year.

    Seconding to go with flakes. No idea wtf channels are or whatever the previous system was.

    Documentation can be confusing due to changes in paradigms. The bare "nix

    <scope>

    " seems to be the most modern oppose to "nix-

    <scope>

    " (e.g., nix store vs nix-store). That said, not every feature can be found in the newer variants.

    This can make following tutorials difficult if they aren't using the same paradigm.

    Getting comfortable with the nix language will be helpful. Its a functional programming language, which is very different than languages like bash.

    Not everything has to be done the nix-way. My nvim files are in the same repo, but I just outOfStoreSymlink them instead of wrapping them in a derivation.

    Some useful packages I like not already shared.

    Disk partitioning: https://github.com/nix-community/disko

    Immutable: https://github.com/nix-community/impermanence - Pretty much resets the system to a new install every boot. Discourages manual tweaks via sudo as they get wiped out. You can still mark certain directories to be persistent (logs, personal documents, steam games, etc.).

    Nvfetcher: https://github.com/berberman/nvfetcher - Nix has a concept of overlays. You can pretty much override anything with .override (module args or inputs) and .overrideAttrs (module attribute set or outputs). Nvfetcher helps with checking different sources so you can override a packages src attribute. Why is this useful? So you can install any version you want and are not bound to nixpkgs. That doesn't mean the install script in nixpkgs will always work on newer versions, but those can be overridden as well if needed.

    Note that disko, impermanence, and nvfetcher all have a flake.nix in the root of the repo. Those provide ready to go overlays so you don't have to deal with writing your own which is really nice if you want to latest version without much work when available.

10 comments