This configuration system is designed to be extremely modular and versatile, enabling its use across multiple systems without any modifications.
The configuration is divided into several pieces:
Custom NixOS modules that can enable various NixOS options. Each module can be enabled using the NixOS configuration syntax:
config.MODULES.<module-name>.enable = true;Contains configurations for each user. Users can enable custom modules and modify NixOS options according to their preferences. Users can be enabled as follows:
config.USERS.<user-name>.enable = true;Profiles allow combining multiple users or modules to streamline configurations. They can be enabled using the following syntax:
config.PROFILES.<profile-name>.enable = true;Configuration for each physical machine, including hardware specifications. Host configurations can enable modules, users, and profiles as needed.
A Makefile is utilized to simplify rebuilding, switching, and git operations. For assistance, run:
make help