{ lib, config, ... }:
let
  inherit (lib) mkDefault mkEnableOption mkIf mkOption types;
  capitalize = (import ../text.nix { inherit lib; }).capitalize;
in
{
  options = {
    valhalla = {
      windows = {
        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 = {
    valhalla.windows = {
      setupUser.name = mkDefault (capitalize config.valhalla.setupUser.name);
      dualboot.linuxPercentage = mkIf (!config.valhalla.windows.dualboot.enable) (mkDefault 0);
    };
  };
}