this post was submitted on 24 Jul 2024
16 points (100.0% liked)

Nix / NixOS

1758 readers
74 users here now

Main links

Videos

founded 1 year ago
MODERATORS
 

I am just setting up my NixOS config for the first time, and I know that it will be fairly complex. I know it will only be possible and scalable if I have sane conventions.

I have read a number of example configs, but there does not seem to be consistent conventions between them of where to store custom option declarations, how to handle enabling/disabling modules, etc. They all work, but they do it in different ways.

Are there any official or unofficial conventions/style guides to NixOS config structure, and where can I find them?

For example, should I make a lib directory where I put modules that are easily portable and reusable in other people's configs? When should I break modules up into smaller ones? Etc. These are things that I hope to be addressed.

you are viewing a single comment's thread
view the rest of the comments
[–] rutrum@lm.paradisus.day 5 points 3 months ago

Unfortunately, nothing is standard. So I would say, across all the configs you looked at, which had a file and module structure that you understood? I'd follow that then.

My config has a users and hosts dir, to distinguish home manager and nixos configs. Inside each is the list of users and hosts configuration files. In addition, there is a modules folder that holds modules that are common among different users/hosts.