Core Options
cells/options/core.nix defines the basic values that many other leaves consume.
Up: options
Down: profile options
What this node does
The core option module defines user fields, stateVersion, an optional Noctalia toggle, and two legacy module accumulator lists.
The public teaching version should use placeholders for identity values.
options.my.user = {
name = mkOption {
type = types.str;
default = "alice";
description = "Unix username";
};
email = mkOption {
type = types.str;
default = "alice@example.com";
};
};Why it exists
Many leaves need the same identity information. Git uses the user name and email. Home Manager uses the Unix user and home directory. Secret paths and persistence rules need the same username.
Putting those values under my.user avoids repeating literals across leaves.
Compatibility accumulators
The module also keeps my.nixosModules and my.hmModules. These are legacy lists that the legacy branch can collect.
nixosModules = mkOption {
type = types.listOf types.deferredModule;
default = [ ];
};The dendritic model prefers my.branches.<name>.nixosModules, but the compatibility path lets older module contributions keep working while the tree evolves.