47 lines
1.3 KiB
Bash
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 |