Sty 232014
 

Najczęściej podłączam laptopa do telewizora, aby coś na nim wyświetlić. Chcę wtedy aby obraz i dźwięk szły po kablu HDMI. O ile z obrazem nie ma problemu większego, bo jest automatycznie przełączany, to dźwięk trzeba ustawić samemu.
Jako, że Linuksy mnie rozleniwiły, wolę by robiło sie to samo. Nie jest to skomplikowane.

Tworzymy wykonywalny plik /usr/local/bin/toggle_hdmi_sound z zawartością:

#!/bin/sh
 
USER=`who | grep " :0 " | cut -f1 -d' '`
HDMI_STATUS=`cat /sys/class/drm/card0/*HDMI*/status`
 
export PULSE_SERVER="`pactl info | grep -oE 'unix:.+'`"
 
if [ $HDMI_STATUS = "connected" ]
then
    su $USER -c"pactl --server $PULSE_SERVER set-card-profile 0 output:hdmi-stereo+input:analog-stereo" 
else
    su $USER -c"pactl --server $PULSE_SERVER set-card-profile 0 output:analog-stereo+input:analog-stereo" 
fi

Następnie tworzymy plik /etc/udev/rules.d/hdmi_sound.rules – regułę udev do uruchamiania powyższego polecenia:

KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0",  RUN+="/usr/local/bin/hdmi_sound_toggle"

Na koniec wystarczy przeładowac reguły udev:

udevadm control --reload-rules

 Posted by at 21:38

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

(required)

(required)