I have started using NixOS recently and I am just now creating conventions to use in my config.
One big choice I need to make is whether to include a unique identifier as the most significant attribute in any options that I define for my system.
For example:
Lets say I am setting up my desktop so that I am easily able to switch between light and dark modes system-wide. Therefore, I create the boolean option:
visuals.useDarkMode
Lets say I also want to toggle on/off Tor and other privacy technologies all at once easily, so I create the boolean:
usePrivateMode
Although these options do not do related things, they are still both custom options that I have made. I have the first instinct to somehow segregate them from the builtin NixOS options. Let's say my initials are "RK". I could make them all sub-attributes of the "RK" attribute.
rk.visuals.useDarkMode
rk.usePrivateMode
I feel like this is either a really good idea or an antipattern. I would like your opinions on what you think of it and why.
I think this is good idea. If the modules/options you are writing are for internal use, and not expected to be shared with the wider community, then this is great. I should incorporate this in my own config, but I dont know if this is common practice.