How to Install and Set Up PipeWire on Gentoo
Practical steps for installing and configuring PipeWire on Gentoo when you use cameras, microphones, screen capture, audio playback or video calls.
Before you start
PipeWire runs as a per-user multimedia service. Installing the packages is a system-level Portage operation, while the audio and video routing usually runs under your normal user session. Check that your Portage configuration is synchronized before changing USE flags or installing packages. If you currently use PulseAudio or JACK, plan to replace those user services with PipeWire rather than running multiple audio servers at the same time.
Step-by-step instructions
Start by adding the PipeWire daemon and helper packages. The exact package set can vary depending on the desktop environment and whether you use a configuration manager such as systemd. Enable the sound-server USE flag on media-video/pipewire if you need PulseAudio compatibility, and enable the pipewire-alsa USE flag on media-libs/alsa-lib when ALSA applications should route through PipeWire.
emerge --ask media-video/pipewire media-video/wireplumber
If you need compatibility with applications written for PulseAudio, install media-sound/pulseaudio-daemon or the package provided by your current Portage profile. Some setups also use media-sound/pipewire-pulse to expose a PulseAudio-compatible socket. Keep this separate from a full PulseAudio server, because running both can create duplicate audio devices.
emerge --ask media-sound/pipewire-pulse
For JACK applications, check whether media-video/pipewire has the jack USE flag enabled. This provides a PipeWire-backed JACK interface without needing a standalone JACK server. Rebuild PipeWire after changing this flag so the new support is included.
emerge --ask --changed-use media-video/pipewire
Start the user-level PipeWire and WirePlumber services during your desktop session. If your session uses systemd user units, run:
systemctl --user enable --now pipewire pipewire-pulse wireplumber
For non-systemd desktop sessions, start the daemons through your session autostart mechanism or run them manually in the current session. The order matters: start PipeWire first, then the session manager, then the PulseAudio compatibility service if used.
/usr/bin/pipewire &
/usr/bin/wireplumber &
/usr/bin/pipewire-pulse &
When you use a camera, select PipeWire as the capture backend in the application if it offers a choice. Browsers may expose camera access through the desktop portal or their own media backend, so a current desktop portal package may be needed for screen sharing and camera permission prompts. Reboot or restart your desktop session after the first installation so applications pick up the new multimedia paths.
Check the output
Verify the user services are active without assuming a device works merely because the service started. List available PipeWire objects and look for your expected audio or camera node:
pw-cli ls Node
Confirm that the PulseAudio-compatible socket is present:
pactl info
Run a short playback and recording test through the expected device, then observe the volume and mute state in your desktop sound settings or with a tool that reads PipeWire properties. For a webcam, open the video preview in an application that uses the camera and check whether the device appears as a video source. The available resolution, frame rate and format are limited by the camera driver and application, not by PipeWire alone.
Common problems and next steps
If no sound plays, first check whether an old PulseAudio or JACK server is still running. Stop those services and restart the PipeWire user units. Missing devices after a kernel or package update may mean the session manager has not re-scanned nodes; restart WirePlumber before changing configuration files.
For a camera that is not listed, confirm the kernel video device is visible to your user, then check whether the application is using PipeWire or another capture path. Applications that were already running may need to be restarted after PipeWire is enabled. Screen sharing failures in a browser often relate to the desktop portal rather than PipeWire itself, so install or update the portal package that matches your desktop environment.
Configuration changes belong in your user configuration directory, not in the package-owned defaults. Copy only the configuration snippet you need to change and keep a backup so the setup remains reversible. After changing sample rates, buffer sizes or routing rules, restart the affected PipeWire service and repeat the output check instead of assuming the change is active.