Desde el script bash, reproduzca sonido a través de los parlantes internos y, de lo contrario, déjelos efectivamente desactivados

Desde el script bash, reproduzca sonido a través de los parlantes internos y, de lo contrario, déjelos efectivamente desactivados

Publiqué una pregunta similar anteriormente, pero Kamil Maciorowski señaló correcta y sabiamente que, tal como se publicó, en realidad no era el único problema que parecía ser, sino una amalgama de 3. Así que eliminé el sistema roto y la pregunta. Estoy empezando de nuevo con una nueva instalación de Lubuntu, la actual. Fuera de la caja, si enciendo los auriculares bluetooth, el sonido se reproduce a través de ellos y no de los parlantes internos. Si apago los auriculares, el sonido se reproduce automáticamente a través de los altavoces.

Lo que preferiría es que nunca se envíe ningún sonido a los parlantes a menos que les dirija explícitamente la salida de un comando específico. Como pseudocódigo: aplay /path/fire-alarm.wav -o speakersy reproducir todos los demás sonidos a través de los auriculares si están disponibles y, de lo contrario, simplemente no reproducirlos en absoluto.

Si no existe una disposición directa para este tipo de política, me pregunto si hay alguna manera de engañar al sistema para que vea /dev/null como un receptor de audio siempre disponible y en funcionamiento que ocupa el segundo lugar después de los auriculares y adelante. de los altavoces internos. Eso, junto con el comando "reproducir este sonido a través de los altavoces", debería ser suficiente.

Si nada de esto es posible, los comandos para deshabilitar y habilitar los parlantes sin afectar la función de los auriculares y sin volver a iniciar sesión servirían casi igual de bien, siempre que algo en la bizantina arquitectura de sonido de Linux no decida espontáneamente "Oh, tus parlantes están funcionando". apagado, lo arreglaré por ti."

Esto no es lo mismo que decir simplemente que los auriculares bluetooth deberían ser los predeterminados. Así es ahora. Si veo "Debbie Does Dubai" y los auriculares se salen del alcance, o se quedan sin energía, o simplemente los quito tratando de ajustar su posición física, no quiero que el sonido cambie automáticamente para comenzar a salir. de los parlantes.

Lo que busco es una política que no envíe nada a los parlantes a menos que le indique explícitamente que envíe una transmisión particular allí, y luego envíe solo eso, o en su defecto, una forma programable para deshabilitar y habilitar los parlantes sin volver a iniciar sesión.

Respuesta1

PULSE_SINK=<nombre_disipador> algún programa

Puede obtener una lista de los "sink_name" disponibles en:

LANG=C pactl list | grep -A2 'Sink #' | grep Name: | cut -d" " -f2

información relacionada