
Ich habe früher schon einmal eine ähnliche Frage gestellt, aber Kamil Maciorowski hat richtig und klug darauf hingewiesen, dass es sich, wie gepostet, nicht wirklich um das einzelne Problem handelte, das es zu sein schien, sondern um eine Mischung aus drei. Also habe ich das defekte System und die Frage gelöscht. Ich fange mit einer Neuinstallation von Lubuntu, der aktuellen Version, von vorne an. Wenn ich die Bluetooth-Kopfhörer einschalte, wird der Ton automatisch über diese und nicht über die internen Lautsprecher wiedergegeben. Wenn ich die Kopfhörer ausschalte, wird der Ton automatisch über die Lautsprecher wiedergegeben.
Mir wäre es lieber, wenn nie Ton an die Lautsprecher gesendet würde, es sei denn, ich weise die Ausgabe eines bestimmten Befehls explizit an sie an. Wie Pseudocode: aplay /path/fire-alarm.wav -o speakers
und alle anderen Töne würden, falls verfügbar, über die Kopfhörer abgespielt und andernfalls einfach überhaupt nicht.
Wenn es keine direkte Vorgabe für diese Art von Richtlinie gibt, frage ich mich, ob es eine Möglichkeit gibt, das System dazu zu bringen, /dev/null als immer funktionierenden und immer verfügbaren Audio-Senk zu betrachten, der nach den Kopfhörern und vor den internen Lautsprechern an zweiter Stelle steht. Dies sollte in Verbindung mit einem Befehl „Spielen Sie diesen Ton über die Lautsprecher ab“ funktionieren.
Wenn keines von beidem möglich ist, würden Befehle zum Deaktivieren und Aktivieren der Lautsprecher ohne Beeinträchtigung der Kopfhörerfunktion und ohne erneute Anmeldung den Zweck fast genauso gut erfüllen, vorausgesetzt, etwas in der byzantinischen Linux-Soundarchitektur entscheidet nicht spontan: „Oh, Ihre Lautsprecher sind ausgeschaltet, ich werde das für Sie beheben.“
Das ist nicht dasselbe, wie einfach zu sagen, dass Bluetooth-Kopfhörer die Standardeinstellung sein sollten. So ist es jetzt. Wenn ich „Debbie Does Dubai“ sehe und die Kopfhörer außer Reichweite geraten oder der Saft ausgeht oder ich sie einfach mit den Fingern abnehme und versuche, ihre physische Position anzupassen, möchte ich nicht, dass der Ton automatisch verschoben wird und aus den Lautsprechern kommt.
Was ich suche, ist eine Richtlinie, die nichts an die Lautsprecher sendet, sofern ich nicht ausdrücklich anweise, einen bestimmten Stream dorthin zu senden, und dann nur diesen sendet. Oder, wenn das nicht klappt, eine skriptbasierte Möglichkeit zum Deaktivieren und Aktivieren der Lautsprecher ohne erneute Anmeldung.
Antwort1
PULSE_SINK=<sink_name> irgendein Programm
Sie können eine Liste der verfügbaren „Sink_Namen“ hier abrufen:
LANG=C pactl list | grep -A2 'Sink #' | grep Name: | cut -d" " -f2