feat: OBS Studio virtual camera
This commit is contained in:
parent
d5fcc2cf5f
commit
24afd66d64
5 changed files with 20 additions and 27 deletions
|
|
@ -6,15 +6,9 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
browser = "firefox-nightly";
|
browser = "firefox-nightly";
|
||||||
noOffloadBrowser = "${browser} -P noOffload -no-remote";
|
|
||||||
iconPrefix = ".local/share/icons/hicolor/scalable/apps";
|
iconPrefix = ".local/share/icons/hicolor/scalable/apps";
|
||||||
newWindow = "${browser} --new-window";
|
newWindow = "${browser} --new-window";
|
||||||
mkIconPkg = pkgs.callPackage ../../utils/make-icon.nix { };
|
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
|
in
|
||||||
{
|
{
|
||||||
# Update icon cache
|
# Update icon cache
|
||||||
|
|
@ -50,10 +44,6 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [
|
|
||||||
googleMeetIcon
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.desktopEntries = {
|
xdg.desktopEntries = {
|
||||||
notion = {
|
notion = {
|
||||||
name = "Notion";
|
name = "Notion";
|
||||||
|
|
@ -67,17 +57,5 @@ in
|
||||||
"Utility"
|
"Utility"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
googleMeet = {
|
|
||||||
name = "Google Meet";
|
|
||||||
genericName = "Community";
|
|
||||||
exec = "${noOffloadBrowser} https://meet.google.com";
|
|
||||||
comment = "Google Meet";
|
|
||||||
icon = "googleMeet";
|
|
||||||
terminal = false;
|
|
||||||
categories = [
|
|
||||||
"Network"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,8 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
mpvpaper # Video Wallpaper
|
||||||
|
yt-dlp
|
||||||
hyprpaper
|
hyprpaper
|
||||||
hyprcursor
|
hyprcursor
|
||||||
ewwWayland
|
ewwWayland
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ in
|
||||||
obs-studio = {
|
obs-studio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
wlrobs
|
||||||
obs-backgroundremoval
|
obs-backgroundremoval
|
||||||
obs-pipewire-audio-capture
|
obs-pipewire-audio-capture
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -46,9 +46,15 @@ in
|
||||||
|
|
||||||
# Enable bluetooth
|
# Enable bluetooth
|
||||||
boot = {
|
boot = {
|
||||||
extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
|
extraModulePackages = with config.boot.kernelPackages; [
|
||||||
|
xpadneo
|
||||||
|
v4l2loopback # OBS Virtual Camera
|
||||||
|
];
|
||||||
extraModprobeConfig = ''
|
extraModprobeConfig = ''
|
||||||
options bluetooth disable_ertm=Y
|
options bluetooth disable_ertm=Y
|
||||||
|
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
security.polkit.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,12 @@ let
|
||||||
offload = import ./offload.nix { inherit pkgs; };
|
offload = import ./offload.nix { inherit pkgs; };
|
||||||
in
|
in
|
||||||
lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
||||||
environment.systemPackages = [
|
environment.systemPackages = with pkgs; [
|
||||||
offload
|
offload
|
||||||
pkgs.nvtopPackages.nvidia
|
nvtopPackages.nvidia
|
||||||
|
vulkan-loader
|
||||||
|
vulkan-validation-layers
|
||||||
|
vulkan-tools
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable nvidia on wayland or xserver
|
# Enable nvidia on wayland or xserver
|
||||||
|
|
@ -56,7 +59,7 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
||||||
|
|
||||||
nvidia.nvidiaSettings = true;
|
nvidia.nvidiaSettings = true;
|
||||||
nvidia.dynamicBoost.enable = true;
|
nvidia.dynamicBoost.enable = true;
|
||||||
nvidia.package = config.boot.kernelPackages.nvidiaPackages.beta;
|
nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
|
|
||||||
nvidia.prime =
|
nvidia.prime =
|
||||||
(
|
(
|
||||||
|
|
@ -90,6 +93,8 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
||||||
enable32Bit = true;
|
enable32Bit = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
nvidia-vaapi-driver
|
nvidia-vaapi-driver
|
||||||
|
vaapiVdpau
|
||||||
|
libvdpau-va-gl
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -97,8 +102,9 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
# GPU
|
# GPU
|
||||||
LIBVA_DRIVER_NAME = "nvidia";
|
LIBVA_DRIVER_NAME = "nvidia";
|
||||||
# __GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||||
NVD_BACKEND = "direct";
|
NVD_BACKEND = "direct";
|
||||||
|
GBM_BACKEND = "nvidia-drm";
|
||||||
MOZ_DISABLE_RDD_SANDBOX = 1;
|
MOZ_DISABLE_RDD_SANDBOX = 1;
|
||||||
OGL_DEDICATED_HW_STATE_PER_CONTEXT = "ENABLE_ROBUST";
|
OGL_DEDICATED_HW_STATE_PER_CONTEXT = "ENABLE_ROBUST";
|
||||||
INTEL_GPU_MIN_FREQ_ON_AC = "500";
|
INTEL_GPU_MIN_FREQ_ON_AC = "500";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue