¿Cómo activo el sonido HDMI automáticamente en Ubuntu?

¡Trabajadores!

Nuestro Movimiento es uno que tiene una única razón de ser: lograr la
Felicidad del Pueblo.

Esto, que responde a los anhelos más puros del pueblo, nosotros decimos
que hemos de lograrlo en primer lugar por medio de una Comunidad
Organizada que dé lugar a esta realización, ya que nadie puede
realizarse en una comunidad que no se realice.

Para ello hemos decidido instrumentar herramientas que nos permitan
lograr esta Comunidad Organizada: la Libertad Económica, la Justicia
Social, y la Soberanía Política. Estas son nuestras tres Banderas, y
cada una depende de las otras. Este entretejido de acción es el sostén
de nuestras Realizaciones.

Los principios son simples y requieren un claro entendimiento de
solidaridad. Pero desde que el hombre es hombre, siempre habrá un vivo
que querrá avanzar por sobre una Comunidad Organizada para desgajarla de
su sentir de Felicidad. Siempre habrá de esos que pretenden perder
soberanía política en pos de mayor libertad económica individual... a
esos debemos formatearles el rígido, y darle un botellazo en la cabeza
si es necesario.

Pues bien señores, por esas cosas de la vida, al conectar el puerto HDMI
de una Laptop a Ubuntu, el sonido no sale automáticamente por el monitor
o televisor externo conectado a través de la salida HDMI del de la
notebook, sino que continúa saliendo por los altavoces de la laptop.
Naturalmente esto puede remediarse "a mano", toqueteando la opción de
Sonido de Ubuntu: haciendo clic en el ícono del "parlante", luego ir a
Configuración de Sonido, y elegir el hardware externo (la TV por
ejemplo).

Pero como no tengo manos, he decidido evitar todo este incordio creando
toda una serie de scripts - a los cuales es tan adepto el sistema GNU
con Linux - para que este cambio se realice de forma automática sin mi
intervención directa, y de esta forma evitar esfuerzos innecesarios. Es
natural: este tiempo ahorrado podremos invertirlo en tareas más
acuciantes como lograr la definitiva liberación del software del Pueblo
Argentino.

La solución ha de realizarse una única vez para que luego opere
autónomamente según la opción: se activará el sonido digital HDMI toda
vez que contemos con este tipo de cable conectado al puerto HDMI de la
notebook, y naturalmente a su vez exista un monitor externo que cuente
con salida de audio (ya que existen monitores con entrada HDMI pero sin
altavoces propios ni conectores de salida de audio integrados). 

Activar audio HDMI automáticamente en Ubuntu

En primer lugar hemos de abrir una terminal de comandos con Ctrl+Alt+t y
crear un fichero de texto, que contendrá las reglas de configuración
específicas para el sistema de audio a través del conector HDMI. Para
ello ingresaríamos el siguiente comando de organización:

echo 'SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/sonido_hdmi"' >> /etc/udev/rules.d/sonido_hdmi.rules

Acto seguido, editamos un guión de programación específico para estas
reglas, al que llamaremos sonido_hdmi, y le daremos asiento en el
directorio /etc/local/bin/. Podremos hacerlo utilizando el editor GNU
Nano si ingresamos:

sudo nano /etc/local/bin/sonido_hdmi

Esto abrirá el editor Nano con un fichero en blanco. Habremos de
pegarleel siguiente código de programación:

#!/bin/sh
## Programa para conmutar automáticamente el sonido HDMI
USER_NAME=`who | grep "(:0)" | cut -f 1 -d ' '| sort -u`
USER_ID=`id -u $USER_NAME`
HDMI_STATUS=`cat /sys/class/drm/card0/*HDMI*/status`

export PULSE_SERVER="unix:/run/user/"$USER_ID"/pulse/native"

if [ $HDMI_STATUS = "connected" ]
then
    sudo -u $USER_NAME pactl --server $PULSE_SERVER set-card-profile 0 output:hdmi-stereo+input:analog-stereo
else
    sudo -u $USER_NAME pactl --server $PULSE_SERVER set-card-profile 0 output:analog-stereo+input:analog-stereo
fi

Una vez hecho esto guardamos los cambios en el fichero con Ctrl+o, y
saldremos del editor Nano de nuevo a la terminal con Ctrl+x. No debemos
olvidar otorgarle a este fichero sonido_hdmi ya asentado los permisos de
ejecución, mediante:

chmod 0755 /usr/local/bin/sonido_hdmi

Finalmente, actualizamos las reglas para que Ubuntu las haga efectiva
(debemos hacer lo mismo si deseamos eliminar reglas):

sudo udevadm control --reload-rules

Una vez reiniciada la netbook, deberíamos poder contar con sonido a
través del dispositivo HDMI si utilizamos tal conector, y utilizar la
salida analógica de parlantes de la notebook si este conector está
desenchufado y sólo estamos usando el monitor de la laptop.

Deshacer los cambios

Si por algún motivo no quisiéramos eliminar y desestimar estas reglas y
volver al procedimiento anterior, deberíamos recurrir a los siguientes
comandos para volver todo a la forma en la que estaba antes:

sudo rm /etc/udev/rules.d/sonido_hdmi.rules ;
sudo rm /usr/local/bin/sonido_hdmi ;
sudo udevadm control --reload-rules