diff options
Diffstat (limited to 'community/pipewire/pipewire-launcher.sh')
-rw-r--r-- | community/pipewire/pipewire-launcher.sh | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/community/pipewire/pipewire-launcher.sh b/community/pipewire/pipewire-launcher.sh new file mode 100644 index 00000000000..16a8adb800c --- /dev/null +++ b/community/pipewire/pipewire-launcher.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +# 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-media-session 1>/dev/null 2>&1 +pkill -u "${USER}" -fx /usr/bin/wireplumber 1>/dev/null 2>&1 +pkill -u "${USER}" -fx /usr/bin/pipewire 1>/dev/null 2>&1 + +exec /usr/bin/pipewire & + +# wait for pipewire to start before attempting to start related daemons +while [ "$(pgrep -f /usr/bin/pipewire)" = "" ]; do + sleep 1 +done + +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 + +[ -f "/usr/share/pipewire/pipewire-pulse.conf" ] && exec /usr/bin/pipewire-pulse & |