#!/usr/bin/env bash STATE="$HOME/.soundboard" [[ -f "$STATE/playing.pids" ]] || exit 0 while read -r PID; do # Check if process exists before sending SIGINT if [[ -n "$PID" ]] && kill -0 "$PID" 2>/dev/null; then kill -INT "$PID" 2>/dev/null || true fi done < "$STATE/playing.pids" # Clear the PID file after attempting to stop everything rm -f "$STATE/playing.pids" echo "All soundboard playback stopped." # 2. Restore default mic BEFORE unloading modules DEFAULT_MIC=$(pactl info | grep "Default Source" | awk '{print $3}') if [[ -n "$DEFAULT_MIC" ]]; then pactl set-default-source "$DEFAULT_MIC" fi # 3. Unload all soundboard modules safely for f in "$STATE"/*.id; do pactl unload-module "$(cat "$f")" 2>/dev/null || true rm -f "$f" done echo "Soundboard stopped."