{ pkgs, config, lib, ... }: let cfg = config.modules.system.nvidia; in { options.modules.system.nvidia = { enable = lib.mkEnableOption "enables nvidia"; }; config = lib.mkIf cfg.enable { # enable nvidia proprietary driver hardware.nvidia = { modesetting.enable = true; # required open = false; # use proprietary driver nvidiaSettings = true; # no shit powerManagement.enable = false; # can cause sleep issues package = config.boot.kernelPackages.nvidiaPackages.stable; }; # install nvidia-smi environment.systemPackages = with pkgs; [ nvidia-smi ]; # enable docker gpu passthrough virtualisation.docker.enableNvidia = true; }; }