{ lib, config, ... }:
  let
    inherit (lib)
      mkOption
      mkEnableOption
      mkIf
      types
    ;

    setupUser = config.valhalla.setupUser.name;
    capitalize = (import ../text.nix { inherit lib; }).capitalize;

    winType = types.submodule (
      { config, ... }: {
        options = {
          setupUser = mkOption {
            type = types.str;
            description = "The name of the user for setting up Windows.";
            default = capitalize setupUser;
          };

          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 = {};
        };
      };
    };
  }