Wireplumber-0.5.8

Introdução ao Wireplumber

O pacote Wireplumber contém um gerenciador de sessões e políticas para Pipewire.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

Dependências do Wireplumber

Exigidas

elogind-255.17, GLib-2.82.5 e, pipewire-1.2.7

Recomendadas

Opcionais

Doxygen-1.13.2, lxml-5.3.1, sphinx-8.2.1, sphinx_rtd_theme-3.0.2 e Breathe

Instalação do Wireplumber

Instale Wireplumber executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -D system-lua=true .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Por fim, renomeie o diretório de documentação para um diretório versionado como o(a) usuário(a) root:

mv -v /usr/share/doc/wireplumber{,-0.5.8}

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D system-lua=true: Essa chave habilita usar a versão do sistema de Lua. Omita essa chave se você não tiver instalado Lua, mas observe que meson baixará e instalará a própria versão dele.

Configurando Wireplumber

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.

Conteúdo

Aplicativos Instalados: wireplumber, wpctl e wpexec
Bibliotecas Instaladas: libwireplumber-0.5.so
Diretórios Instalados: /usr/include/wireplumber-0.5, /usr/lib/wireplumber-0.5, /usr/share/wireplumber e /usr/share/doc/wireplumber-0.5.8

Descrições Curtas

wireplumber

é um gerenciador de sessões e políticas para o Pipewire

wpctl

controla e consulta informações originárias do Wireplumber

wpexec

executa conjuntos de comandos sequenciais do Wireplumber, que geralmente são escritos em Lua

libwireplumber-0.5.so

contém funções que permitem que outros programas controlem o Wireplumber