Fourth revision for the NEWSITEM to add PipeWire as default to all desktop
profiles as part of https://github.com/gentoo/gentoo/pull/43497

This resolves the following open bugs:
https://bugs.gentoo.org/961764
https://bugs.gentoo.org/936101
https://bugs.gentoo.org/927245

While also matching the Plasma audio USE flags.

Further reasoning and what each USE flag does is described in the NEWITEM
below, as well as how to disable the change if the user does
not wish to use it.

Immolo

Title: Desktop Profile to enable PipeWire support
Author: Ian Jordan <[email protected]>
Posted: 2025-09-06
Revision: 4
News-Item-Format: 2.0
Display-If-Profile: default/linux/alpha/23.0/desktop
Display-If-Profile: default/linux/alpha/23.0/desktop/*
Display-If-Profile: default/linux/alpha/23.0/split-usr/desktop
Display-If-Profile: default/linux/alpha/23.0/split-usr/desktop/*
Display-If-Profile: default/linux/amd64/23.0/desktop
Display-If-Profile: default/linux/amd64/23.0/desktop/*
Display-If-Profile: default/linux/amd64/23.0/split-usr/desktop
Display-If-Profile: default/linux/amd64/23.0/split-usr/desktop/*
Display-If-Profile: default/linux/arm/23.0/armv7a_hf/desktop
Display-If-Profile: default/linux/arm/23.0/armv7a_hf/desktop/*
Display-If-Profile: default/linux/arm/23.0/armv7a_sf/desktop
Display-If-Profile: default/linux/arm/23.0/armv7a_sf/desktop/*
Display-If-Profile: default/linux/arm/23.0/desktop
Display-If-Profile: default/linux/arm/23.0/desktop/*
Display-If-Profile: default/linux/arm/23.0/split-usr/armv7a_hf/desktop
Display-If-Profile: default/linux/arm/23.0/split-usr/armv7a_hf/desktop/*
Display-If-Profile: default/linux/arm/23.0/split-usr/desktop
Display-If-Profile: default/linux/arm/23.0/split-usr/desktop/*
Display-If-Profile: default/linux/arm64/23.0/desktop
Display-If-Profile: default/linux/arm64/23.0/desktop/*
Display-If-Profile: default/linux/arm64/23.0/split-usr/desktop
Display-If-Profile: default/linux/arm64/23.0/split-usr/desktop/*
Display-If-Profile: default/linux/hppa/23.0/hppa1.1/desktop
Display-If-Profile: default/linux/hppa/23.0/hppa1.1/desktop/*
Display-If-Profile: default/linux/hppa/23.0/hppa1.1/split-usr/desktop
Display-If-Profile: default/linux/hppa/23.0/hppa2.0/desktop
Display-If-Profile: default/linux/hppa/23.0/hppa2.0/desktop/*
Display-If-Profile: default/linux/hppa/23.0/hppa2.0/split-usr/desktop
Display-If-Profile: default/linux/loong/23.0/la64v100/lp64d/desktop
Display-If-Profile: default/linux/loong/23.0/la64v100/lp64d/desktop/*
Display-If-Profile:
default/linux/loong/23.0/la64v100/split-usr/lp64d/desktop
Display-If-Profile:
default/linux/loong/23.0/la64v100/split-usr/lp64d/desktop/*
Display-If-Profile: default/linux/ppc/23.0/desktop
Display-If-Profile: default/linux/ppc/23.0/desktop/*
Display-If-Profile: default/linux/ppc/23.0/split-usr/desktop
Display-If-Profile: default/linux/ppc/23.0/split-usr/desktop/*
Display-If-Profile: default/linux/ppc/23.0/time64/desktop
Display-If-Profile: default/linux/ppc/23.0/time64/desktop/*
Display-If-Profile: default/linux/ppc/23.0/time64/split-usr/desktop
Display-If-Profile: default/linux/ppc/23.0/time64/split-usr/desktop/*
Display-If-Profile: default/linux/ppc64/23.0/desktop
Display-If-Profile: default/linux/ppc64/23.0/desktop/*
Display-If-Profile: default/linux/ppc64/23.0/split-usr/desktop
Display-If-Profile: default/linux/ppc64/23.0/split-usr/desktop/*
Display-If-Profile: default/linux/ppc64le/23.0/desktop
Display-If-Profile: default/linux/ppc64le/23.0/desktop/*
Display-If-Profile: default/linux/ppc64le/23.0/split-usr/desktop
Display-If-Profile: default/linux/ppc64le/23.0/split-usr/desktop/*
Display-If-Profile: default/linux/riscv/23.0/rv64/lp64d/desktop
Display-If-Profile: default/linux/riscv/23.0/rv64/lp64d/desktop/*
Display-If-Profile: default/linux/riscv/23.0/rv64/lp64/desktop
Display-If-Profile: default/linux/riscv/23.0/rv64/lp64/desktop/*
Display-If-Profile: default/linux/riscv/23.0/rv64/split-usr/lp64d/desktop
Display-If-Profile: default/linux/riscv/23.0/rv64/split-usr/lp64d/desktop/*
Display-If-Profile: default/linux/sparc/23.0/64ul/desktop
Display-If-Profile: default/linux/sparc/23.0/desktop
Display-If-Profile: default/linux/sparc/23.0/split-usr/64ul/desktop
Display-If-Profile: default/linux/sparc/23.0/split-usr/desktop
Display-If-Profile: default/linux/x86/23.0/i686/desktop
Display-If-Profile: default/linux/x86/23.0/i686/desktop/*
Display-If-Profile: default/linux/x86/23.0/i686/split-usr/desktop
Display-If-Profile: default/linux/x86/23.0/i686/split-usr/desktop/*
Display-If-Profile: default/linux/x86/23.0/i686/time64/desktop
Display-If-Profile: default/linux/x86/23.0/i686/time64/desktop/*
Display-If-Profile: default/linux/x86/23.0/i686/time64/split-usr/desktop
Display-If-Profile: default/linux/x86/23.0/i686/time64/split-usr/desktop/*

Reasons
=======

Gentoo has had a longstanding complaint that desktop profiles do not
enable a suitable working audio setting, which causes confusion for
new users. An example of when this is a user can end up compiling
Firefox without audio support, meaning the user will have to add the
USE flags and then compile Firefox a second time. This not only wastes
time for the user, but also increases support workload by the volunteers
that provides it.

This change will make PipeWire the default sound server for all Gentoo
desktop
profiles which support it, rather than just Plasma profiles as was the
previous norm[1]. PipeWire has been widely adopted by Linux as a whole due
to
its feature to work with older standards such as PulseAudio, and means
Gentoo will be less likely to need users to make any follow-up changes to
their system, related to audio.

Changes
=======

New global USE flags enabled: pulseaudio

Enables PulseAudio support for packages as a fallback when native PipeWire
isn't
available.

New global USE flags enabled: pipewire
New package.use default: media-video/pipewire[sound-server]

These settings will enable PipeWire by default where available and also
tell PipeWire
to act as our PulseAudio server where there is no native PipeWire support.

New global USE flags enabled: screencast

In Wayland sessions, the video functionality of PipeWire is not only used
for
screen sharing but also to take screenshots and recordings or simply to
cast
window content onto task managers' window previews. As this is basically a
free
and beneficial addition as it provides things like screenshotting and webcam
access under Wayland.

Alpha and HPPA
===============

Alpha and HPPA currently do not have PipeWire support enabled so only
PulseAudio is enabled.
These can be requested by users at a later date after confirming they work
with the respected
projects.

Users not Wishing to Change
===========================

For users not wanting to change from the their current desktop profile
setup,
then all that is required is to set USE="-pipewire -pulseaudio -screencast"
in
their make.conf file.

User Action Required
====================

In order to enact all changes:

emerge -1avUD @world

Afterwards all that should be required is a reboot, however in the unlikely
event of issues then check out how to configure PipeWire for your purposes.
[1][2]

In order to keep a previously configured PulseAudio only system:

Set USE="-pipewire -screencast" in /etc/portage/make.conf

For an ALSA only system:
Set USE="-pipewire -pulseaudio -screencast" in /etc/portage/make.conf

[1]
https://www.gentoo.org/support/news-items/2022-07-29-pipewire-sound-server.
html
[2] https://wiki.gentoo.org/wiki/PipeWire

Reply via email to