{ inputs, self, ... }: { imports = [ (inputs.helpers.mkMirroredModulesFlakeModule "graphicsOptions" ({ lib, ... }: { options = { components = { windowManagers = lib.mkOption { type = lib.types.listOf (inputs.helpers.mkEnumFromDirContents "${self}/modules/components/window-managers"); description = "Defines the window managers that should be installed, enabling any config associated with them in the process."; default = []; }; shells = lib.mkOption { type = lib.types.listOf (inputs.helpers.mkEnumFromDirContents "${self}/modules/components/shells"); description = "Defines the graphical shells that should be installed (e.g. Noctalia, DMS), enabling any config associated with them in the process."; default = []; }; }; }; })) ]; flake.nixosModules.graphicsOptions = { lib, ... }: { options.components.displayManager = lib.mkOption { type = inputs.helpers.mkEnumFromDirContents "${self}/modules/components/display-managers"; description = "Defines the bootloader that should be used, enabling any config associated with it in the process."; default = "lightdm"; }; }; }