fork pipewire with dinit support in artix-pipewire-launcher

Fork pipewire 1:1.6.7-1 from Artix world repo with a patched
artix-pipewire-launcher that sets SUPPORT='YES' for dinit.

Previously the launcher treated dinit as unsupported (alongside
openrc), which broke XDG autostart of pipewire.desktop on
dinit-based systems. Users were told to use dinitctl instead.
This patch enables direct XDG autostart on dinit by changing:
  dinit|openrc)  SUPPORT='' ;;
to:
  openrc)  SUPPORT='' ;;
  dinit|runit|s6) SUPPORT='YES' ;;

Add pipewire to packages.yaml so CI picks it up.
This commit is contained in:
2026-07-10 22:17:59 +02:00
parent 46c8c7149f
commit ed813487cb
6 changed files with 702 additions and 7 deletions
+1
View File
@@ -10,6 +10,7 @@ packages:
- antergos-welcome
- antergos-grub-theme
- antergos-live
- pipewire
- calamares
- calamares-branding-antergos-next
- calamares-branding-antergos-next-minimal
@@ -89,18 +89,18 @@ Item {
anchors.fill: parent
slides: [
Dia {
title: qsTr("Welcome to Antergos NeXT")
body: qsTr("A modern Arch Linux experience built on Artix Linux. Rolling release, OpenRC init, and the latest software.")
title: qsTr("Welcome to Antergos NeXT Minimal")
body: qsTr("Arch Linux powered by Artix. Rolling release, dinit init, Xfce desktop, and the latest software.")
footer: qsTr("Choose your preferred desktop environment during setup")
},
Dia {
title: qsTr("Desktop Environments")
body: qsTr("Select from KDE Plasma, GNOME, Xfce, Budgie, Cinnamon, MATE, LXQt, i3, Sway, or Hyprland.")
body: qsTr("Select from KDE Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway, or Hyprland.")
footer: qsTr("A curated selection of the best Linux desktops")
},
Dia {
title: qsTr("Antergos Tools")
body: qsTr("Welcome app for system configuration, Calamares installer with offline and online modes, and full access to Arch Linux repositories and the AUR.")
body: qsTr("Welcome app for system configuration, Calamares installer with offline and online modes, and full access to the AUR.")
footer: qsTr("Everything you need to get started")
},
Dia {
@@ -90,17 +90,17 @@ Item {
slides: [
Dia {
title: qsTr("Welcome to Antergos NeXT")
body: qsTr("A modern Arch Linux experience built on Artix Linux. Rolling release, OpenRC init, and the latest software.")
body: qsTr("Arch Linux powered by Artix. Rolling release, dinit init, and the latest software.")
footer: qsTr("Choose your preferred desktop environment during setup")
},
Dia {
title: qsTr("Desktop Environments")
body: qsTr("Select from KDE Plasma, GNOME, Xfce, Budgie, Cinnamon, MATE, LXQt, i3, Sway, or Hyprland.")
body: qsTr("Select from KDE Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway, or Hyprland.")
footer: qsTr("A curated selection of the best Linux desktops")
},
Dia {
title: qsTr("Antergos Tools")
body: qsTr("Welcome app for system configuration, Calamares installer with offline and online modes, and full access to Arch Linux repositories and the AUR.")
body: qsTr("Welcome app for system configuration, Calamares installer with offline and online modes, and full access to the AUR.")
footer: qsTr("Everything you need to get started")
},
Dia {
+583
View File
@@ -0,0 +1,583 @@
# Maintainer: David Runge <dvzrv@archlinux.org>
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Antergos NeXT: patched artix-pipewire-launcher to support dinit
pkgbase=pipewire
pkgname=(
pipewire
libpipewire
alsa-card-profiles
pipewire-docs
pipewire-libcamera
pipewire-audio
pipewire-alsa
pipewire-ffado
pipewire-jack-client
pipewire-jack
pipewire-pulse
pipewire-roc
gst-plugin-pipewire
pipewire-zeroconf
pipewire-v4l2
pipewire-x11-bell
pipewire-session-manager
pulse-native-provider
)
pkgver=1.6.7
pkgrel=1
epoch=1
pkgdesc="Low-latency audio/video router and processor (Antergos NeXT: dinit support in artix-pipewire-launcher)"
url="https://pipewire.org"
arch=(x86_64)
license=(MIT)
makedepends=(
alsa-lib
avahi
bluez-libs
dbus
doxygen
fftw
git
glib2
glib2-devel
graphviz
gst-plugins-base
jack2
libcamera
libcanberra
libebur128
libfdk-aac
libffado
libfreeaptx
libgcc
liblc3
libldac
libmysofa
libpulse
libsndfile
libstdc++
libusb
libx11
libxfixes
lilv
meson
ncurses
opus
python-docutils
python-packaging
readline
roc-toolkit
rtkit
sbc
sdl2
spandsp
valgrind
webrtc-audio-processing-1
)
checkdepends=(
desktop-file-utils
openal
)
source=(
"git+https://gitlab.freedesktop.org/pipewire/pipewire.git#tag=$pkgver"
systemd.patch
artix-pipewire-launcher
)
b2sums=('SKIP'
'SKIP'
'SKIP')
prepare() {
cd pipewire
patch -Np1 -i ../systemd.patch
}
build() {
local meson_options=(
-D bluez5-codec-lc3plus=disabled
-D bluez5-codec-ldac-dec=disabled
-D docs=enabled
-D jack-devel=true
-D libjack-path=/usr/lib
-D man=enabled
-D rlimits-install=false
-D selinux=disabled
-D session-managers=[]
-D snap=disabled
-D udevrulesdir=/usr/lib/udev/rules.d
-D rlimits-install=false
-D logind-provider=libelogind
)
artix-meson pipewire build "${meson_options[@]}"
meson compile -C build
}
check() {
meson test -C build --print-errorlogs
}
_pick() {
local p="$1" f d; shift
for f; do
d="$srcdir/$p/${f#$pkgdir/}"
mkdir -p "$(dirname "$d")"
mv "$f" "$d"
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
done
}
_pwname=pipewire-0.3
_spaname=spa-0.2
package_pipewire() {
license+=(
# libspa-alsa
LGPL-2.1-or-later
)
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
dbus libdbus-1.so
glib2 libglib-2.0.so
glibc
libgcc
ncurses libncursesw.so
readline libreadline.so
)
optdepends=(
'gst-plugin-pipewire: GStreamer plugin'
'pipewire-alsa: ALSA configuration'
'pipewire-audio: Audio support'
'pipewire-docs: Documentation'
'pipewire-ffado: FireWire support'
'pipewire-jack-client: PipeWire as JACK client'
'pipewire-jack: JACK replacement'
'pipewire-libcamera: Libcamera support'
'pipewire-pulse: PulseAudio replacement'
'pipewire-roc: ROC streaming'
'pipewire-session-manager: Session manager'
'pipewire-v4l2: V4L2 interceptor'
'pipewire-x11-bell: X11 bell'
'pipewire-zeroconf: Zeroconf support'
'realtime-privileges: realtime privileges with rt module'
'rtkit: realtime privileges with rtkit module'
)
meson install -C build --destdir "$pkgdir"
(
cd "$pkgdir"
# Replace copies with symlinks
for _f in pipewire-{aes67,avb,pulse}; do
cmp usr/bin/pipewire usr/bin/$_f
ln -sf pipewire usr/bin/$_f
done
_pick lib usr/include/{$_pwname,$_spaname}
_pick lib usr/lib/$_spaname/libspa.so*
_pick lib usr/lib/lib$_pwname.so*
_pick lib usr/lib/pkgconfig/lib{$_pwname,$_spaname}.pc
_pick acp usr/lib/udev
_pick acp usr/share/alsa-card-profile
_pick docs usr/share/doc
_pick libcamera usr/lib/$_spaname/libcamera
_pick audio usr/bin/pipewire-{aes67,avb}
_pick audio usr/bin/pw-{cat,loopback,mididump,midi2play,midi2record,sysex}
_pick audio usr/bin/pw-{dsd,enc,midi,}play
_pick audio usr/bin/pw-{midi,}record
_pick audio usr/bin/spa-{acp-tool,resample}
_pick audio usr/lib/alsa-lib
_pick audio usr/lib/$_pwname/libpipewire-module-avb.so
_pick audio usr/lib/$_pwname/libpipewire-module-echo-cancel.so
_pick audio usr/lib/$_pwname/libpipewire-module-fallback-sink.so
_pick audio usr/lib/$_pwname/libpipewire-module-filter-chain*.so
_pick audio usr/lib/$_pwname/libpipewire-module-loopback.so
_pick audio usr/lib/$_pwname/libpipewire-module-netjack2*.so
_pick audio usr/lib/$_pwname/libpipewire-module-parametric-equalizer.so
_pick audio usr/lib/$_pwname/libpipewire-module-pipe-tunnel.so
_pick audio usr/lib/$_pwname/libpipewire-module-protocol-simple.so
_pick audio usr/lib/$_pwname/libpipewire-module-rtp-{sap,sink,source}.so
_pick audio usr/lib/$_pwname/libpipewire-module-vban*.so
_pick audio usr/lib/$_spaname/{aec,alsa,audio*,avb,bluez5,filter-graph}
_pick audio usr/share/alsa
_pick audio usr/share/man/man1/pw-{cat,loopback,mididump}.1
_pick audio usr/share/man/man1/spa-{acp-tool,resample}.1
_pick audio usr/share/man/man5/pipewire-filter-chain.conf.5
_pick audio usr/share/man/man7/libpipewire-module-avb.7
_pick audio usr/share/man/man7/libpipewire-module-echo-cancel.7
_pick audio usr/share/man/man7/libpipewire-module-fallback-sink.7
_pick audio usr/share/man/man7/libpipewire-module-filter-chain*.7
_pick audio usr/share/man/man7/libpipewire-module-loopback.7
_pick audio usr/share/man/man7/libpipewire-module-netjack2*.7
_pick audio usr/share/man/man7/libpipewire-module-parametric-equalizer.7
_pick audio usr/share/man/man7/libpipewire-module-pipe-tunnel.7
_pick audio usr/share/man/man7/libpipewire-module-protocol-simple.7
_pick audio usr/share/man/man7/libpipewire-module-rtp-{sap,sink,source}.7
_pick audio usr/share/man/man7/libpipewire-module-vban*.7
_pick audio usr/share/pipewire/filter-chain*
_pick audio usr/share/pipewire/pipewire-{aes67,avb}.conf
_pick audio usr/share/$_spaname/bluez5
_pick ffado usr/lib/$_pwname/libpipewire-module-ffado*.so
_pick ffado usr/share/man/man7/libpipewire-module-ffado-driver.7
_pick jack-client usr/lib/$_pwname/libpipewire-module-jack{-tunnel,dbus-detect}.so
_pick jack-client usr/lib/$_spaname/jack
_pick jack-client usr/share/man/man7/libpipewire-module-jack{-tunnel,dbus-detect}.7
_pick jack usr/bin/pw-jack
_pick jack usr/include/jack
_pick jack usr/lib/libjack*
_pick jack usr/lib/pkgconfig/jack*.pc
_pick jack usr/share/man/man1/pw-jack.1
_pick jack usr/share/man/man5/pipewire-jack.conf.5
_pick jack usr/share/pipewire/jack.conf
_pick pulse usr/bin/pipewire-pulse
_pick pulse usr/lib/$_pwname/libpipewire-module-protocol-pulse.so
_pick pulse usr/lib/$_pwname/libpipewire-module-pulse-tunnel.so
_pick pulse usr/share/glib-2.0/schemas/org.freedesktop.pulseaudio.gschema.xml
_pick pulse usr/share/man/man1/pipewire-pulse.1
_pick pulse usr/share/man/man5/pipewire-pulse.conf.5
_pick pulse usr/share/man/man7/libpipewire-module-{protocol-pulse,pulse-tunnel}.7
_pick pulse usr/share/man/man7/pipewire-pulse*.7
_pick pulse usr/share/pipewire/pipewire-pulse.conf
_pick roc usr/lib/$_pwname/libpipewire-module-roc*.so
_pick roc usr/share/man/man7/libpipewire-module-roc-{sink,source}.7
_pick gst usr/lib/gstreamer-1.0
_pick zeroconf usr/lib/$_pwname/libpipewire-module-{raop,zeroconf}-*.so
_pick zeroconf usr/lib/$_pwname/libpipewire-module-rtp-session.so
_pick zeroconf usr/lib/$_pwname/libpipewire-module-snapcast-discover.so
_pick zeroconf usr/share/man/man7/libpipewire-module-{raop,zeroconf}-*.7
_pick zeroconf usr/share/man/man7/libpipewire-module-rtp-session.7
_pick zeroconf usr/share/man/man7/libpipewire-module-snapcast-discover.7
_pick v4l2 usr/bin/pw-v4l2 usr/lib/$_pwname/v4l2
_pick v4l2 usr/share/man/man1/pw-v4l2.1
_pick x11-bell usr/lib/$_pwname/libpipewire-module-x11-bell.so
_pick x11-bell usr/share/man/man7/libpipewire-module-x11-bell.7
# directories for overrides
mkdir -p etc/pipewire/{client-rt,client,minimal,pipewire}.conf.d
)
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
install -Dm755 $srcdir/artix-pipewire-launcher $pkgdir/usr/bin
}
package_libpipewire() {
pkgdesc+=" - client library"
depends=(
glibc
libgcc
)
provides=(lib$_pwname.so)
mv lib/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_alsa-card-profiles() {
pkgdesc+=" - ALSA card profiles"
license=(LGPL-2.1-or-later)
mv acp/* "$pkgdir"
}
package_pipewire-docs() {
pkgdesc+=" - documentation"
mv docs/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-libcamera() {
pkgdesc+=" - Libcamera support"
depends=(
glibc
libcamera libcamera-base.so libcamera.so
libgcc
libstdc++
pipewire
)
mv libcamera/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-audio() {
pkgdesc+=" - Audio support"
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
"pipewire=$epoch:$pkgver-$pkgrel"
alsa-card-profiles
alsa-lib libasound.so
bluez-libs libbluetooth.so
dbus libdbus-1.so
fftw libfftw3f.so
glib2 libg{lib,object,io}-2.0.so
glibc
libebur128
libfdk-aac libfdk-aac.so
libfreeaptx libfreeaptx.so
libgcc
liblc3 liblc3.so
libldac libldacBT_enc.so
libmysofa libmysofa.so
libsndfile libsndfile.so
libstdc++
libusb libusb-1.0.so
lilv liblilv-0.so
opus libopus.so
sbc libsbc.so
spandsp libspandsp.so
webrtc-audio-processing-1 libwebrtc-audio-processing-1.so
)
provides=(
ladspa-host
lv2-host
)
mv audio/* "$pkgdir"
mkdir -p "$pkgdir/etc/alsa/conf.d"
ln -st "$pkgdir/etc/alsa/conf.d" \
/usr/share/alsa/alsa.conf.d/50-pipewire.conf
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-alsa() {
pkgdesc+=" - ALSA configuration"
depends=(
"pipewire-audio=$epoch:$pkgver-$pkgrel"
"pipewire=$epoch:$pkgver-$pkgrel"
pipewire-session-manager
)
mkdir -p "$pkgdir/etc/alsa/conf.d"
ln -st "$pkgdir/etc/alsa/conf.d" \
/usr/share/alsa/alsa.conf.d/99-pipewire-default.conf
install -Dm644 /dev/null \
"$pkgdir/usr/share/pipewire/media-session.d/with-alsa"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-ffado() {
pkgdesc+=" - FireWire support"
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
"pipewire-audio=$epoch:$pkgver-$pkgrel"
"pipewire=$epoch:$pkgver-$pkgrel"
glibc
libffado libffado.so
)
mv ffado/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-jack-client() {
pkgdesc+=" - PipeWire as JACK client"
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
"pipewire-audio=$epoch:$pkgver-$pkgrel"
"pipewire=$epoch:$pkgver-$pkgrel"
dbus libdbus-1.so
glibc
jack libjack.so
libgcc
)
conflicts=(pipewire-jack)
mv jack-client/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-jack() {
pkgdesc+=" - JACK replacement"
license+=(
# libjackserver
GPL-2.0-only
LGPL-2.1-or-later
)
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
"pipewire-audio=$epoch:$pkgver-$pkgrel"
"pipewire=$epoch:$pkgver-$pkgrel"
glibc
pipewire-session-manager
sh
)
optdepends=(
'jack-example-tools: for official JACK example-clients and tools'
)
conflicts=(
jack
jack2
pipewire-jack-client
)
provides=(
jack
libjack.so
libjacknet.so
libjackserver.so
)
mv jack/* "$pkgdir"
install -Dm644 /dev/null \
"$pkgdir/usr/share/pipewire/media-session.d/with-jack"
# directories for overrides
mkdir -p "$pkgdir/etc/pipewire/jack.conf.d"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-pulse() {
pkgdesc+=" - PulseAudio replacement"
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
"pipewire-audio=$epoch:$pkgver-$pkgrel"
"pipewire=$epoch:$pkgver-$pkgrel"
avahi libavahi-{client,common}.so
dbus libdbus-1.so
dconf
glib2 libg{lib,object,io}-2.0.so
glibc
libgcc
libpulse libpulse.so
pipewire-session-manager
)
provides=(pulse-native-provider)
conflicts=(pulseaudio)
mv pulse/* "$pkgdir"
# directory for overrides
mkdir -p "$pkgdir/etc/pipewire/pipewire-pulse.conf.d"
install -Dm644 /dev/null \
"$pkgdir/usr/share/pipewire/media-session.d/with-pulseaudio"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-roc() {
pkgdesc+=" - ROC streaming support"
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
"pipewire-audio=$epoch:$pkgver-$pkgrel"
"pipewire=$epoch:$pkgver-$pkgrel"
glibc
libgcc
roc-toolkit libroc.so
)
mv roc/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_gst-plugin-pipewire() {
pkgdesc="Multimedia graph framework - pipewire plugin"
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
"pipewire-audio=$epoch:$pkgver-$pkgrel"
"pipewire=$epoch:$pkgver-$pkgrel"
glib2 libg{lib,object}-2.0.so
glibc
gst-plugins-base-libs
gstreamer
libgcc
pipewire-session-manager
)
mv gst/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-zeroconf() {
pkgdesc+=" - Zeroconf support"
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
"pipewire-audio=$epoch:$pkgver-$pkgrel"
"pipewire=$epoch:$pkgver-$pkgrel"
avahi libavahi-{client,common}.so
glibc
libgcc
openssl libcrypto.so
opus libopus.so
)
mv zeroconf/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-v4l2() {
pkgdesc+=" - V4L2 interceptor"
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
"pipewire=$epoch:$pkgver-$pkgrel"
glibc
pipewire-session-manager
sh
)
mv v4l2/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-x11-bell() {
pkgdesc+=" - X11 bell"
depends=(
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
"pipewire-audio=$epoch:$pkgver-$pkgrel"
"pipewire=$epoch:$pkgver-$pkgrel"
glibc
libcanberra libcanberra.so
libx11
libxfixes
)
mv x11-bell/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_pipewire-session-manager() {
pkgdesc="Session manager for PipeWire (default provider)"
license=(CC0-1.0)
depends=(wireplumber)
}
package_pulse-native-provider() {
pkgdesc="PulseAudio sound server (default provider)"
license=(CC0-1.0)
depends=(pipewire-pulse)
}
# vim:set sw=2 sts=-1 et:
+83
View File
@@ -0,0 +1,83 @@
#!/bin/sh
# WARNING: This script assumes being run inside XDG compliant session,
# which means D-Bus session instance is expected to be correctly set up
# prior to this script starting. If that is not true, things may break!
DATE_FORMAT='+%Y-%m-%dT%H:%M:%S%Z'
for init in dinit openrc runit s6; do
[[ -f /sbin/$init-init ]] && case $init in
openrc) SUPPORT='' ;;
dinit|runit|s6) SUPPORT='YES' ;;
esac && break
done
[ $SUPPORT ] || { echo "Unsupported method; use the service manager (rc-service/dinitctl) to control PipeWire."; exit 1; }
startpw() {
# The core daemon which by itself does probably nothing.
echo "[$(date "${DATE_FORMAT}")] Starting PipeWire." 1>>"${ARTIX_PIPEWIRE_LOG}"
echo -n "Starting PipeWire... "
/usr/bin/pipewire 1>>"${ARTIX_PIPEWIRE_LOG}" 2>&1 &
# The so called pipewire-pulse daemon used for PulseAudio compatibility.
# Commenting this out will stop the PA proxying daemon from starting,
# however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using
# clients will still have access to audio and may end up clashing with
# non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon).
echo "[$(date "${DATE_FORMAT}")] Starting PipeWire-Pulse." 1>>"${ARTIX_PIPEWIRE_PULSE_LOG}"
echo -n "PipeWire-Pulse... "
/usr/bin/pipewire -c pipewire-pulse.conf 1>>"${ARTIX_PIPEWIRE_PULSE_LOG}" 2>&1 &
# Hack for bug #822498
sleep 1
# Finally a session manager is required for PipeWire to do anything
echo "[$(date "${DATE_FORMAT}")] Starting WirePlumber." 1>>"${ARTIX_WIREPLUMBER_LOG}"
echo -n "WirePlumber... "
/usr/bin/wireplumber 1>>"${ARTIX_WIREPLUMBER_LOG}" 2>&1 &
echo "done!"
}
restart() {
echo -n "Terminating PipeWire processes... "
pkill -9 -u "${USER}" -x "pipewire|wireplumber" 1>/dev/null 2>&1
pidwait -u "${USER}" -x "pipewire|wireplumber" 2>/dev/null || sleep 1
echo "terminated."
startpw
}
CONF="${XDG_CONFIG_HOME}/artix-pipewire-launcher.conf"
if [ -f "${CONF}" ]; then
. "${CONF}"
else
ARTIX_PIPEWIRE_LOG='/dev/null'
ARTIX_PIPEWIRE_PULSE_LOG='/dev/null'
ARTIX_WIREPLUMBER_LOG='/dev/null'
fi
for L in \
"${ARTIX_PIPEWIRE_LOG}" \
"${ARTIX_PIPEWIRE_PULSE_LOG}" \
"${ARTIX_WIREPLUMBER_LOG}"; do
if [ ! -e "${L}" ]; then
touch "${L}"
fi
done
pwpid=$(pgrep -u "${USER}" -x "pipewire")
wppid=$(pgrep -u "${USER}" -x "wireplumber")
[[ ! -z "$pwpid$wppid" && "${1}" != "restart" ]] && { echo "PipeWire/WirePlumber already running."; exit 0; }
[ -z "${1}" ] && startpw
if [ "${#}" -gt 0 ]; then
if [ "${1}" = 'restart' ]; then
restart
else
echo "Unrecognised argument." >&2
echo "Usage: artix-pipewire-launcher [restart]" >&2
exit 1
fi
fi
+28
View File
@@ -0,0 +1,28 @@
diff --git a/meson_options.txt b/meson_options.txt
index 206d68659..14994734e 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -33,7 +33,7 @@ option('gstreamer-device-provider',
option('libsystemd',
description: 'Enable code that depends on libsystemd',
type: 'feature',
- value: 'auto')
+ value: 'disabled')
option('logind',
description: 'Enable logind integration',
type: 'feature',
@@ -50,7 +50,7 @@ option('systemd-system-service',
option('systemd-user-service',
description: 'Install systemd user service file',
type: 'feature',
- value: 'auto')
+ value: 'disabled')
option('selinux',
description: 'Enable SELinux integration',
type: 'feature',
@@ -394,4 +394,4 @@ option('fftw',
option('onnxruntime',
description: 'Enable code that depends on onnxruntime',
type: 'feature',
- value: 'auto')
+ value: 'disabled')