{ lib, ... }: let inherit (lib) mkOption mkEnableOption mkIf types ; winType = types.submodule ( { config, ... }: { options = { dualboot = { enable = mkEnableOption "dual boot"; linuxPercentage = mkOption { type = types.number; description = "The percentage of the disk size reserved for Linux."; }; }; showFileExt = mkOption { type = types.bool; description = "A value indicating whether file extensions should be displayed in Windows Explorer."; default = true; }; legacyIconSpacing = mkEnableOption "legacy icon spacing" // { default = true; }; dynamicLighting = mkEnableOption "dynamic lighting"; adware = mkEnableOption "adware"; # Fuck you for displaying ads on an OS I fricking paid for! }; config = { dualboot.linuxPercentage = mkIf (!config.dualboot.enable) 0; }; }); in { options = { valhalla = { windows = mkOption { type = winType; description = "The options for setting up Windows."; default = {}; }; }; }; }