feat: OBS Studio virtual camera

This commit is contained in:
DACHXY 2025-01-23 23:34:10 +08:00
parent d5fcc2cf5f
commit 24afd66d64
5 changed files with 20 additions and 27 deletions

View file

@ -6,15 +6,9 @@
}:
let
browser = "firefox-nightly";
noOffloadBrowser = "${browser} -P noOffload -no-remote";
iconPrefix = ".local/share/icons/hicolor/scalable/apps";
newWindow = "${browser} --new-window";
mkIconPkg = pkgs.callPackage ../../utils/make-icon.nix { };
googleMeetIcon = mkIconPkg {
name = "googleMeet";
url = "https://fonts.gstatic.com/s/i/productlogos/meet_2020q4/v1/web-512dp/logo_meet_2020q4_color_1x_web_512dp.png";
sha256 = "sha256-LL33KhQTv4VVdPRBm7nzsHtPoQ2ArHwjwVxq2p8VdM4=";
};
in
{
# Update icon cache
@ -50,10 +44,6 @@ in
'';
};
home.packages = [
googleMeetIcon
];
xdg.desktopEntries = {
notion = {
name = "Notion";
@ -67,17 +57,5 @@ in
"Utility"
];
};
googleMeet = {
name = "Google Meet";
genericName = "Community";
exec = "${noOffloadBrowser} https://meet.google.com";
comment = "Google Meet";
icon = "googleMeet";
terminal = false;
categories = [
"Network"
];
};
};
}

View file

@ -44,6 +44,8 @@ let
in
{
home.packages = with pkgs; [
mpvpaper # Video Wallpaper
yt-dlp
hyprpaper
hyprcursor
ewwWayland

View file

@ -28,6 +28,7 @@ in
obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
];

View file

@ -46,9 +46,15 @@ in
# Enable bluetooth
boot = {
extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
extraModulePackages = with config.boot.kernelPackages; [
xpadneo
v4l2loopback # OBS Virtual Camera
];
extraModprobeConfig = ''
options bluetooth disable_ertm=Y
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
'';
};
security.polkit.enable = true;
}

View file

@ -23,9 +23,12 @@ let
offload = import ./offload.nix { inherit pkgs; };
in
lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
environment.systemPackages = [
environment.systemPackages = with pkgs; [
offload
pkgs.nvtopPackages.nvidia
nvtopPackages.nvidia
vulkan-loader
vulkan-validation-layers
vulkan-tools
];
# Enable nvidia on wayland or xserver
@ -56,7 +59,7 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
nvidia.nvidiaSettings = true;
nvidia.dynamicBoost.enable = true;
nvidia.package = config.boot.kernelPackages.nvidiaPackages.beta;
nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
nvidia.prime =
(
@ -90,6 +93,8 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
enable32Bit = true;
extraPackages = with pkgs; [
nvidia-vaapi-driver
vaapiVdpau
libvdpau-va-gl
];
};
};
@ -97,8 +102,9 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
environment.variables = {
# GPU
LIBVA_DRIVER_NAME = "nvidia";
# __GLX_VENDOR_LIBRARY_NAME = "nvidia";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
NVD_BACKEND = "direct";
GBM_BACKEND = "nvidia-drm";
MOZ_DISABLE_RDD_SANDBOX = 1;
OGL_DEDICATED_HW_STATE_PER_CONTEXT = "ENABLE_ROBUST";
INTEL_GPU_MIN_FREQ_ON_AC = "500";