I showed you my source code, pls respond
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

72 lines
1.8 KiB

{ lib, config, pkgs, ... }:
let
myIntelBusId = "PCI:0:2:0";
myNvidiaBusId = "PCI:1:0:0";
myNvidiaOffload = 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 -a "$0" "$@"
'';
in {
# Blacklist the open source driver.
boot.blacklistedKernelModules = [ "nouveau" ];
# Add the offload script to the $PATH.
environment.systemPackages = [ myNvidiaOffload ];
# Configure XDG compliance.
environment.variables = {
__GL_SHADER_DISK_CACHE_PATH = "$XDG_CACHE_HOME/nv";
CUDA_CACHE_PATH = "$XDG_CACHE_HOME/nv";
};
# Enable the NVIDIA drivers.
services.xserver.videoDrivers = [ "nvidia" ];
# Fix screen tearing.
services.xserver.screenSection = ''
Option "metamodes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}"
Option "AllowIndirectGLXProtocol" "off"
Option "TripleBuffer" "on"
'';
# Fix graphical corruption on suspend.
hardware.nvidia.powerManagement.enable = true;
# Configure `offload-mode'.
hardware.nvidia.prime = {
offload.enable = true;
intelBusId = myIntelBusId;
nvidiaBusId = myNvidiaBusId;
};
# Add OpenGL support.
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
extraPackages32 = with pkgs; [
pkgsi686Linux.libva
intel-media-driver
vaapiIntel
];
};
# Create an external display setup.
specialisation = {
external-display.configuration = {
system.nixos.tags = [ "external-display" ];
hardware.nvidia.prime.offload.enable = lib.mkForce false;
hardware.nvidia.powerManagement.enable = lib.mkForce false;
};
};
# Add user to video group.
users.users.chris = {
extraGroups = [ "video" ];
};
}