63 lines
1.8 KiB
Nix
63 lines
1.8 KiB
Nix
|
{
|
||
|
lib,
|
||
|
self,
|
||
|
inputs,
|
||
|
...
|
||
|
}: let
|
||
|
inherit (lib.lists) optionals concatLists;
|
||
|
|
||
|
# profiles module, these are sensible defaults for given hardware sets
|
||
|
# or meta profiles that are used to configure the system based on the requirements of the given machine
|
||
|
profilesPath = ../modules/profiles; # the base directory for the types module
|
||
|
|
||
|
# hardware profiles
|
||
|
laptop = profilesPath + /laptop; # for laptop type configurations
|
||
|
desktop = profilesPath + /desktop; # for desktop type configurations
|
||
|
server = profilesPath + /server; # for server type configurations
|
||
|
|
||
|
# meta profiles
|
||
|
graphical = profilesPath + /graphical; # for systems that have a graphical interface
|
||
|
headless = profilesPath + /headless; # for headless systems
|
||
|
in {
|
||
|
imports = [inputs.easy-hosts.flakeModule];
|
||
|
|
||
|
config.easy-hosts = {
|
||
|
shared.specialArgs = {
|
||
|
inherit (inputs.haipkgs) haiLib;
|
||
|
};
|
||
|
perClass = class: {
|
||
|
modules = concatLists [
|
||
|
[
|
||
|
# import the class module, this contains the common configurations between all systems of the same class
|
||
|
"${self}/modules/${class}/default.nix"
|
||
|
]
|
||
|
|
||
|
(optionals (class != "iso") [
|
||
|
# import the home module, which is users for configuring users via home-manager
|
||
|
#"${self}/home/default.nix"
|
||
|
|
||
|
# import the base module, this contains the common configurations between all systems
|
||
|
"${self}/modules/base/default.nix"
|
||
|
])
|
||
|
];
|
||
|
};
|
||
|
|
||
|
# This is the list of system configuration
|
||
|
#
|
||
|
# the defaults consists of the following:
|
||
|
# arch = "x86_64";
|
||
|
# class = "nixos";
|
||
|
# deployable = false;
|
||
|
# modules = [ ];
|
||
|
# specialArgs = { };
|
||
|
hosts = {
|
||
|
nyx = {
|
||
|
modules = [
|
||
|
desktop
|
||
|
graphical
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|