Saya mencoba membuat laptop saya untuk mengganti audio ke HDMI saat dicolokkan, dan kembali ke analog standar saat dilepas.
Saya membuat aturan udev untuk memicu skrip untuk melakukan peralihan, namun saya mengalami masalah saat menjalankannya:
- Tampaknya sampai saya memilih output Audio HDMI di Pengaturan Suara, itu tidak dikenali sebagai wastafel yang tersedia, juga setelah output Audio HDMI dipilih, output analog tidak lagi terdaftar.
Lihat di bawah ini:
# HDMI plugged in, not selected in Sound settings.
$ pactl list short sinks
5 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
kingamajick@kingamajick-laptop: ~
# HDMI selected in sound settings
$ pactl list short sinks
7 alsa_output.pci-0000_00_1b.0.hdmi-stereo module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
kingamajick@kingamajick-laptop: ~
# HDMI removed
$ pactl list short sinks
9 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
Script yang saya gunakan toggle output adalah sebagai berikut:
#!/bin/bash
HDMI_STATUS=`cat /sys/class/drm/card0/*HDMI*/status`
INPUTS=($(pacmd list-sink-inputs | grep index | awk '{print $2}'))
if [ $HDMI_STATUS = "connected" ]
then
pactl set-default-sink alsa_output.pci-0000_00_1b.0.hdmi-stereo
for i in ${INPUTS[*]}; do pacmd move-sink-input $i alsa_output.pci-0000_00_1b.0.hdmi-stereo &> /dev/null; done
else
pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo
for i in ${INPUTS[*]}; do pacmd move-sink-input $i alsa_output.pci-0000_00_1b.0.analog-stereo &> /dev/null; done-server $PULSE_SERVER set-card-profile 0 output:analog-stereo+input:analog-stereo
fi
Script memberikan kesalahan tentang tidak ada wastafel seperti itu ketika saya memicu sebelum saya memilih HDMI dalam pengaturan suara.