# Feature Profiles This directory provides a profile + overrides model for host configuration. ## Imports Use this in host `imports`: ```nix (modulesDirectory + /features/standard) ``` `features/standard` imports: - `features` profile module - `services/users` - `services/network` - `services/system` - `services/sound` - `programs/base` - `programs/git` - `programs/dev` ## Profile Selection Set one profile per host: ```nix features.profile = "desktop"; ``` Supported values: - `custom` - `desktop` - `laptop` - `server` - `camera` Profiles set `mkDefault` values, so you can override any option per host. ## Common Overrides ### Base packages ```nix features.base = { enable = true; preset = "minimal"; packages.captureEnable = true; }; ``` ### Dev tools ```nix features.dev = { enable = true; preset = "minimal"; cloud.aws.enable = false; cloud.azure.enable = false; }; ``` ### Network ```nix features.network = { enable = true; netbird.enable = false; tooling.enable = false; }; ``` ### Sound/Bluetooth ```nix features.sound = { enable = true; bluetooth.enable = false; }; ``` ### Git defaults ```nix features.git = { enable = true; userName = "myuser"; userEmail = "me@example.com"; }; ``` ### Users ```nix features.users = { enable = true; name = "fw"; fullName = "Fredrik Wastring"; extraGroups = [ "wheel" "networkmanager" ]; }; ``` ## Notes - If you only import `features/default.nix`, profile defaults are applied only for options that exist in imported modules. - `features/standard` is the easiest option for hosts that should expose all common feature knobs.