{
  pkgs,
  lib,
  config,
  ...
}:
with lib;
{
  imports = [
    ../acpid.nix
  ];

  nixpkgs.hostPlatform = {
    system = "x86_64-linux";
    config = "x86_64-unknown-linux-gnu";
  };

  boot.kernelModules = [ "kvm-intel" ];
  # https://bugzilla.kernel.org/show_bug.cgi?id=110941
  boot.initrd.availableKernelModules = [
    "ahci"
    "drbg"
    "ehci_pci"
    "gf128mul"
    "hmac"
    "sd_mod"
  ];
  boot.extraModulePackages = with config.boot.kernelPackages; [
  ];
  boot.kernelParams = [
  ];

  hardware.cpu.intel.updateMicrocode = mkDefault config.hardware.enableRedistributableFirmware;
  hardware.graphics.extraPackages = [
    pkgs.intel-media-driver # LIBVA_DRIVER_NAME=iHD
    # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
    (
      if (versionOlder (versions.majorMinor version) "23.11") then
        pkgs.vaapiIntel
      else
        pkgs.intel-vaapi-driver
    )
    pkgs.libvdpau-va-gl
    pkgs.vaapiVdpau
  ];

  services.upower.enable = true;
  services.libinput.enable = mkDefault true;
}