{ config, lib, pkgs, modulesPath, ... }:

{
  imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];

  boot.initrd.availableKernelModules =
    [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
  boot.initrd.kernelModules = [ "amdgpu" ];
  boot.kernelModules = [ "v4l2loopback" "kvm-amd" ];
  boot.kernelPackages = pkgs.linuxPackages_latest;
  boot.extraModulePackages = with config.boot.kernelPackages;
    [ v4l2loopback.out ];

  boot.loader.systemd-boot.extraEntries = {
    "00-windows.conf" = ''
      title Windows
      efi /efi/microsoft/bootmgfw.efi
    '';
  };

  fileSystems."/" = {
    device = "/dev/disk/by-uuid/f612abce-6f3f-439a-8585-6a050e18b7fc";
    fsType = "ext4";
  };

  fileSystems."/boot/efi" = {
    device = "/dev/disk/by-uuid/349E-5086";
    fsType = "vfat";
  };

  swapDevices =
    [{ device = "/dev/disk/by-uuid/42394c4d-2c81-4917-82ff-75a548715a7d"; }];

  networking.useDHCP = lib.mkDefault true;

  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
  hardware.cpu.amd.updateMicrocode =
    lib.mkDefault config.hardware.enableAllFirmware;
}