{ lib, pkgs, ... }: { options = { decklink.enable = lib.mkEnableOption "enables decklink support"; }; config = { # Kernel modules hardware.decklink.enable = true; # DesktopVideoHelper environment.systemPackages = with pkgs; [ blackmagic-desktop-video ]; # Enable decklinkSupport flag globally for all packages that support it (e.g. obs) nixpkgs.overlays = [ #(final: prev: { decklinkSupport = true; }) (final: prev: { blackmagic-desktop-video = (pkgs.callPackage ./software/derivations/blackmagic-desktop-video-gui/generic.nix {}).override({ desktopVideoFull = true; }); }) ]; services.udev.extraRules = '' ACTION=="add", KERNEL=="blackmagic/dv[0-9]*", MODE="0666", RUN+="${pkgs.blackmagic-desktop-video}/bin/DesktopVideoNotifier add /dev/%k" ACTION=="remove", KERNEL=="blackmagic/dv[0-9]*", RUN+="${pkgs.blackmagic-desktop-video}/bin/DesktopVideoNotifier del /dev/%k" ACTION=="add", KERNEL=="blackmagic/ttydv[0-9]*", SYMLINK+="blackmagic/serial%n", MODE="0666" ACTION=="add", KERNEL=="blackmagic/io[0-9]*", MODE="0666", RUN+="${pkgs.blackmagic-desktop-video}/bin/DesktopVideoNotifier add /dev/%k" ACTION=="remove", KERNEL=="blackmagic/io[0-9]*", RUN+="${pkgs.blackmagic-desktop-video}/bin/DesktopVideoNotifier del /dev/%k" ACTION=="add", KERNEL=="blackmagic/ttyio[0-9]*", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bd90", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bd97", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bd98", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bda1", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bda9", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bdab", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bdaa", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bdbf", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bdcc", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bdd1", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bdda", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bddb", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bddc", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bdf5", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="bdff", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="be07", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="be13", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1edb", ATTRS{idProduct}=="be14", MODE="0666" ''; }; }