PipeWire: Difference between revisions
imported>Fufexan m Fix millisecond value and specify rate |
imported>Tobias.bora Add some troubleshot (no volume keys...) and a list of graphical tools |
||
Line 1: | Line 1: | ||
PipeWire is a new 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 is a new 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 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 77: | Line 77: | ||
}; | }; | ||
</syntaxHighlight> | </syntaxHighlight> | ||
==Graphical tools== | |||
At the end, all protocols (pulseaudio/jack) are turned into pipewire protocol and are managed via the pipewire daemon (so some applications can be managed by both pulseaudio and jack applications). For that reason, all graphical tools used for the pulseaudio or jack protocol can be used: | |||
* pavucontrol: very complete, can control the volume (also possible to do in on a per-app basis), the default outputs/inputs, the different profiles (for HDMI outputs/bluetooth devices), route each application to a different input/output... | |||
* plasma-pa: a plasma applet to change volume directly from the systray. Also deals with volume keys. | |||
* qjackctl: with jack emulation, patchbay (to connect applications together). Note that Jack does not provide any way to change the volume of a single application. In pipewire, use pulseaudio tools to change volume. | |||
* carla: with jack emulation, patchbay (make sure to go to "Patchbay" tab and check "Canvas > Show External") | |||
* catia/patchage: with jack emulation, patchbay (similar to qjackctl and carla) | |||
* [https://gitlab.freedesktop.org/ryuukyu/helvum/ Helvum] GTK-based patchbay for pipewire (do not use jack or pulseaudio). Volume control is planned for later | |||
==Troubleshot== | |||
See also [https://github.com/NixOS/nixpkgs/issues/102547 this thread]. | |||
===Volume keys does not work in KDE, and sound applet is gone=== | |||
If volume keys does not work in KDE and/or if you don't have the sound applet, make sure to install `plasma-pa` (you may need to restart the session for it to apply). It is now added automatically since [https://github.com/NixOS/nixpkgs/pull/123211 this PR (22/05/2021)]. | |||
===pactl does not work=== | |||
I you want to use some pulseaudio commands like <code>pactl</code>, you can safely install (either systemwide or in a nix-shell) the `pavucontrol` package (do not configure it as a service: the package alone will not start it automatically, which avoids conflicts with pipewire). You may also be interested by the pipewire command line <code>pw-cli</code>. | |||
====== | |||
==Advanced Configuration== | ==Advanced Configuration== |