From 738451a09c78c366ffe5179e16ec06baa9253efa Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Fri, 28 Feb 2025 06:08:21 +0800 Subject: [PATCH] refactor: move nvidia specific settings into its own file --- modules/nvidia.nix | 38 +++++++++++++++++++++++++++++++++++++ systems/nemesis/default.nix | 27 +------------------------- 2 files changed, 39 insertions(+), 26 deletions(-) create mode 100644 modules/nvidia.nix diff --git a/modules/nvidia.nix b/modules/nvidia.nix new file mode 100644 index 0000000..cc8e619 --- /dev/null +++ b/modules/nvidia.nix @@ -0,0 +1,38 @@ +{ pkgs, config, inputs, ... }: +let + hyprland-pkgs = inputs.hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}; +in +{ + hardware = { + graphics = { + enable = true; + package = hyprland-pkgs.mesa.drivers; + extraPackages = with pkgs; [ + nvidia-vaapi-driver + ocl-icd + cudaPackages.cudatoolkit + ]; + }; + nvidia = { + open = true; + package = config.boot.kernelPackages.nvidiaPackages.latest; + }; + }; + + services.xserver = { + enable = true; + videoDrivers = [ "nvidia" ]; + }; + + environment.variables = { + NIXOS_OZONE_WL = "1"; # Hint to electron apps to use Wayland + LIBVA_DRIVER_NAME = "nvidia"; + __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + NVD_BACKEND = "direct"; # Set VAAPI driver backend + }; + + environment.systemPackages = with pkgs; [ + clinfo + pciutils + ]; +} diff --git a/systems/nemesis/default.nix b/systems/nemesis/default.nix index 4c92e62..e25182e 100644 --- a/systems/nemesis/default.nix +++ b/systems/nemesis/default.nix @@ -3,12 +3,12 @@ # and in the NixOS manual (accessible by running ‘nixos-help’). { inputs, config, pkgs, ... }: let - hyprland-pkgs = inputs.hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}; in { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ../../scripts/hyprland-tty-launch.nix + ../../modules/nvidia.nix # Graphics settings for Nvidia GPUs ]; # Bootloader. @@ -22,30 +22,6 @@ in { options = [ "rw" "uid=rafiq" ]; }; - # Graphics settings are defined here - hardware = { - graphics.enable = true; - graphics.package = hyprland-pkgs.mesa.drivers; - graphics.extraPackages = with pkgs; [ - nvidia-vaapi-driver - ocl-icd - cudaPackages.cudatoolkit - # clinfo - ]; - nvidia = { - open = true; - package = config.boot.kernelPackages.nvidiaPackages.stable; - }; - }; - environment.variables.NIXOS_OZONE_WL = "1"; # Hint to electron apps to use Wayland - environment.variables.LIBVA_DRIVER_NAME = "nvidia"; - environment.variables.__GLX_VENDOR_LIBRARY_NAME = "nvidia"; - environment.variables.NVD_BACKEND = "direct"; # Set VAAPI driver backend - - services.xserver = { - enable = true; - videoDrivers = [ "nvidia" ]; - }; # Add hyprland.cachix.org as a binary cache for Hyprland nix.settings = { @@ -112,7 +88,6 @@ in { # $ nix search wget environment.systemPackages = with pkgs; [ firefox - clinfo koboldcpp ];