35 lines
780 B
Nix
35 lines
780 B
Nix
{pkgs, ...}: let
|
|
obsBase = pkgs.obs-studio.override {
|
|
pipewireSupport = true;
|
|
browserSupport = true;
|
|
};
|
|
|
|
plugins = with pkgs.obs-studio-plugins; [
|
|
obs-gstreamer
|
|
obs-pipewire-audio-capture
|
|
obs-vaapi
|
|
];
|
|
|
|
obsPluginEnv = pkgs.buildEnv {
|
|
name = "obs-studio-with-plugins-env";
|
|
paths = plugins;
|
|
};
|
|
|
|
obsWrapped = pkgs.symlinkJoin {
|
|
name = "obs-studio-wrapped";
|
|
paths = [obsBase];
|
|
buildInputs = [pkgs.makeWrapper];
|
|
|
|
postBuild = ''
|
|
wrapProgram $out/bin/obs \
|
|
--set OBS_PLUGINS_PATH "${obsPluginEnv}/lib/obs-plugins" \
|
|
--set OBS_PLUGINS_DATA_PATH "${obsPluginEnv}/share/obs/obs-plugins" \
|
|
--add-flags "--ozone-platform=wayland"
|
|
'';
|
|
};
|
|
in {
|
|
users.users.someone.packages = [
|
|
obsWrapped
|
|
];
|
|
}
|