Surface-Nixos/surfacebook-configuration.nix

56 lines
1.2 KiB
Nix
Raw Normal View History

2024-01-29 23:07:13 -05:00
{ 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;
}