nvidia: fix backlight

This commit is contained in:
2026-04-21 17:48:52 +03:00
parent 1deef1e46b
commit 731a95289a
3 changed files with 46 additions and 12 deletions
+1
View File
@@ -24,6 +24,7 @@
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
host.laptop = true; host.laptop = true;
host.nvidia.prime.enable = true;
environment.systemPackages = [ pkgs.dbgate ]; environment.systemPackages = [ pkgs.dbgate ];
} }
+17 -1
View File
@@ -7,7 +7,23 @@
]; ];
options = { options = {
host.laptop = lib.mkEnableOption "laptop mode"; host = {
laptop = lib.mkEnableOption "laptop mode";
nvidia.prime = {
enable = lib.mkEnableOption "NVIDIA PRIME offload for hybrid graphics";
intelBusId = lib.mkOption {
type = lib.types.str;
default = "PCI:0:2:0";
description = "Intel/iGPU Bus ID used by NVIDIA PRIME.";
};
nvidiaBusId = lib.mkOption {
type = lib.types.str;
default = "PCI:1:0:0";
description = "NVIDIA dGPU Bus ID used by NVIDIA PRIME.";
};
};
};
}; };
config = { config = {
+27 -10
View File
@@ -1,6 +1,16 @@
{ config, pkgs-stable, lib, ... }: { { config, pkgs-stable, lib, ... }: let
boot.kernelParams = [ "nvidia-drm.modeset=1" ]; primeCfg = config.host.nvidia.prime;
services.xserver.videoDrivers = [ "nvidia" ]; isPrimeOffload = primeCfg.enable;
in {
boot = {
kernelParams = [ "nvidia-drm.modeset=1" ];
initrd.kernelModules = lib.optionals isPrimeOffload [ "i915" ];
};
services.xserver.videoDrivers =
if isPrimeOffload
then [ "modesetting" "nvidia" ]
else [ "nvidia" ];
hardware = { hardware = {
graphics = { graphics = {
@@ -11,7 +21,7 @@
intel-media-driver intel-media-driver
libvdpau-va-gl libvdpau-va-gl
]; ];
extraPackages32 = with pkgs-stable.pkgsi686Linux; [nvidia-vaapi-driver intel-media-driver]; extraPackages32 = with pkgs-stable.pkgsi686Linux; [ nvidia-vaapi-driver intel-media-driver ];
}; };
nvidia = { nvidia = {
@@ -24,21 +34,28 @@
nvidiaSettings = true; nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
prime = lib.optionalAttrs config.host.laptop { prime = lib.optionalAttrs isPrimeOffload {
intelBusId = "PCI:0:2:0"; offload = {
nvidiaBusId = "PCI:1:0:0"; enable = true;
enableOffloadCmd = true;
};
intelBusId = primeCfg.intelBusId;
nvidiaBusId = primeCfg.nvidiaBusId;
}; };
}; };
}; };
environment.sessionVariables = { environment.sessionVariables = {
__GL_VRR_ALLOWED = 1;
ELECTRON_OZONE_PLATFORM_HINT = "auto";
NIXOS_OZONE_WL = 1;
} // lib.optionalAttrs isPrimeOffload {
LIBVA_DRIVER_NAME = "iHD";
} // lib.optionalAttrs (!isPrimeOffload) {
WLR_NO_HARDWARE_CURSORS = 1; WLR_NO_HARDWARE_CURSORS = 1;
WLR_DRM_NO_ATOMIC = 1; WLR_DRM_NO_ATOMIC = 1;
GBM_BACKEND = "nvidia-drm"; GBM_BACKEND = "nvidia-drm";
LIBVA_DRIVER_NAME = "nvidia"; LIBVA_DRIVER_NAME = "nvidia";
__GLX_VENDOR_LIBRARY_NAME = "nvidia"; __GLX_VENDOR_LIBRARY_NAME = "nvidia";
__GL_VRR_ALLOWED = 1;
ELECTRON_OZONE_PLATFORM_HINT = "auto";
NIXOS_OZONE_WL = 1;
}; };
} }