From 480b761611844c2adfc02119ea9c934668cbaa03 Mon Sep 17 00:00:00 2001 From: tdpeuter Date: Tue, 2 May 2023 21:09:43 +0200 Subject: [PATCH] Add NVIDIA module --- nixos/hosts/Tibo-NixFat/default.nix | 24 +++------------------ nixos/modules/hardware/nvidia.nix | 33 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 21 deletions(-) create mode 100644 nixos/modules/hardware/nvidia.nix diff --git a/nixos/hosts/Tibo-NixFat/default.nix b/nixos/hosts/Tibo-NixFat/default.nix index f3423cb..bf8123b 100644 --- a/nixos/hosts/Tibo-NixFat/default.nix +++ b/nixos/hosts/Tibo-NixFat/default.nix @@ -3,6 +3,7 @@ { imports = [ ./hardware-configuration.nix + ../../modules/hardware/nvidia.nix ../../modules/apps/virtualbox ../../modules/des/gnome @@ -43,15 +44,11 @@ # }; services.xserver = { - enable = true; - - videoDrivers = [ "nvidia" ]; # Also for wayland compositors - # Configure keymap in X11 layout = "us"; xkbVariant = ""; - }; - + }; + # Enable CUPS to print documents. # services.printing.enable = true; @@ -78,21 +75,6 @@ # Enable touchpad support (enabled default in most desktopManager). services.xserver.libinput.enable = true; - # NVIDIA drivers - hardware = { - opengl.enable = true; - nvidia = { - open = true; - # package = config.boot.kernelPackages.nvidiaPackages.stable; - modesetting.enable = true; - # prime = { - # offload.enable = true; - # intelBusId = "PCI::00:02:0"; - # nvidiaBusId = "PCI:01:00:0"; - # }; - }; - }; - # Allow unfree packages nixpkgs.config.allowUnfree = true; diff --git a/nixos/modules/hardware/nvidia.nix b/nixos/modules/hardware/nvidia.nix new file mode 100644 index 0000000..1473758 --- /dev/null +++ b/nixos/modules/hardware/nvidia.nix @@ -0,0 +1,33 @@ +{ inputs, lib, config, pkgs, ... }: + +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 +{ + nixpkgs.config.allowUnfree = true; + + services.xserver.videoDrivers = [ "nvidia" ]; + + hardware = { + opengl.enable = true; + nvidia = { + open = true; + package = config.boot.kernelPackages.nvidiaPackages.stable; + modesetting.enable = true; + }; + }; + + # Offloading + # environment.systemPackages = [ nvidia-offload ]; + # hardware.nvidia.prime = { + # offload.enable = true; + # intelBusId = "PCI::00:02:0"; + # nvidiaBusId = "PCI:01:00:0"; + # }; +}