56 lines
1.2 KiB
Nix
56 lines
1.2 KiB
Nix
|
{ config, lib, pkgs, ... }:
|
||
|
|
||
|
# nvidia-offload script
|
||
|
let
|
||
|
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
|
||
|
export __NV_PRIME_RENDER_OFFLOAD=1
|
||
|
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
|
||
|
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||
|
export __VK_LAYER_NV_optimus=NVIDIA_only
|
||
|
exec "$@"
|
||
|
'';
|
||
|
in
|
||
|
{
|
||
|
imports =
|
||
|
[
|
||
|
<nixos-hardware/microsoft/surface/common>
|
||
|
];
|
||
|
|
||
|
##### 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.latest;
|
||
|
nvidiaSettings = true;
|
||
|
powerManagement = {
|
||
|
enable = true;
|
||
|
finegrained = true;
|
||
|
};
|
||
|
prime = {
|
||
|
offload = {
|
||
|
enable = true;
|
||
|
enableOffloadCmd = true;
|
||
|
};
|
||
|
|
||
|
intelBusId = "PCI:0:2:0";
|
||
|
nvidiaBusId = "PCI:2:0:0";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
# disable systemd services
|
||
|
systemd.services = {
|
||
|
nvidia-resume = {
|
||
|
enable = false;
|
||
|
restartIfChanged = false;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
# power tuning
|
||
|
powerManagement.powertop.enable = true;
|
||
|
}
|