nix-files/hosts/common/programs/wireplumber.nix

45 lines
1.2 KiB
Nix

{ config, pkgs, ... }:
{
sane.programs.wireplumber = {
packageUnwrapped = pkgs.wireplumber.override {
# use the same pipewire as configured to run against.
pipewire = config.sane.programs.pipewire.packageUnwrapped;
};
sandbox.method = "bwrap";
# sandbox.whitelistDbus = [
# "system" #< so it can request better scheduling from rtkit
# # "user" #< TODO: is this needed?
# ];
sandbox.whitelistAudio = true;
sandbox.extraPaths = [
# i think these video inputs (for e.g. webcam) are optional.
"/dev/media0"
"/dev/snd"
"/dev/video0"
"/dev/video1"
"/dev/video2"
# "/run/systemd"
"/run/udev"
"/sys/class/sound"
"/sys/class/video4linux"
"/sys/devices"
];
sandbox.isolatePids = false; #< needed if i want rtkit to grant this higher scheduling priority
suggestedPrograms = [ "alsa-ucm-conf" ];
persist.byStore.plaintext = [
# persist per-device volume levels
".local/state/wireplumber"
];
services.wireplumber = {
description = "wireplumber: pipewire Multimedia Service Session Manager";
depends = [ "pipewire" ];
partOf = [ "sound" ];
command = "wireplumber";
};
};
}