diff --git a/flake.nix b/flake.nix index 4b878ce..5b1b2cd 100644 --- a/flake.nix +++ b/flake.nix @@ -60,7 +60,10 @@ outputs = { self, nixpkgs, nixpkgs-stable, nixpkgs-pinned, home-manager, ... }@inputs: let system = "x86_64-linux"; - config = { allowUnfree = true; }; + config = { + allowUnfree = true; + nvidia.acceptLicense = true; + }; mkHost = hostname: nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; diff --git a/host/ThinkPad/configuration.nix b/host/ThinkPad/configuration.nix index 9d90d38..40dd792 100644 --- a/host/ThinkPad/configuration.nix +++ b/host/ThinkPad/configuration.nix @@ -7,6 +7,8 @@ imports = [ ./modules/grab.nix ./modules/swap.nix + ./modules/intel.nix + ./modules/nvidia.nix (import ../modules/common.nix { inherit lib; diff --git a/host/ThinkPad/modules/intel.nix b/host/ThinkPad/modules/intel.nix new file mode 100644 index 0000000..ffecbc9 --- /dev/null +++ b/host/ThinkPad/modules/intel.nix @@ -0,0 +1,16 @@ +{ config, pkgs, ... }: + +{ + hardware.graphics = { + enable = true; + + extraPackages = with pkgs; [ + intel-media-driver + libvdpau-va-gl + ]; + }; + + environment.sessionVariables = { + LIBVA_DRIVER_NAME = "iHD"; + }; +} diff --git a/host/ThinkPad/modules/nvidia.nix b/host/ThinkPad/modules/nvidia.nix new file mode 100644 index 0000000..bd8bb3e --- /dev/null +++ b/host/ThinkPad/modules/nvidia.nix @@ -0,0 +1,29 @@ +{ config, pkgs, ... }: + +{ + services.xserver.videoDrivers = [ "nvidia" ]; + + hardware.nvidia = { + modesetting.enable = true; + + powerManagement = { + enable = true; + finegrained = false; + }; + + package = config.boot.kernelPackages.nvidiaPackages.legacy_470; + + open = false; + + prime = { + offload.enable = true; + + intelBusId = "PCI:0:2:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + }; + + environment.shellAliases = { + nvidia-offload = "__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia"; + }; +} diff --git a/host/modules/nvidia.nix b/host/modules/nvidia.nix deleted file mode 100644 index edac7a6..0000000 --- a/host/modules/nvidia.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ config, pkgs, lib, ... }: { - services.xserver.videoDrivers = [ "nvidia" ]; - hardware = { - graphics = { - enable = true; - enable32Bit = true; - extraPackages = with pkgs; [nvidia-vaapi-driver intel-media-driver]; - extraPackages32 = with pkgs.pkgsi686Linux; [nvidia-vaapi-driver intel-media-driver]; - }; - - nvidia = { - modesetting.enable = true; - powerManagement = { - enable = true; - finegrained = false; - }; - open = false; - nvidiaSettings = true; - package = config.boot.kernelPackages.nvidiaPackages.beta; - - prime = lib.optionalAttrs config.host.laptop { - intelBusId = "PCI:0:2:0"; - nvidiaBusId = "PCI:1:0:0"; - }; - }; - }; -}