#!/bin/bash # Abbrechen bei Fehlern set -e echo "====================================================" echo "🚀 Starte J.A.R.V.I.S. Desktop OS - X11 Openbox Setup" echo "====================================================" # Benutzererkennung REAL_USER="${SUDO_USER:-$(logname 2>/dev/null || whoami)}" REAL_HOME=$(getent passwd "$REAL_USER" | cut -d: -f6) if [ -z "$REAL_USER" ] || [ "$REAL_USER" = "root" ]; then REAL_USER=$(id -nu 1000 2>/dev/null || echo "meik") REAL_HOME=$(getent passwd "$REAL_USER" | cut -d: -f6) fi JARVIS_DIR="$REAL_HOME/jarvis-ai" # 1. System aktualisieren & X11 / Openbox Pakete installieren echo "📦 Installiere X11-Server, Openbox und Automatisierungstools..." sudo apt update sudo apt install -y \ xserver-xorg \ xinit \ x11-xserver-utils \ openbox \ tint2 \ rofi \ xdotool \ wmctrl \ firefox-esr \ curl \ wget \ git \ sudo \ python3 \ python3-pip \ python3-venv \ tilix \ geany \ fonts-noto-color-emoji \ pipewire \ pipewire-audio-client-libraries \ pipewire-pulse \ wireplumber \ alsa-utils \ libasound2-dev \ libportaudio2 \ unzip # 1.1 Gruppenrechte für Audio und Grafik setzen echo "👥 Setze Gruppenrechte für '$REAL_USER'..." sudo usermod -aG video,render,input,audio "$REAL_USER" # 2. Openbox Konfigurationsverzeichnis erstellen echo "⚙️ Konfiguriere Openbox für '$REAL_USER'..." mkdir -p "$REAL_HOME/.config/openbox" # 3. Autostart-Datei für Openbox erstellen cat << EOF > "$REAL_HOME/.config/openbox/autostart" # Tint2 Taskleiste im Hintergrund starten tint2 & # Falls ein Hintergrundbild gewünscht ist (optional, benötigt 'feh'): # feh --bg-scale /pfad/zum/bild.jpg & # J.A.R.V.I.S. Sprachsteuerung (Wakeword-Skript) starten if [ -f "$JARVIS_DIR/wakeword.py" ]; then echo "🎙️ Starte J.A.R.V.I.S. Sprachsteuerung..." >> "$JARVIS_DIR/data/desktop.log" "$JARVIS_DIR/venv/bin/python3" "$JARVIS_DIR/wakeword.py" >> "$JARVIS_DIR/data/wakeword.log" 2>&1 & fi EOF chmod +x "$REAL_HOME/.config/openbox/autostart" # 4. .xinitrc erstellen (ermöglicht den Start via 'startx' aus der Konsole) cat << EOF > "$REAL_HOME/.xinitrc" #!/bin/sh # X11 Umgebungsvariablen setzen falls nötig export QT_QPA_PLATFORM=xcb export GDK_BACKEND=x11 # Openbox Session starten exec openbox-session EOF chmod +x "$REAL_HOME/.xinitrc" # Eigentumsrechte korrigieren chown -R "$REAL_USER:$REAL_USER" "$REAL_HOME/.config" "$REAL_HOME/.xinitrc" # 5. Virtuelle Python-Umgebung einrichten (falls noch nicht geschehen) if [ ! -d "$JARVIS_DIR/venv" ]; then echo "🐍 Richte virtuelles Python-Environment ein..." mkdir -p "$JARVIS_DIR" python3 -m venv "$JARVIS_DIR/venv" "$JARVIS_DIR/venv/bin/pip" install --upgrade pip "$JARVIS_DIR/venv/bin/pip" install -r requirements.txt fi echo "====================================================" echo "✅ X11 Openbox-Umgebung erfolgreich eingerichtet!" echo "👉 Starte die grafische Oberfläche einfach mit dem Befehl: startx" echo "===================================================="