43 lines
1.0 KiB
Nix
43 lines
1.0 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
|
|
with lib;
|
|
let
|
|
moduleFiles = [
|
|
../../user-modules/desktop/systemwide.nix
|
|
../../user-modules/development/systemwide.nix
|
|
../../user-modules/gaming/systemwide.nix
|
|
../../user-modules/keyring/systemwide.nix
|
|
];
|
|
|
|
moduleConfig = lists.foldr (file: acc: recursiveUpdate acc (import file)) { } moduleFiles;
|
|
|
|
moduleNames = attrNames moduleConfig;
|
|
|
|
mkModule =
|
|
name: moduleConfig:
|
|
{ pkgs, ... }:
|
|
{
|
|
config =
|
|
mkIf
|
|
(any (
|
|
user:
|
|
(
|
|
config.home-manager.users.${user}.modules.${name}.enable
|
|
|| (any (specialisation: specialisation.configuration.modules.${name}.enable) (
|
|
attrValues config.home-manager.users.${user}.specialisation
|
|
))
|
|
)
|
|
) (attrNames config.home-manager.users))
|
|
(if (isAttrs moduleConfig) then moduleConfig else (moduleConfig { inherit config pkgs; }));
|
|
};
|
|
|
|
imports = map (name: mkModule name moduleConfig."${name}") moduleNames;
|
|
in
|
|
{
|
|
imports = imports;
|
|
}
|