Plasma Profile to enable PipeWire, Wayland support

Title: Plasma Profile to enable PipeWire, Wayland support
Author: Andreas Sturmlechner <[email protected]>
Posted: 2023-05-21
Revision: 1
News-Item-Format: 2.0
Display-If-Profile: default/linux/amd64/17.1/desktop/plasma
Display-If-Profile: default/linux/amd64/17.1/desktop/plasma/systemd
Display-If-Profile: default/linux/amd64/17.1/desktop/plasma/systemd/merged-usr
Display-If-Profile: default/linux/amd64/23.0/desktop/plasma
Display-If-Profile: default/linux/amd64/23.0/desktop/plasma/systemd

Reasons
=======

Gentoo's Plasma profile has not had any sound server enabled since the days of 
KDE's own aRts. As the way we output sound has changed dramatically in the years
since - using wireless or often several devices, dynamically connected and 
shared between multiple systems, a modern desktop environment is expected to 
handle this effortlessly by default.

In Wayland sessions, the video functionality of PipeWire is not only used for 
screensharing but also to take screenshots and -recordings or simply to cast 
window content onto task managers' window previews. This is why PipeWire and 
Wayland enablement are happening at the same time.

Plasma Wayland support has come a long way and we consider it stable enough for 
daily use with a lot - if not all - systems, even if some known papercuts 
remain [1]. Therefore it makes sense for Plasma profile to provide sane default 
settings.


Changes
=======

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

We want broad sound server support in packages, and these settings will make
PipeWire act as our PulseAudio server where there is no native PipeWire support.


Impact On Happy X Users
=======================

Minor. Most dependencies were already required with kde-plasma/plasma-desktop 
and its dependencies. Upcoming stable versions of kde-apps/spectacle and 
kde-apps/krfb will depend on (K)PipeWire unconditionally.

No one will lose their X session, but will have the option to easily log in to 
a working Wayland session at any time.

It is possible to set USE="-wayland" against these changes, but it will amount 
to no dependency savings, just micro-optimisation in affected packages.


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

In order to enact all changes:

    emerge -1avUD @world
    Check out how to configure PipeWire for your purpose [2][3]

In order to keep a PulseAudio or ALSA-only setup:

    Invert above new USE flag settings as needed, see also [2].

In order to avoid media-video/pipewire completely:

    This can only be achieved by losing basic task manager, screenshot/screen
    recording/sharing functions as provided by Plasma and KDE applications.


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