Nixos-generate-config and option, nix discoverability


I was wondering about nix install process and I have an idea whose utility I’m wondering about.

The opinion I’ve based this on is that nix is a niche distribution for programmers who like discovering options. I was wondering how would it be if nixos-generate-config acted as a very first step in helping users discover options without using internet and also discovering nix language features.

I created a barebones repo to this end. (won’t compile)

This is a small repo to navigate but I will incoherently talk about some things which could be added here.

  1. Configuration.nix is almost empty but leads to a hierarchy of options

  2. System related options are in separate modules

  3. programming related packages can be added quickly. If I want to quick start with android dev, I can uncomment and include that module.

  4. pins.nix has some example for pinning

  5. I also added an example of pinning a version (python) and using override, two of the most basic features of nix. I can scatter more such examples where this makes sense…

  6. Some files are missing but they will have other sane defaults. For example when talking about Rust, the first thing anybody says is nbp’s overlay. So that’s what will go in rust.nix.

  7. For scala there would be scala, sbt, metals, intellij etc.

I can build this into a working version which could then be enhanced by community if you guys see a merit in this approach.