53 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  lib,
 | 
						|
  config,
 | 
						|
  pkgs,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  cfg = config.my.hardware.intel;
 | 
						|
in {
 | 
						|
  options.my.hardware.intel = {
 | 
						|
    cpu = lib.mkEnableOption "intel cpu";
 | 
						|
    iGpu = lib.mkEnableOption "intel integrated gpu";
 | 
						|
    xe = lib.mkEnableOption "intel xe gpu";
 | 
						|
  };
 | 
						|
 | 
						|
  config = lib.mkMerge [
 | 
						|
    (lib.mkIf cfg.cpu {
 | 
						|
      boot.kernelModules = ["kvm-intel"];
 | 
						|
      hardware.cpu.intel.updateMicrocode = true;
 | 
						|
    })
 | 
						|
    (lib.mkIf cfg.iGpu {
 | 
						|
      hardware.opengl = {
 | 
						|
        extraPackages = with pkgs; [
 | 
						|
          intel-media-driver
 | 
						|
          vaapiIntel
 | 
						|
          vaapiVdpau
 | 
						|
          libvdpau-va-gl
 | 
						|
        ];
 | 
						|
        extraPackages32 = with pkgs.pkgsi686Linux; [
 | 
						|
          intel-media-driver
 | 
						|
          vaapiIntel
 | 
						|
          vaapiVdpau
 | 
						|
          libvdpau-va-gl
 | 
						|
        ];
 | 
						|
      };
 | 
						|
      environment.systemPackages = with pkgs; [
 | 
						|
        nvtop-intel
 | 
						|
      ];
 | 
						|
    })
 | 
						|
    (lib.mkIf cfg.xe {
 | 
						|
      hardware.opengl = {
 | 
						|
        extraPackages = with pkgs; [
 | 
						|
          intel-media-driver
 | 
						|
          vaapiIntel
 | 
						|
          vaapiVdpau
 | 
						|
          libvdpau-va-gl
 | 
						|
        ];
 | 
						|
      };
 | 
						|
      environment.systemPackages = with pkgs; [
 | 
						|
        nvtop-intel
 | 
						|
      ];
 | 
						|
    })
 | 
						|
  ];
 | 
						|
}
 |