Wireplumber-0.5.8

Introduction à Wireplumber

Le paquet Wireplumber contient un gestionnaire de session et de politique pour Pipewire.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.3.

Informations sur le paquet

Dépendances de Wireplumber

Requises

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

Recommandées

Facultatives

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

Installation de Wireplumber

Installez Wireplumber en exécutant les commandes suivantes :

mkdir build &&
cd    build &&

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

Pour tester les résultats lancez : ninja test.

Maintenant, en tant qu'utilisateur root :

ninja install

Enfin, renommez le répertoire de documentation en un répertoire versionné en tant qu'utilisateur root :

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

Explication des commandes

--buildtype=release : spécifie le type de construction convenant aux versions stables de ce paquet, comme la valeur par défaut produit des binaires non optimisés.

-D system-lua=true : ce paramètre active l'utilisation de la version système de Lua. Supprimez-le si vous n'avez pas installé Lua, mais remarquez que meson téléchargera et installera sa propre version.

Configuration de Wireplumber

Informations sur la configuration

Pour que Wireplumber puisse être utilisé par Pipewire, Wireplumber et Pipewire doivent être configurés pour démarrer quand un environnement de bureau est lancé.

Pipewire fournit maintenant sa propre implémentation d'un serveur Pulseaudio, ce qui cause des conflits à l'exécution avec le serveur fournit par Pulseaudio lui-même. Cela se caractérise par des applications en attente ou qui ne fonctionnent pas bien quand elles essaient de jouer ou d'enregistrer de l'audio ou de la vidéo. Tout d'abord, empêchez Pulseaudio de démarrer sa propre implémentation du serveur en exécutant les commandes suivant en tant qu'utilisateurroot :

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

Ensuite, créez un script shell qui démarrera Wireplumber et Pipewire dans le bon ordre en tant qu'utilisateur 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

Ensuite, rendez ce script shell exécutable en tant qu'utilisateur root :

chmod +x /usr/bin/pipewire-launcher.sh

Enfin, créez un fichier Autostart de XDG qui lancera /usr/bin/pipewire-launcher.sh lorsqu'un environnement de bureau est démarré, en tant qu'utilisateur root :

cat > /etc/xdg/autostart/pipewire.desktop << "EOF"
[Desktop Entry]
Version=1.0
Name=Pipewire
Comment=Starts the Pipewire and Wireplumber daemons
Exec=/usr/bin/pipewire-launcher.sh
Terminal=false
Type=Application
EOF

Maintenant que Wireplumber est configuré pour démarrer quand un environnement de bureau est lancé, il est recommandé que vous vous déconnectiez de votre session et que vous vous reconnectiez.

Contenu

Programmes installés: wireplumber, wpctl et wpexec
Bibliothèques installées: libwireplumber-0.5.so
Répertoires installés: /usr/include/wireplumber-0.5, /usr/lib/wireplumber-0.5, /usr/share/wireplumber et /usr/share/doc/wireplumber-0.5.8

Descriptions courtes

wireplumber

est un gestionnaire de session et de politique pour Pipewire

wpctl

contrôle et demande des informations de Wireplumber

wpexec

exécute des scripts Wireplumber, qui sont souvent écrits en Lua

libwireplumber-0.5.so

contient les fonctions qui permettent aux autres programmes de contrôler Wireplumber