main
1{
2 den.aspects.desktop.app.obs-studio = {
3 persistHome = {config, ...}: {
4 directories = [
5 "${config.xdg.config.directory}/obs-studio"
6 ];
7 };
8
9 nixos = {config, ...}: {
10 # From https://github.com/NixOS/nixpkgs/blob/f8cc9d1b80b6c75fec21ecc549f631c3eed5a5e1/nixos/modules/programs/obs-studio.nix
11 boot = {
12 kernelModules = ["v4l2loopback"];
13 # TODO: Remove workaround after https://github.com/NixOS/nixpkgs/pull/575861 merged
14 # extraModulePackages = [config.boot.kernelPackages.v4l2loopback];
15 extraModulePackages = [
16 (config.boot.kernelPackages.v4l2loopback.overrideAttrs (old: {
17 preBuild = "";
18 installFlags = [
19 "DEPMOD=true"
20 "INSTALL_MOD_PATH=${placeholder "out"}"
21 ];
22 }))
23 ];
24
25 extraModprobeConfig = ''
26 options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
27 '';
28 };
29 };
30
31 hjem = {pkgs, ...}: {
32 packages = [
33 (pkgs.wrapOBS {
34 plugins = with pkgs.obs-studio-plugins; [
35 input-overlay
36 obs-pipewire-audio-capture
37 obs-vkcapture
38 obs-backgroundremoval
39 ];
40 })
41 ];
42 };
43 };
44
45 den.aspects.desktop.app.obs-studio.themes = {
46 catppuccin = {
47 hjem = {pkgs, ...}: let
48 catppuccin-obs = pkgs.fetchFromGitHub {
49 owner = "catppuccin";
50 repo = "obs";
51 rev = "054a297d303a5bac4f1652a13b17d78a13201c0e";
52 hash = "sha256-zFg7dgxLIK3K1KpLdEgphH2JpdMwVTovr+oKiAqdLEE=";
53 };
54 in {
55 xdg.config.files."obs-studio/themes".source = "${catppuccin-obs}/themes";
56 };
57 };
58 };
59}