PipeWire: Difference between revisions

Describe how to turn off sound for X11 urgency hints as an example for extraConfig
m grammar
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:


[https://www.pipewire.org/ PipeWire] is a relatively new (first release in 2017) low-level multimedia framework. It aims to offer capture and playback for both audio and video with minimal latency and support for [[PulseAudio]]-, [[JACK]]-, [[ALSA]]- and [[GStreamer]]-based applications. PipeWire has a great [[Bluetooth|bluetooth]] support: because Pulseaudio was [https://github.com/NixOS/nixpkgs/issues/123784 reported to have troubles with bluetooth], PipeWire can be a good alternative.
[https://www.pipewire.org/ PipeWire] is a relatively new (first release in 2017) low-level multimedia framework. It aims to offer capture and playback for both audio and video with minimal latency and support for [[PulseAudio]]-, [[JACK]]-, [[ALSA]]- and [[GStreamer]]-based applications. PipeWire has great [[Bluetooth|bluetooth]] support: because Pulseaudio was [https://github.com/NixOS/nixpkgs/issues/123784 reported to have troubles with bluetooth], PipeWire can be a good alternative.


The daemon based on the framework can be configured to be both an audio server (with PulseAudio and JACK features) and a video capture server.
The daemon based on the framework can be configured to be both an audio server (with PulseAudio and JACK features) and a video capture server.
Line 132: Line 132:
* {{nixos:package|carla}}: with JACK emulation, provides a patchbay (make sure to go to "Patchbay" tab and check "Canvas > Show External").
* {{nixos:package|carla}}: with JACK emulation, provides a patchbay (make sure to go to "Patchbay" tab and check "Canvas > Show External").
* catia/{{nixos:package|patchage}}: similar to qjackctl and carla.
* catia/{{nixos:package|patchage}}: similar to qjackctl and carla.
* {{nixos:package|helvum}}: GTK-based patchbay for PipeWire (uses the PipeWire protocol). Volume control is planned for later.
* {{nixos:package|pwvucontrol}}: Similar to pavucontrol but for pipewire


==Advanced Configuration==
==Advanced Configuration==
Line 281: Line 281:


Despite early activation, you may still experience a race condition that prevents audio from working if you play media immediately after a new login such as running an SSH command. If this occurs, try introducing a short delay (e.g. <code>sleep 5</code>) before invoking the media player application.
Despite early activation, you may still experience a race condition that prevents audio from working if you play media immediately after a new login such as running an SSH command. If this occurs, try introducing a short delay (e.g. <code>sleep 5</code>) before invoking the media player application.
==== System-wide PipeWire ====
As an alternative to having lingering systemd user services, PipeWire can also run as a system-wide Systemd service. See {{nixos:option|services.pipewire.systemWide}} for more.
{{file|/etc/nixos/configuration.nix|nix|3=
services.pipewire.systemWide = true;
services.pipewire.pulse.enable = true; # pipewire-pulse also supports running system-wide
# PipeWire users must be in the `pipewire` group
users.users.myservice1.extraGroups = [ "pipewire" ];
systemd.services.myservice2.serviceConfig.SupplementaryGroups = [ "pipewire" ];
}}


==Troubleshooting==
==Troubleshooting==