{ config, lib, pkgs, ... }: { imports = [ ]; ##### SB3 Hardware ##### # surface kernel config users.users.caleb.extraGroups = [ "surface-control" ]; microsoft-surface.surface-control.enable = true; hardware.cpu.intel.updateMicrocode = true; # Nvidia driver setup hardware.nvidia = { modesetting.enable = true; package = config.boot.kernelPackages.nvidiaPackages.stable; nvidiaSettings = true; powerManagement = { enable = true; finegrained = true; }; nvidiaPersistenced = true; prime = { offload = { enable = true; enableOffloadCmd = true; }; intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:2:0:0"; }; }; # preserve video memory after suspend https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks#Preserve_video_memory_after_suspend boot.extraModprobeConfig = '' options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp ''; # change backlight agent boot.kernelParams = [ "acpi_osi=!" "acpi_osi=\"Windows 2015\""]; }