#!/usr/bin/openrc-run depend() { after logind after alsasound } start() { users="$(users)" for user in $users $([ -z "$users" ] && getent passwd | grep -P '1[0-9]{3,5}' | cut -d: -f1); do uid=$(getent passwd "$user" | cut -d: -f3) [ "$uid" \< 1000 ] && continue grp="$(getent group "$user" | cut -d: -f1)" if pgrep -u "$user" session >/dev/null; then func_ran=1 su -s /bin/sh -c "dbus-launch env XDG_RUNTIME_DIR=/run/user/$uid pipewire" $user $grp || eend 1 & sleep 1 && if [ -n "$(command -v wireplumber)" ]; then if ! pgrep wireplumber -u $user; then su -s /bin/sh -c "dbus-launch env XDG_RUNTIME_DIR=/run/user/$uid wireplumber" $user $grp || exit 1; fi elif [ -n "$(command -v pipweire-media-session)" ]; then if ! pgrep pipewire-media-session -u $user; then su -s /bin/sh -c "dbus-launch env XDG_RUNTIME_DIR=/run/user/$uid pipewire-media-session" $user $grp || exit 1; fi; fi & sleep 1 && if [ -n "$(command -v pipewire-pulse)" ]; then if ! pgrep pipewire-pulse -u $user; then su -s /bin/sh -c "dbus-launch env XDG_RUNTIME_DIR=/run/user/$uid pipewire-pulse" $user $grp; fi; fi fi done [ -z $func_ran ] && eend 1 }