Все об Arch Linux

Arch Linux будет тем, что вы из него сделаете!

PipeWire и KDE: почему Plasma не перевести на PulseAudio

Вернуть Plasma на PulseAudio нельзя — ну, точнее, можно, но звука в плазме от этого не прибавится. Апплет громкости и раздел «Звук» в настройках системы общаются с сервером по PulseAudio-API, и в Arch этот API закрывает пакет pipewire-pulse, а вовсе не демон pulseaudio. Конфликт возникает не внутри Plasma, а на уровне пакетов: поставить pulseaudio поверх pipewire-pulse нельзя, а убрать pipewire-pulse — значит оставить апплет громкости вообще без устройств.

Что именно мешает вернуть PulseAudio?

Коротко: Plasma не зависит от PulseAudio как такового. Она зависит от протокола, который PulseAudio изображает, и этот протокол даёт PipeWire.

Проверить, кто именно сейчас отвечает на PulseAudio-клиенты, можно одной командой:

pactl info | grep -E 'Server Name|Server Version'

В строке Server Name на системе с PipeWire будет что-то вроде PulseAudio (on PipeWire 1.2.7). Это значит, что PulseAudio-протокол обслуживает PipeWire, а не отдельный демон. Плазме всё равно, кто именно сервер: она говорит на том же языке.

Пакеты, которые за это отвечают, разнесены в Arch так:

  • libpulse — клиентская библиотека, её слинковка нужна plasma-pa и большинству программ.
  • pipewire-pulse — серверная часть: реализация PulseAudio-протокола поверх PipeWire.
  • pulseaudio — старый демон, который конфликтует с pipewire-pulse.

То есть библиотека и сервер — разные вещи. Плазме нужна библиотека, а сервер в Arch давно не PulseAudio.

Почему plasma-pa вообще работает через PulseAudio?

Потому что plasma-pa написан давно и менять протокол никто не торопился. Этот модуль отвечает за:

  • апплет громкости в панели;
  • ползунки и mute на панели;
  • раздел «Звук» в параметрах системы;
  • микшер с громкостью отдельных приложений.

Внутри он использует тот самый PulseAudio-API — тот же, что у pavucontrol, Spotify, Discord и старых игр. Для пользователя разницы нет, пока протокол кто-то обслуживает. До PipeWire этим «кто-то» был демон PulseAudio, сейчас — pipewire-pulse.

Отсюда важный вывод: если pactl и pavucontrol видят звук, то Plasma тоже его увидит. А если не видят — дело не в плазме, а в том, кто держит сервер.

А plasma-desktop правда зависит от PipeWire?

Разберём популярное утверждение из чатов: «plasma-desktop требует pipewire, поэтому на PulseAudio Plasma не заработает».

Это полуправда. У пакета plasma-desktop нет жёсткой зависимости от пакетов pipewire или pipewire-pulse — если её снять, пакетный менеджер не откажется обновляться. Плазме нужны две вещи:

  1. libpulse — чтобы апплет громкости вообще собрался и запустился. Эта библиотека приходит из пакета libpulse, который в Arch выделен из демона pulseaudio именно для таких задач.
  2. Живой PulseAudio-сервер — чтобы plasma-pa увидел список устройств. Вот тут нужен pipewire-pulse.

Собственно говоря, если бы Arch не вынес libpulse в отдельный пакет, установка pulseaudio тащила бы за собой ещё и демон, а он конфликтует с pipewire-pulse. Так что в реальности можно иметь библиотеку PulseAudio и не иметь демона PulseAudio — ровно то, что и нужно плазме.

Вывод: файлы PipeWire плазме не нужны как библиотека. Ей нужен сервер, который говорит на PulseAudio-протоколе, и в Arch это pipewire-pulse.

Что будет, если убрать pipewire-pulse и поставить pulseaudio?

Сначала пакетный менеджер просто откажется:

sudo pacman -S pulseaudio
# conflicting dependencies: pipewire-pulse and pulseaudio are in conflict

pulseaudio помечен как конфликтующий с pipewire-pulse. Обойти это можно --assume-installed или удалением pipewire-pulse вручную, и вот что ты получишь:

  • Плазма без звука. plasma-pa запустится, но список устройств останется пустым, апплет покажет серое громкое имя динамика, а ползунок не будет двигаться. pactl list short sinks вернёт пустоту.
  • Сломанный Bluetooth. У PulseAudio Bluetooth-аудио живёт в отдельном пакете pulseaudio-bluetooth, и в паре с WirePlumber два стека начинают драться за устройство.
  • Проблемы с записью экрана. KWin и портал для записи экрана в Plasma 6 снимают звук через PipeWire-источники, которых у старого демона просто нет.
  • Программы в Flatpak. Они идут с ожиданием pipewire-pulse внутри песочницы и перестают видеть системный сервер.
  • Нет вкладок WirePlumber. Ни маршрутизации устройств, ни политик, ни автопереключения наушников — всё это живёт в PipeWire.

Короче, возврат PulseAudio — это не «поставить пакет», а сознательно разобрать рабочий звуковой стек и собрать заново, хуже.

PulseAudio мёртвая ветка?

Формально у проекта есть редкие релизы: 16.1 вышел в 2020 году, 17.0 — в 2024-м. Но между ними — годы без изменений, и всё это время разработка шла в PipeWire. Arch сделал PipeWire частью группы base ещё в 2021 году, а pulseaudio убрал из стандартной установки.

Против возврата говорит и то, как устроен софт вокруг: Chromium, Electron-приложения, Wayland-композиторы и Flatpak-пакеты давно умеют работать с PipeWire напрямую и рассчитывают, что сервер именно он. Возвращая PulseAudio, ты ставишь себя в позицию, где часть софта работает через совместимость, а часть — нет. Если уж выбирать между устаревшим сервером с совместимостью и актуальным сервером с той же совместимостью поверх, выбор очевиден.

Что делать: проверить и настроить PipeWire

Отказываться от PipeWire не нужно — нужно убедиться, что он работает правильно. Короткий чеклист:

pacman -Q pipewire pipewire-pulse wireplumber libpulse

Все четыре пакета должны стоять. pulseaudio при этом отсутствует либо стоит только как библиотека.

systemctl --user status pipewire pipewire-pulse wireplumber

Три сервиса в статусе active (running). Если pipewire-pulse или wireplumber в состоянии failed, проверь сначала конфликт с остатками старого демона, потом конфиги в /etc/pipewire/.

pactl list short sinks

Список устройств непустой. Если после установки WirePlumber звук пропал, помогает перезапуск:

systemctl --user restart wireplumber

После первой установки стоит один раз пройти мастер WirePlumber (wpctl status покажет текущую раскладку) и убедиться, что нужные устройства попали в правильные профили.

Нет громкости в плазме: что проверить?

Если апплет громкости молчит, сначала проверь, видит ли что-нибудь PulseAudio-слой — именно из него плазма берёт список устройств:

pactl list short sinks

Пустой вывод означает, что проблема в стеке, а не в плазме: сначала чини PipeWire и WirePlumber, потом появится и ползунок. Если WirePlumber только что обновляли, а устройства «пропали» на минуту-другую, это нормальное поведение при перечитывании конфигурации.

Громкость в KDE настраивается штатно: «Параметры системы → Звук». Там есть вывод, вход, уровни, и громкость отдельных потоков в микшере. pavucontrol тебе не нужен — он полезен только там, где плазменного микшера не хватает, например для тонкой работы с профилями устройств.

Если общая логика настроек не помогает, зайдись сразу с маршрутизации: после установки WirePlumber устройства часто уезжают в профиль по умолчанию, и плазме нужен явный выбор.

Частые вопросы

Можно ли просто поставить pulseaudio, не трогая pipewire?

Нет: пакеты объявлены конфликтующими, и pacman остановит установку. Даже если обойти это флагом, ты получишь два звуковых сервера, которые дерутся за один ALSA-интерфейс, и в плазме станет хуже, чем сейчас.

Plasma работает с PipeWire напрямую?

Апплет громкости и раздел «Звук» — нет, они работают через PulseAudio-API. Но KWin, Wayland-приложения, запись экрана и Bluetooth-стек общаются с PipeWire напрямую. Именно поэтому в системе нужны обе прослойки: PipeWire для современного софта и pipewire-pulse для старых клиентов.

Нужен ли мне pavucontrol, если есть System Settings?

Нет. Для громкости, mute и микшера хватает «Параметры системы → Звук». pavucontrol стоит ставить только ради вещей, которых в плазме нет: перенаправления потока на конкретный выход, детальных профилей и модулей PA.

А что с чистым ALSA?

Работает, но приложения, которым нужен микшер, экранный захват или Bluetooth, потребуют ручной настройки. В Arch alsa-utils ставят как запасной вариант для диагностики, а не как основной стек.

Plasma 6 умеет звук иначе?

В Plasma 6 апплет громкости и раздел «Звук» по-прежнему работают через PulseAudio-протокол. Нового бэкенда «звук Plasma» не появилось и не планируется — поддержка PulseAudio-совместимости считается нужной для совместимости с приложениями.

Полезные ресурсы

Заключение

Возврат на PulseAudio в KDE Plasma не даст того, чего ты хочешь: пакеты конфликтуют, а при ручной сборке звука в плазме становится меньше, а не больше. Правильный ход — оставить PipeWire, убедиться, что pipewire-pulse и WirePlumber на месте, а громкость крутить в «Параметры системы → Звук». Если после правок плазма всё ещё молчит, начинай с pactl list short sinks: пустой список означает, что чинить надо стек, а не настройки рабочего окружения.



Не получилось? Поможем настроить

Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Читайте также

Комментарии

Загрузка…

Откроется GitHub: создайте новый issue с вашим комментарием (кнопка «Submit new issue»). После отправки обновите эту страницу — комментарий появится ниже.

Telegram Max