Informação de Configuração
Para a finalidade de que o Wireplumber seja usado pelo Pipewire,
o Wireplumber e o Pipewire precisam ser configurados para iniciar
quando um ambiente de área de trabalho for iniciado.
O Pipewire agora fornece a própria implementação dele de servidor
Pulseaudio, o que causa conflitos de tempo de execução com o
servidor fornecido pelo próprio Pulseaudio. Isso geralmente se
apresenta por aplicativos travando ou com mau funcionamento ao
tentar reproduzir ou gravar áudio e vídeo. Primeiro, evite que o
Pulseaudio inicie a própria implementação dele de servidor
executando os seguintes comandos como o(a) usuário(a)
root
:
rm -vf /etc/xdg/autostart/pulseaudio.desktop &&
rm -vf /etc/xdg/Xwayland-session.d/00-pulseaudio-x11 &&
sed -e '$a autospawn = no' -i /etc/pulse/client.conf
A seguir, crie um conjunto de comandos sequenciais de shell que
iniciará o Wireplumber e o Pipewire, na ordem correta, como o(a)
usuário(a) root
:
cat > /usr/bin/pipewire-launcher.sh << "EOF"
#!/bin/sh
# Begin /usr/bin/pipewire-launcher.sh
# First, kill any previous instances of pipewire, wireplumber, or pipewire-pulse
# that are running. Multiple instances of the daemon can not be run at the same
# time, and this helps prevent possible errors if a user logs out or logs in
# too fast, and restores audio if Pipewire hangs and needs to be reset.
pkill -u ${USER} -fx /usr/bin/pipewire-pulse
pkill -u ${USER} -fx /usr/bin/wireplumber
pkill -u ${USER} -fx /usr/bin/pipewire
# Start Pipewire first.
exec /usr/bin/pipewire &
# Next, we need to wait until pipewire is up before starting wireplumber.
# This prevents a possible race condition where pipewire takes too long
# to start, as some users have run into.
while [ $(pgrep -f /usr/bin/pipewire) = "" ]; do
sleep 1
done
# Start Wireplumber now that Pipewire has been started.
exec /usr/bin/wireplumber &
# Start the Pulseaudio server included with Pipewire.
exec /usr/bin/pipewire-pulse &
# End /usr/bin/pipewire-launcher.sh
EOF
A seguir, torne esse conjunto de comandos sequenciais de shell
executável como o(a) usuário(a) root
:
chmod +x /usr/bin/pipewire-launcher.sh
Finalmente, crie um arquivo de auto iniciação do XDG que
executará /usr/bin/pipewire-launcher.sh
quando um ambiente de área de trabalho for iniciado; como o(a)
usuário(a) root
:
cat > /etc/xdg/autostart/pipewire.desktop << "EOF"
[Desktop Entry]
Version=1.0
Name=Pipewire
Comment=Inicia os processos de segundo plano Pipewire e Wireplumber
Exec=/usr/bin/pipewire-launcher.sh
Terminal=false
Type=Application
EOF
Agora que o Wireplumber está configurado para iniciar quando um
ambiente de área de trabalho for iniciado, é recomendado que você
se deslogue da teu sessão e se logue novamente.