Глобальное включение pipewire.service: # systemctl --global enable pipewire.service Приводит к тому, что он запускается вообще у всех пользователей, включая root. Решение проблемы видится мне в том, чтобы запускать его только у тех пользователей, которые состоят в группе audio. Для этого нужно добавить в pipewire.service в секцию [Unit] строчку: ConditionGroup=audio
(Ответ для Антон Мидюков на комментарий #0) > Глобальное включение pipewire.service: > # systemctl --global enable pipewire.service Зачем --global?
(Ответ для Yuri N. Sedunov на комментарий #1) > (Ответ для Антон Мидюков на комментарий #0) > > Глобальное включение pipewire.service: > > # systemctl --global enable pipewire.service > > Зачем --global? Чтобы у всех пользователей, которые будут созданы в будущем был включен pipewire. А есть какой-то другой способ включить будущим пользователям?
(Ответ для Антон Мидюков на комментарий #2) > (Ответ для Yuri N. Sedunov на комментарий #1) > > (Ответ для Антон Мидюков на комментарий #0) > > > Глобальное включение pipewire.service: > > > # systemctl --global enable pipewire.service > > > > Зачем --global? > > Чтобы у всех пользователей, которые будут созданы в будущем был включен > pipewire. > А есть какой-то другой способ включить будущим пользователям? У системы есть администратор -- включит, если надо. И у юзера gdm, включит если надо, чтоб, например, orca работала. В общем, ты сам напросился нарисовать какой-нибудь развесистый control для pipewire.
(In reply to Антон Мидюков from comment #0) > Глобальное включение pipewire.service: > # systemctl --global enable pipewire.service > > Приводит к тому, что он запускается вообще у всех пользователей, включая > root. > Решение проблемы видится мне в том, чтобы запускать его только у тех > пользователей, которые состоят в группе audio. > Для этого нужно добавить в pipewire.service в секцию [Unit] строчку: > ConditionGroup=audio IMHO, Condition*= лучше вешать на {pipewire,pipewire-pulse,wireplumber}.socket, а не на сервис. Как и включать с --global, если хочется.
(In reply to Антон Мидюков from comment #0) > Глобальное включение pipewire.service: > # systemctl --global enable pipewire.service > > Приводит к тому, что он запускается вообще у всех пользователей, включая > root. > Решение проблемы видится мне в том, чтобы запускать его только у тех > пользователей, которые состоят в группе audio. > Для этого нужно добавить в pipewire.service в секцию [Unit] строчку: > ConditionGroup=audio Не лучше ли ConditionUser=!0? Значение !root взято из юнитов для pulseaudio, но оно не учитывает ситуации, где аккаунтов с uid 0 и разными shadow несколько. Более того, pipewire — это ещё и видео; странно его завязывать на группу audio.
(Ответ для Arseny Maslennikov на комментарий #4) > (In reply to Антон Мидюков from comment #0) > > Глобальное включение pipewire.service: > > # systemctl --global enable pipewire.service > > > > Приводит к тому, что он запускается вообще у всех пользователей, включая > > root. > > Решение проблемы видится мне в том, чтобы запускать его только у тех > > пользователей, которые состоят в группе audio. > > Для этого нужно добавить в pipewire.service в секцию [Unit] строчку: > > ConditionGroup=audio > > IMHO, Condition*= лучше вешать на > {pipewire,pipewire-pulse,wireplumber}.socket, а не на сервис. Как и включать > с --global, если хочется. Действительно, проблема с запуском pipewire там, где не нужно, решается включением сокетов вместо сервисов. Для wireplumber нет сокета, но он не включится без pipewire.service. Спасибо! Я закрываю багу, как notabug.