Die Skripte schalten den Standard-Audioausgang per Klick zwischen Kopfhörer, Lautsprecher/Boxen und/oder Bluetooth-Headset um – über pactl direkt auf PipeWire-Ebene.
GuideOS mit Cinnamon-Desktop läuft
PipeWire ist aktiv: pactl info | grep „Server Name“ → zeigt „PulseAudio (on PipeWire)“
pactl ist verfügbar (Paket libpulse0 vorhanden)
pactl list short sinks pactl list sinks | grep -E "(Sink #|Ports:|Active Port)"
Beispiel-Ausgabe:
| Sink-ID | Name | Active Port | Verfügbare Ports |
|---|---|---|---|
| 72 | alsa_output.pci-… (Boxen) | analog-output-lineout | analog-output-lineout, analog-output-headphones |
| 74 | alsa_output.usb-Logitech… (Kopfhörer) | analog-output | analog-output |
| 95 | bluez_output… (Bluetooth) | headset-output | headset-output |
mkdir -p ~/.local/bin
Sicherstellen, dass ~/.local/bin im PATH liegt:
echo $PATH | grep ".local/bin"
Falls nicht vorhanden, in ~/.bashrc ergänzen:
export PATH="$HOME/.local/bin:$PATH" source ~/.bashrc
nano ~/.local/bin/01-Headphone.sh
#!/bin/sh sink=74 port=analog-output pactl set-sink-port "$sink" "$port" pactl set-default-sink "$sink"
nano ~/.local/bin/02-Box.sh
#!/bin/sh sink=72 port=analog-output-lineout pactl set-sink-port "$sink" "$port" pactl set-default-sink "$sink"
nano ~/.local/bin/03-Blue.sh
#!/bin/sh sink=$(pactl list short sinks | grep bluez | cut -f1) [ -z "$sink" ] && { echo "Kein Bluetooth-Gerät gefunden"; exit 1; } pactl set-sink-port "$sink" headset-output pactl set-default-sink "$sink"
chmod +x ~/.local/bin/01-Headphone.sh chmod +x ~/.local/bin/02-Box.sh chmod +x ~/.local/bin/03-Blue.sh
Für die Taskleisten-Integration braucht Cinnamon .desktop-Dateien mit Icon und Befehl.
nano ~/.local/share/applications/audio-headphone.desktop
[Desktop Entry] Name=Kopfhörer Comment=Audio auf Kopfhörer umschalten Exec=/home/BENUTZERNAME/.local/bin/01-Headphone.sh Icon=audio-headphones Terminal=false Type=Application Categories=AudioVideo;
nano ~/.local/share/applications/audio-box.desktop
[Desktop Entry] Name=Boxen Comment=Audio auf Boxen umschalten Exec=/home/BENUTZERNAME/.local/bin/02-Box.sh Icon=audio-speakers Terminal=false Type=Application Categories=AudioVideo;
nano ~/.local/share/applications/audio-bluetooth.desktop
[Desktop Entry] Name=Bluetooth Audio Comment=Audio auf Bluetooth umschalten Exec=/home/BENUTZERNAME/.local/bin/03-Blue.sh Icon=audio-headset Terminal=false Type=Application Categories=AudioVideo;
Hinweis: BENUTZERNAME durch deinen echten Linux-Benutzernamen ersetzen (whoami).
Rechtsklick auf die Taskleiste → „Applets“
Applet „Leistenstarter“ suchen → mit „+“ aktivieren
Rechtsklick auf den neuen Leistenstarter in der Taskleiste → „+ Hinzufügen“
Im Dialog:
Name: z.B. Kopfhörer
Befehl: ~/.local/bin/01-Headphone.sh
Icon: Auf das Icon-Feld klicken → Suchbegriff audio-headphones eingeben
Schritte für Boxen (audio-speakers) und Bluetooth (audio-headset) wiederholen
Klick auf das Kopfhörer-Icon in der Taskleiste
Prüfen: pactl get-default-sink (sollte Sink 74 zeigen)
GUI-Kontrolle: pavucontrol → Tab „Ausgabegeräte“
| Problem | Lösung |
|---|---|
| Skript startet nicht | chmod +x erneut ausführen |
| Icon fehlt in Taskleiste | .desktop-Datei nach ~/.local/share/applications/ kopieren, Cinnamon neu starten: cinnamon –replace & |
| Sink-ID nicht gefunden | pactl list short sinks → IDs in Skripten anpassen |
| Bluetooth kein Ton | Erst bluetoothctl connect MAC, dann Skript ausführen |