services.pipewire.enable
Whether to enable PipeWire configurations.
Type: boolean
Default:
false
Example:
true
Declared by:
services.pipewire.clientConfigs
Set of configuration files for the PipeWire client library.
Every item in this attrset becomes a separate drop-in file in
$XDG_CONFIG_HOME/pipewire/client.conf.d/.
See the PipeWire wiki for examples.
Type: attribute set of (JSON value)
Default:
{ }
Example:
{
"10-no-resample" = {
"stream.properties" = {
"resample.disable" = true;
};
};
}
Declared by:
services.pipewire.configPackages
List of packages that provide PipeWire configurations, in the form of
share/pipewire/*/*.conf files.
LV2 dependencies will be picked up from config packages automatically
via passthru.requiredLv2Packages.
Type: list of package
Default:
[ ]
Example:
[
(pkgs.writeTextDir "share/pipewire/pipewire.conf.d/10-loopback.conf" ''
context.modules = [
{
name = libpipewire-module-loopback
args = {
node.description = "Scarlett Focusrite Line 1"
capture.props = {
audio.position = [ FL ]
stream.dont-remix = true
node.target = "alsa_input.usb-Focusrite_Scarlett_Solo_USB_Y7ZD17C24495BC-00.analog-stereo"
node.passive = true
}
playback.props = {
node.name = "SF_mono_in_1"
media.class = "Audio/Source"
audio.position = [ MONO ]
}
}
}
]
'')
]
Declared by:
services.pipewire.configs
Set of configuration files for the PipeWire server.
Every item in this attrset becomes a separate drop-in file in
$XDG_CONFIG_HOME/pipewire/pipewire.conf.d/.
See man pipewire.conf for details, and the PipeWire wiki for
examples.
Type: attribute set of (JSON value)
Default:
{ }
Example:
{
"10-clock-rate" = {
"context.properties" = {
"default.clock.rate" = 44100;
};
};
"11-no-upmixing" = {
"stream.properties" = {
"channelmix.upmix" = false;
};
};
}
Declared by:
services.pipewire.extraLadspaPackages
List of packages that provide LADSPA plugins, in the form of
lib/ladspa/* files.
LADSPA dependencies will be picked up from config packages automatically
via passthru.requiredLadspaPackages, so they don’t need to be set here.
Type: list of package
Default:
[ ]
Example:
[ pkgs.noisetorch-ladspa ]
Declared by:
services.pipewire.extraLv2Packages
List of packages that provide LV2 plugins, in the form of
lib/lv2/* files.
LV2 dependencies will be picked up from config packages automatically
via passthru.requiredLv2Packages, so they don’t need to be set here.
Type: list of package
Default:
[ ]
Example:
[ pkgs.lsp-plugins ]
Declared by:
services.pipewire.jackConfigs
Set of configuration files for the PipeWire JACK server and client library.
Every item in this attrset becomes a separate drop-in file in
$XDG_CONFIG_HOME/pipewire/jack.conf.d/.
See the PipeWire wiki for examples.
Type: attribute set of (JSON value)
Default:
{ }
Example:
{
"20-hide-midi" = {
"jack.properties" = {
"jack.show-midi" = false;
};
};
}
Declared by:
services.pipewire.pulseConfigs
Set of configuration files for the PipeWire PulseAudio server.
Every item in this attrset becomes a separate drop-in file in
$XDG_CONFIG_HOME/pipewire/pipewire-pulse.conf.d/.
See man pipewire-pulse.conf for details, and the PipeWire wiki for
examples.
Type: attribute set of (JSON value)
Default:
{ }
Example:
{
"15-force-s16-info" = {
"pulse.rules" = [
{
actions = {
quirks = [
"force-s16-info"
];
};
matches = [
{
"application.process.binary" = "my-broken-app";
}
];
}
];
};
}
Declared by:
services.pipewire.wireplumber.enable
Whether to enable WirePlumber configurations.
Type: boolean
Default:
false
Example:
true
Declared by:
services.pipewire.wireplumber.configPackages
List of packages that provide WirePlumber configurations, in the form
of share/wireplumber/*/*.conf files.
LV2 dependencies will be picked up from config packages automatically
via passthru.requiredLv2Packages.
Type: list of package
Default:
[ ]
Example:
[
(pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/10-bluez.conf" ''
monitor.bluez.properties = {
bluez5.roles = [ a2dp_sink a2dp_source bap_sink bap_source hsp_hs hsp_ag hfp_hf hfp_ag ]
bluez5.codecs = [ sbc sbc_xq aac ]
bluez5.enable-sbc-xq = true
bluez5.hfphsp-backend = "native"
}
'')
]
Declared by:
services.pipewire.wireplumber.configs
Set of configuration files for the WirePlumber daemon.
Every item in this attrset becomes a separate drop-in file in
$XDG_CONFIG_HOME/wireplumber/wireplumber.conf.d/.
See the NixOS option for details.
Type: attribute set of (JSON value)
Default:
{ }
Example:
{
log-level-debug = {
"context.properties" = {
"log.level" = "D";
};
};
wh-1000xm3-ldac-hq = {
"monitor.bluez.rules" = [
{
actions = {
update-props = {
"bluez5.a2dp.ldac.quality" = "hq";
};
};
matches = [
{
"device.name" = "~bluez_card.*";
"device.product.id" = "0x0cd3";
"device.vendor.id" = "usb:054c";
}
];
}
];
};
}
Declared by:
services.pipewire.wireplumber.scriptPackages
List of packages that provide WirePlumber scripts, in the form of
share/wireplumber/scripts/*/*.lua files.
Type: list of package
Default:
[ ]
Example:
[
(pkgs.writeTextDir "share/wireplumber/scripts/test/hello-world.lua" ''
print("Hello, world!")
'')
]
Declared by:
services.pipewire.wireplumber.scripts
Set of lua scripts to be used by WirePlumber configuration files.
Every item in this attrset becomes a separate drop-in file in
$XDG_DATA_HOME/wireplumber/scripts/.
See the NixOS option for details.
Type: attribute set of strings concatenated with “\n”
Default:
{ }
Example:
{
"test/hello-world.lua" = ''
print("Hello, world!")
'';
}
Declared by: