feat(nvidia-prime): automatic battery-saver specialisation

This enables a boot option that switches off NVIDIA GPU. Allows for battery saving.

@moduon MT-9339
This commit is contained in:
Jairo Llopis
2025-03-13 11:53:24 +00:00
committed by Jairo Llopis
parent a4bb30a900
commit 33d083f55b

View File

@@ -3,11 +3,35 @@
{
imports = [ ./. ];
hardware.nvidia.prime = {
offload = {
enable = lib.mkOverride 990 true;
enableOffloadCmd = lib.mkIf config.hardware.nvidia.prime.offload.enable true; # Provides `nvidia-offload` command.
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;
};
};
};
};
# Hardware should specify the bus ID for intel/nvidia devices
};
}