Files
binary-repo/media/video/pipewire/pipewire-launcher.sh
T
2024-09-29 20:16:26 +00:00

47 lines
1.3 KiB
Bash

#!/bin/bash
export PIPEWIRE_RUNTIME_DIR=/run/pipewire
export XDG_RUNTIME_DIR=/run/pipewire
export PULSE_RUNTIME_PATH=/run/pipewire/pulse
umask 002
exec &>~/pipewire.log
# We need to kill any existing pipewire instance to restore sound
pkill -u "${USER}" -fx /usr/bin/pipewire-pulse 1>/dev/null 2>&1
pkill -u "${USER}" -fx /usr/bin/pipewire 1>/dev/null 2>&1
pkill -u "${USER}" -fx /usr/bin/pipewire-media-session 1>/dev/null 2>&1
pkill -u "${USER}" -fx /usr/bin/wireplumber 1>/dev/null 2>&1
dbus=''
if [ -f /usr/bin/dbus-run-session ] ; then
dbus='/usr/bin/dbus-run-session'
fi
exec /usr/bin/pipewire &
if [ -x /usr/bin/wireplumber ]; then
exec /usr/bin/wireplumber &
elif [ -x /usr/bin/pipewire-media-session ]; then
exec /usr/bin/pipewire-media-session &
fi
# wait for pipewire to start before attempting to start related daemons
while [ "$(pgrep -f /usr/bin/pipewire)" = "" ]; do
sleep 1
done
# wait until start pipewire
while ! [ -e /run/pipewire/pipewire-0 ] ; do
sleep 1
done
chgrp audio -R /run/pipewire/
# start pipewire-pulse
if [ -f "/usr/share/pipewire/pipewire-pulse.conf" ] ; then
exec $dbus /usr/bin/pipewire-pulse &
# wait until start pipewire-pulse
while ! [ -e /run/pipewire/pulse/native ] ; do
sleep 1
done
chgrp audio -R /run/pipewire/pulse
chmod 775 /run/pipewire/pulse
fi
wait