{ config, lib, ... }:

{
  options.services.nvidia.enable = lib.mkEnableOption "Enable NVIDIA kernel and modprobe configurations.";

  config = lib.mkIf config.services.nvidia.enable {
    boot.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ];
    boot.extraModprobeConfig = ''
      options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
    '';
  };
}