New post
This commit is contained in:
53
content/post/nixos.org
Normal file
53
content/post/nixos.org
Normal file
@ -0,0 +1,53 @@
|
||||
#+title: "NixOS, or why I would love a new introduction"
|
||||
#+date: 2025-07-12T19:56:56+02:00
|
||||
#+draft: false
|
||||
#+categories[]: Computer
|
||||
#+tags[]: Computer Operating_System NixOS
|
||||
|
||||
I have been using NixOS for the last 2 years now.
|
||||
I got introduced to it by friends, who had changed their entire workflow to accommodate it.
|
||||
I was a bit skeptical at the beginning, tried installing the package manager to my arch install at the time, but didn't fully understand how I was supposed to use it in conjunction with how I was my computer at the time.
|
||||
However, in the summer of 2023, I decided to take the plunge, and go the full way, with a new install.
|
||||
Having run this type of setup for two years now, I have to admit it.
|
||||
NixOS makes certain aspects of using my computer easier.
|
||||
|
||||
As of recent, I have had to change the laptop that I was using.
|
||||
With Nix as the base, I was able to make it usable, in way faster time than I think I would have been able with an Arch installation.
|
||||
There are some aspects that make it harder though, since that laptop needed to make sure it worked as intended, such as disabling TLP and patching the kernel.
|
||||
It also allowed me to resume my work on my current master thesis, since I could just pull the git repo and use nix develop to get all the dependencies for that work in specifics.
|
||||
|
||||
* Configuration
|
||||
A friend of mine recently decided to try and do the switch themselves.
|
||||
He has been an avid Arch fan boy for the last 2 years, since he got mad at Fedora for bricking his install (I genuinely do not understand how that happened).
|
||||
He has been a bit particular however, refusing to configure software to ensure that he is able to use them anywhere, and to not have to learn esoteric languages for just one program.
|
||||
I find this very sensible, while I approach it completely differently.
|
||||
I want software customized to me, for me to act as best as I can within it.
|
||||
|
||||
Anyway, this has lead to some confusion about Nix, and why things are as they are.
|
||||
For example, how is Git, as defined in Home-Manager, able to configure it as it does?
|
||||
And that is an implementation detail, but it is quite important for a user of Nix.
|
||||
Why does Nix gatekeep the most foundational aspect of using Nix according to most users behind an Experimental-feature wall?
|
||||
Now, I don't have the answers for these, since I am not yet a contributor to Nix, or well versed in the ecosystem, if I am being honest.
|
||||
|
||||
* A better introduction
|
||||
A comment was made about the [[https://nixos.org/manual/nixos/stable/][installation guide]], about how it is not adequate, and I wouldn't know, I didn't read it when I got NixOS.
|
||||
Like most of Nix documentation, it is a bit overwhelming and hard to navigate.
|
||||
I like [[https://wiki.archlinux.org/title/Installation_guide][Arch's install guide]], since it is easier to search, and it segments the parts into different pages.
|
||||
So, if I were to change anything, I would split this up, making sure that they are condensed into small, concrete parts.
|
||||
An approach of this that I like is [[https://github.com/rust-lang/mdBook][mdbook]]. One could therefore keep the more general structure of the guide, but each subsection is it's own page.
|
||||
|
||||
Another aspect that would change is that an introduction should try to convey one way.
|
||||
NixOS tries to introduce flakes in the [[https://nixos.org/manual/nixos/stable/#sec-installation-manual-installing][Installing section]], but never explaining what it is, or linking further.
|
||||
Either you introduce a concept, link to more info, or you do not mention it.
|
||||
|
||||
There are also several ways of managing the system that are not a good way of handling NixOS specifically.
|
||||
Why is the [[https://nixos.org/manual/nixos/stable/#sec-ad-hoc-packages][Ad-hoc]] way of using Nix even introduced, when it goes against the ideals of having a reproducible system?
|
||||
Why introduce manual user management?
|
||||
Further, it talks about a lot of different programs that a user may want to install.
|
||||
This does however not teach the user to actually figure out where to find options.
|
||||
Why isn't [[https://search.nixos.org][search.nixos.org]] introduced?
|
||||
|
||||
An optimal guide would introduce how to create a system, using the most commonly accepted methods, such as flakes.
|
||||
You can introduce flakes as adding the ability to create a lock file like =package-lock.json= from npm.
|
||||
This would then go into creating a functional system, and then a show case of how you can modify it and common fixes for NVIDIA, or similar.
|
||||
I am a bit tempted to try and make this, but I also wanna do some own development on packages.
|
Reference in New Issue
Block a user