From 635edfc0ce1ae0504f2877f846211a4fdfa6d327 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Fri, 11 Jul 2025 11:26:40 -0500 Subject: blackmagic desktop vid custom derivation and decklink support --- modules/hosts/optiplex/configuration.nix | 4 ++++ modules/root/decklink.nix | 24 ++++++++++++++++++++++++ modules/root/default.nix | 2 ++ modules/root/software/default.nix | 1 + modules/root/software/desktop.nix | 3 +++ modules/root/software/utilities.nix | 1 + 6 files changed, 35 insertions(+) create mode 100644 modules/root/decklink.nix (limited to 'modules') diff --git a/modules/hosts/optiplex/configuration.nix b/modules/hosts/optiplex/configuration.nix index 16ba475..625d37a 100644 --- a/modules/hosts/optiplex/configuration.nix +++ b/modules/hosts/optiplex/configuration.nix @@ -13,6 +13,7 @@ graphics.enable = true; office.enable = true; utilities.enable = true; + video.enable = true; }; software.development = { docker.enable = true; @@ -31,6 +32,9 @@ # Disable wifi wifi.enable = false; + # Enable decklink + decklink.enable = true; + # Use nvidia driver services.xserver.videoDrivers = [ "nvidia" ]; hardware.nvidia = { diff --git a/modules/root/decklink.nix b/modules/root/decklink.nix new file mode 100644 index 0000000..6fd6395 --- /dev/null +++ b/modules/root/decklink.nix @@ -0,0 +1,24 @@ +{ lib, pkgs, ... }: { + options = { + decklink.enable = lib.mkEnableOption "enables decklink support"; + }; + + config = { + # Kernel modules + hardware.decklink.enable = true; + + # DesktopVideoHelper + environment.systemPackages = with pkgs; [ pkgs.blackmagic-desktop-video-gui ]; + + # Enable decklinkSupport flag globally for all packages that support it (e.g. obs) + nixpkgs.overlays = [ + (final: prev: { decklinkSupport = true; }) + #(import ./software/derivations/blackmagic-desktop-video-gui/default.nix) + (final: prev: { + blackmagic-desktop-video-gui = (pkgs.callPackage ./software/derivations/blackmagic-desktop-video-gui/generic.nix {}).override({ + desktopVideoFull = true; + }); + }) + ]; + }; +} diff --git a/modules/root/default.nix b/modules/root/default.nix index e24e4b0..1006d7d 100644 --- a/modules/root/default.nix +++ b/modules/root/default.nix @@ -4,6 +4,7 @@ ./autologin.nix ./bluetooth.nix ./bootloader.nix + ./decklink.nix ./doas.nix ./fonts.nix ./home-manager.nix @@ -28,6 +29,7 @@ autologin.enable = lib.mkDefault true; avahi.enable = lib.mkDefault true; bluetooth.enable = lib.mkDefault false; + decklink.enable = lib.mkDefault false; doas.enable = lib.mkDefault true; fonts.enable = lib.mkDefault true; nas = { diff --git a/modules/root/software/default.nix b/modules/root/software/default.nix index 5f6494d..7696fd6 100644 --- a/modules/root/software/default.nix +++ b/modules/root/software/default.nix @@ -20,6 +20,7 @@ graphics.enable = lib.mkDefault false; office.enable = lib.mkDefault false; utilities.enable = lib.mkDefault false; + video.enable = lib.mkDefault false; }; software.development = { diff --git a/modules/root/software/desktop.nix b/modules/root/software/desktop.nix index b8cd1e7..ddbf784 100644 --- a/modules/root/software/desktop.nix +++ b/modules/root/software/desktop.nix @@ -16,6 +16,7 @@ graphics.enable = lib.mkEnableOption "enables graphic design apps"; office.enable = lib.mkEnableOption "enables office apps"; utilities.enable = lib.mkEnableOption "enables miscellaneous utility apps"; + video.enable = lib.mkEnableOption "enables video apps"; }; }; @@ -63,6 +64,8 @@ qbittorrent qdirstat remmina + ] ++ pkgs.lib.optionals config.software.desktop.video.enable [ + obs-studio ]; programs.localsend.enable = config.software.desktop.utilities.enable; # Installs & opens firewall diff --git a/modules/root/software/utilities.nix b/modules/root/software/utilities.nix index 79285a1..bbe2539 100644 --- a/modules/root/software/utilities.nix +++ b/modules/root/software/utilities.nix @@ -15,6 +15,7 @@ openssl p7zip pavolctld + pciutils powertop pv rsync -- cgit v1.2.3