From 01e4d4a3d0c7a289f62ebf5e0dd3f6737c8823c4 Mon Sep 17 00:00:00 2001
From: John Doe <johndoe@example.com>
Date: Thu, 4 Jun 2026 23:06:27 +0200
Subject: [PATCH 5/6] Add configure-local.sh

---
 configure-local.sh | 84 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100755 configure-local.sh

diff --git a/configure-local.sh b/configure-local.sh
new file mode 100755
index 0000000..2f37ded
--- /dev/null
+++ b/configure-local.sh
@@ -0,0 +1,84 @@
+#!/bin/sh
+
+BASE="$(cd "$(dirname "$0")" && pwd)"
+
+echo "=== PVA Local Configuration Setup ==="
+
+# Create local config directory
+mkdir -p "$BASE/local/.config/pva/conf.d"
+mkdir -p "$BASE/local/.config/pva"
+
+# Copy system-level configs
+echo "Copying system config files..."
+for f in "$BASE/etc/pva/conf.d/"*.conf; do
+	cp -n "$f" "$BASE/local/.config/pva/conf.d/"
+	echo "  $(basename "$f")"
+done
+
+# Copy user-level configs (overrides system defaults)
+echo "Copying user config files..."
+for f in "$BASE/home/user/.config/pva/conf.d/"*.conf; do
+	cp -n "$f" "$BASE/local/.config/pva/conf.d/"
+	echo "  $(basename "$f")"
+done
+
+echo ""
+echo "Config files installed to local/.config/pva/conf.d/"
+
+# --- Fix model path for local setup ---
+echo ""
+echo "=== Vosk Model Path Fix ==="
+echo "Setting model path to local/vosk-model-de-0.21 for local development..."
+cat > "$BASE/local/.config/pva/conf.d/10-model.conf" << 'EOF'
+# Local development override: model is under local/
+vosk:"model","local/vosk-model-de-0.21"
+EOF
+echo "  written to 10-model.conf"
+
+# Fix typo in 01-default.conf (threshold,"150" -> threshold,"150")
+sed -i 's/vosk:"threshold,/"vosk:"threshold",/g; s/^vosk:"threshold",/vosk:"threshold",/' "$BASE/local/.config/pva/conf.d/01-default.conf"
+echo "  fixed threshold typo in 01-default.conf"
+
+# Fix model paths in english-switch alternatives (need local/ prefix)
+echo "  fixing model paths in 10-english-switch.conf"
+sed -i 's|vosk-model-de-0.21|local/vosk-model-de-0.21|g; s|vosk-model-small-en-us-0.15|local/vosk-model-small-en-us-0.15|g' \
+  "$BASE/local/.config/pva/conf.d/10-english-switch.conf"
+echo "  updated model paths in 10-english-switch.conf"
+
+# --- Bluetooth headset setup ---
+echo ""
+echo "=== Bluetooth Headset Setup ==="
+
+BT_SINK=$(pactl list sinks short 2>/dev/null | grep bluez | head -n1 | awk '{print $2}')
+
+if [ -n "$BT_SINK" ]; then
+	echo "Found Bluetooth sink: $BT_SINK"
+	pactl set-default-sink "$BT_SINK" 2>/dev/null && \
+		echo "Set $BT_SINK as default audio sink." || \
+		echo "Failed to set default sink."
+else
+	echo "No Bluetooth headset found connected."
+	echo "Options:"
+	echo "  1. Pair and connect your headset, then re-run this script."
+	echo "  2. Manually set default sink with: pactl set-default-sink <sink_name>"
+	echo "  3. Pass a Bluetooth MAC as argument to configure now:"
+	echo "     $0 00:1F:82:28:93:51"
+	echo ""
+
+	BT_MAC="$1"
+	if [ -n "$BT_MAC" ]; then
+		# Try to find the sink for the given MAC
+		BT_SINK=$(pactl list sinks short 2>/dev/null | grep -i "bluez_sink.$(echo "$BT_MAC" | tr ':' '_')" | head -n1 | awk '{print $2}')
+		if [ -n "$BT_SINK" ]; then
+			echo "Found Bluetooth sink for $BT_MAC: $BT_SINK"
+			pactl set-default-sink "$BT_SINK" 2>/dev/null && \
+				echo "Set $BT_SINK as default audio sink."
+		else
+			echo "No sink found for MAC $BT_MAC. Is the headset connected?"
+		fi
+	fi
+fi
+
+echo ""
+echo "=== Done ==="
+echo "Run ./start-local.sh to start PVA with local configs."
-- 
2.47.3

