{ pkgs, lib, osConfig, ... }:
let
  withCuda = if (osConfig.system.name == "gunter") then true else false;
  onnxruntime-gpu = (pkgs.onnxruntime.override {
    cudaSupport = withCuda;
  });
  obs-backgrounremoval-gpu = ((pkgs.obs-studio-plugins.obs-backgroundremoval.override {
    onnxruntime = onnxruntime-gpu;
  }).overrideAttrs (old: {
    version = "1.1.14-beta";
    src = pkgs.fetchFromGitHub {
      owner = "occ-ai";
      repo = "obs-backgroundremoval";
      rev = "94be8c35fe077be93a6f5ef347a802295a36dddd";
      hash = "sha256-qnxDNeTWQYiRMqT6jNp8GC8ef6aaAAY+OXAak54dVc8=";
    };
    cmakeFlags =
      if withCuda then
        (lib.lists.remove "-DDISABLE_ONNXRUNTIME_GPU=ON" old.cmakeFlags)
      else old.cmakeFlags;
  }));
in
{
  programs.obs-studio = {
    enable = true;
    plugins = with pkgs.obs-studio-plugins; [
      obs-pipewire-audio-capture
      obs-shaderfilter
    ] ++ [ obs-backgrounremoval-gpu ];
  };
}