diff --git a/media/video/pipewire/pipewire-launcher.sh b/media/video/pipewire/pipewire-launcher.sh index da84d85a..16a8adb8 100644 --- a/media/video/pipewire/pipewire-launcher.sh +++ b/media/video/pipewire/pipewire-launcher.sh @@ -1,47 +1,22 @@ -#!/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 +#!/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 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 +pkill -u "${USER}" -fx /usr/bin/pipewire 1>/dev/null 2>&1 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 +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 \ No newline at end of file + +[ -f "/usr/share/pipewire/pipewire-pulse.conf" ] && exec /usr/bin/pipewire-pulse & diff --git a/media/video/pipewire/pipewire.desktop b/media/video/pipewire/pipewire.desktop new file mode 100644 index 00000000..0b353d85 --- /dev/null +++ b/media/video/pipewire/pipewire.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Version=1.0 +Name=Pipewire +Comment=Start Pipewire +Exec=/usr/libexec/pipewire-launcher +Terminal=false +Type=Application +X-KDE-autostart-phase=1 diff --git a/media/video/pipewire/ympbuild b/media/video/pipewire/ympbuild index 86fccf68..73e7cf7c 100644 --- a/media/video/pipewire/ympbuild +++ b/media/video/pipewire/ympbuild @@ -8,7 +8,7 @@ email='bayramk@gmail.com' maintainer='bk' license=('GPLv3') source=("https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/$version/pipewire-$version.tar.gz" - "pipewire.initd" + "pipewire.desktop" "pipewire-launcher.sh") depends=(lilv libpulse alsa-lib dbus) makedepends=() @@ -45,19 +45,9 @@ build(){ package(){ ninja -C build install - mkdir -p ${DESTDIR}/usr/libexec \ - ${DESTDIR}/etc/init.d \ - ${DESTDIR}/etc/profile.d \ - ${DESTDIR}/etc/passwd.d - # pipewire launcher from alpine linux (with same modifications) + mkdir -p ${DESTDIR}/usr/libexec ${DESTDIR}/etc/xdg/autostart/ + # pipewire launcher from alpine linux install ../pipewire-launcher.sh ${DESTDIR}/usr/libexec/pipewire-launcher - # pipewire system service - install ../pipewire.initd ${DESTDIR}/etc/init.d/pipewire - # environment variable - echo "export PIPEWIRE_RUNTIME_DIR=/run/pipewire" > ${DESTDIR}/etc/profile.d/pipewire.sh - echo "export PULSE_RUNTIME_PATH=/run/pipewire/pulse" >> ${DESTDIR}/etc/profile.d/pipewire.sh - echo "export PULSE_SERVER=unix:/run/pipewire/pulse/native" >> ${DESTDIR}/etc/profile.d/pipewire.sh - # pipewire user (uid same with audio group) - echo "pipewire:x:29:29::/run/pipewire:/bin/false" > "$DESTDIR"/etc/passwd.d/pipewire + install ../pipewire.desktop ${DESTDIR}/etc/xdg/autostart/ } diff --git a/media/video/wireplumber/wireplumber.desktop b/media/video/wireplumber/wireplumber.desktop deleted file mode 100644 index 08fd58af..00000000 --- a/media/video/wireplumber/wireplumber.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=Wireplumber -Comment=Start Wireplumber -Exec=/usr/bin/wireplumber -Terminal=false -Type=Application -X-KDE-autostart-phase=1 -X-GNOME-HiddenUnderSystemd=true -X-systemd-skip=true diff --git a/media/video/wireplumber/ympbuild b/media/video/wireplumber/ympbuild index eebfdf15..6389d956 100644 --- a/media/video/wireplumber/ympbuild +++ b/media/video/wireplumber/ympbuild @@ -7,12 +7,10 @@ description='Session / policy manager implementation for PipeWire' email='bayramk@gmail.com' maintainer='bk' license=('GPLv3') -source=("https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/$version/$name-$version.tar.gz" - "wireplumber.desktop") +source=("https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/$version/$name-$version.tar.gz") depends=(pipewire) makedepends=() -sha256sums=('ce7b7217d880bed1438e408ea412716a259cb46b09f597bfd652a577dc60185c' - 'SKIP') +sha256sums=('ce7b7217d880bed1438e408ea412716a259cb46b09f597bfd652a577dc60185c') group=(media.video) uses=() arch=('x86_64') @@ -38,8 +36,5 @@ build(){ package(){ ninja -C build install - # install autostart file - mkdir -p $DESTDIR/etc/xdg/autostart - install ../wireplumber.desktop $DESTDIR/etc/xdg/autostart/ }