# This file was initially made by 'nixos-generate-config', try not to edit too much
{ config, lib, pkgs, modulesPath, ... }: {
  imports = [
    (modulesPath + "/installer/scan/not-detected.nix")
  ];

  # Set all boot options
  boot = {
    # Set a kernel version and load/blacklist drivers    
    blacklistedKernelModules = [
      "pcspkr"
    ];               
    kernel.sysctl."vm.max_map_count" = 2147483642;       
    initrd = {
      availableKernelModules = [
        "nvme"
	"xhci_pci"
	"usbhid"
	"usb_storage"
	"sd_mod"
	"sdhci_pci"
      ];
      kernelModules = [
	"kvm-amd"
      ];
    };
                                                         
    # Manage supported filesystems                       
    supportedFilesystems = {                             
      ntfs = true;
      zfs = lib.mkForce false;
    };
  };

  # Mount everything as necessary
  fileSystems = {
    "/" = {
      device = "/dev/disk/by-uuid/182b2841-88a8-4845-9a29-0c1cdc01102d";
      fsType = "btrfs";
    };
    "/boot" = {
      device = "/dev/disk/by-uuid/10A5-1022";
      fsType = "vfat";
      options = [ "fmask=0022" "dmask=0022" ];
    };
  };

  # Set the swap partition
  swapDevices = [
    { device = "/dev/disk/by-uuid/552f8899-a255-4e2b-a22c-e361ceaa527a"; }
  ];

  # Enables DHCP on each ethernet and wireless interface.
  networking.useDHCP = lib.mkDefault true;

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