mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 17:27:14 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ lib, config, ... }:
 | 
						|
 | 
						|
{
 | 
						|
  imports = [ ./. ];
 | 
						|
 | 
						|
  options = {
 | 
						|
    hardware.nvidia.primeBatterySaverSpecialisation = lib.mkEnableOption "configure a specialisation which turns on NVIDIA Prime battery saver";
 | 
						|
  };
 | 
						|
 | 
						|
  config = {
 | 
						|
 | 
						|
    hardware.nvidia.prime = {
 | 
						|
      offload = {
 | 
						|
        enable = lib.mkOverride 990 true;
 | 
						|
        enableOffloadCmd = lib.mkIf config.hardware.nvidia.prime.offload.enable true; # Provides `nvidia-offload` command.
 | 
						|
      };
 | 
						|
      # Hardware should specify the bus ID for intel/nvidia devices
 | 
						|
    };
 | 
						|
 | 
						|
    specialisation = lib.mkIf config.hardware.nvidia.primeBatterySaverSpecialisation {
 | 
						|
      battery-saver.configuration = {
 | 
						|
        system.nixos.tags = [ "battery-saver" ];
 | 
						|
        imports = [
 | 
						|
          # Leave only the integrated GPU enabled
 | 
						|
          ./disable.nix
 | 
						|
        ];
 | 
						|
        hardware.nvidia = {
 | 
						|
          prime.offload.enable = lib.mkForce false;
 | 
						|
          powerManagement = {
 | 
						|
            enable = lib.mkForce false;
 | 
						|
            finegrained = lib.mkForce false;
 | 
						|
          };
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |