{ config, lib, pkgs, modulesPath, desktop, username, ... }: {
  imports = [ 
    ./disks.nix
    ../../common/modules/secureboot.nix
    ../../common/modules/ssh-luks.nix
  ];
  # steam, nvidia-x11, etc
  nixpkgs.config.allowUnfree = true;

  boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "thunderbolt" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-intel" "acpi_call" ];
  boot.extraModulePackages = with config.boot.kernelPackages; [ acpi_call ];

  networking.useDHCP = lib.mkDefault true;
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
  powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

  # Set your time zone.
  time.timeZone = "Asia/Tokyo";

  # Set the networking hostname:
  networking.hostName = "nixos-desktop";

  hardware = {
    opengl = {
      enable = true;
      driSupport32Bit = true;
      driSupport = true;
    };

    nvidia = {
      open = false;
      nvidiaSettings = true;
      modesetting.enable = true;
      };
    };

  environment.systemPackages = with pkgs; [ 
    # nVidia gpu options
    vulkan-loader
    vulkan-validation-layers
    vulkan-tools
    gwe
    nvtop-nvidia
    # WINE
    wineWowPackages.stable
    winetricks
    wineWowPackages.waylandFull
  ];
}