{ config, lib, pkgs, ... }: let cfg = config.sys.core; in { imports = [ ./audio.nix ./bootloader.nix ./drivers.nix ./fonts.nix ./greet.nix ./home-manager.nix ./localization.nix ./memory.nix ./networking.nix ./power.nix ./security.nix ./storage.nix ./users.nix ]; options.sys.core = { allowUnfree.enable = lib.mkEnableOption "unfree software"; flatpak.enable = lib.mkEnableOption "Flatpak support"; hardwareTools = { enable = lib.mkEnableOption "peripheral and thermal tools"; }; }; config = lib.mkMerge [ (lib.mkIf cfg.allowUnfree.enable { nixpkgs.config.allowUnfree = true; }) (lib.mkIf cfg.flatpak.enable { services.flatpak.enable = true; }) (lib.mkIf cfg.hardwareTools.enable { programs.coolercontrol.enable = true; environment.systemPackages = [ pkgs.rivalcfg ]; }) ]; }