{ outputs, options, config, lib, pkgs, ... }: with lib; let cfg = config.modules.hardware.nvidia.prime; busIDType = lib.types.strMatching "([[:print:]]+[\:\@][0-9]{1,3}\:[0-9]{1,2}\:[0-9])?"; in { options.modules.hardware.nvidia.prime = { enable = mkOption { type = types.bool; default = false; }; intelBusId = mkOption { type = busIDType; default = ""; }; nvidiaBusId = mkOption { type = busIDType; default = ""; }; }; config = mkIf cfg.enable { hardware.nvidia = { prime = { offload = { enable = cfg.enable; enableOffloadCmd = cfg.enable; }; #intelBusId = "PCI:0:2:0"; #nvidiaBusId = "PCI:1:0:0"; intelBusId = cfg.intelBusId; nvidiaBusId = cfg.nvidiaBusId; }; }; }; }