{ user ? throw "user argument is required", home ? throw "home argument is required", }: { config, pkgs, ... }: { boot = { kernelModules = [ "v4l2loopback" ]; extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; extraModprobeConfig = '' options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 ''; }; environment.persistence = { "/persist"."${home}/.config/obs-studio" = { }; }; home-manager.users.${user} = { programs.obs-studio.enable = true; xdg.configFile."obs-studio/basic/profiles/Untitled/basic.ini".source = (pkgs.formats.ini { }).generate "basic.ini" { SimpleOutput = { FilePath = "${home}/Videos"; VBitrate = 4000; ABitrate = 320; RecEncoder = "nvenc_hevc"; FileNameWithoutSpace = true; }; }; }; }