diff options
Diffstat (limited to 'modules/nixos-hardware/common')
-rw-r--r-- | modules/nixos-hardware/common/gpu/nvidia.nix | 22 | ||||
-rw-r--r-- | modules/nixos-hardware/common/pc/default.nix | 6 | ||||
-rw-r--r-- | modules/nixos-hardware/common/pc/laptop/default.nix | 6 |
3 files changed, 27 insertions, 7 deletions
diff --git a/modules/nixos-hardware/common/gpu/nvidia.nix b/modules/nixos-hardware/common/gpu/nvidia.nix new file mode 100644 index 000000000000..fed9fa98724c --- /dev/null +++ b/modules/nixos-hardware/common/gpu/nvidia.nix @@ -0,0 +1,22 @@ +{ lib, pkgs, ... }: + +# This creates a new 'nvidia-offload' program that runs the application passed to it on the GPU +# As per https://nixos.wiki/wiki/Nvidia +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 -a "$0" "$@" + ''; +in +{ + services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ]; + environment.systemPackages = [ nvidia-offload ]; + + hardware.nvidia.prime = { + offload.enable = lib.mkDefault true; + # Hardware should specify the bus ID for intel/nvidia devices + }; +} diff --git a/modules/nixos-hardware/common/pc/default.nix b/modules/nixos-hardware/common/pc/default.nix index 0b498ff1d20e..8864de1c416a 100644 --- a/modules/nixos-hardware/common/pc/default.nix +++ b/modules/nixos-hardware/common/pc/default.nix @@ -1,5 +1,9 @@ -{ lib, ... }: +{ config, lib, ... }: { + boot.blacklistedKernelModules = lib.optionals (!config.hardware.enableRedistributableFirmware) [ + "ath3k" + ]; + services.xserver.libinput.enable = lib.mkDefault true; } diff --git a/modules/nixos-hardware/common/pc/laptop/default.nix b/modules/nixos-hardware/common/pc/laptop/default.nix index ebc4931dbc29..946d066d04d5 100644 --- a/modules/nixos-hardware/common/pc/laptop/default.nix +++ b/modules/nixos-hardware/common/pc/laptop/default.nix @@ -3,11 +3,5 @@ { imports = [ ../. ]; - # TODO: fix in NixOS/nixpkgs - # Disable governor set in hardware-configuration.nix, - # required when services.tlp.enable is true: - powerManagement.cpuFreqGovernor = - lib.mkIf config.services.tlp.enable (lib.mkForce null); - services.tlp.enable = lib.mkDefault true; } |