Понимание asoundrc и вывода hdmi

Понимание asoundrc и вывода hdmi

Я запускаю nixos на lenovo x220t. При запуске он находит аналоговые динамики и показывает только их в alsamixer (или pavucontrol). Однако при подключении к hdmi монитору/телевизору я могу воспроизводить звук через динамики, например, с помощью speaker-test -c 2 -D hw:0,3.

Немного покопавшись в интернете, я пришел к этому сценарию,

pcm.!default{
type plug
slave.pcm "hdmivol"
}

pcm.hdmi-playback{
type hw
card 0
device 3
}

pcm.hdmivol{
type softvol
slave.pcm "hdmi-playback"
control {
    name "Master"
    card 0
 }
}

который, если вызван, ~/.asoundrcбудет воспроизводить звук через мой hdmi tv/monitor. Но чтобы переключить пакет на мой ноутбук, мне нужно переименовать скрипт, выйти из системы и снова войти в систему.

Очевидно, что все работает, но я не понимаю: 1. Почему я могу видеть и использовать все устройства напрямую (например, с помощью теста динамика), но alsamixer и pulseaudio их не «видят»? 2. Может ли кто-нибудь дать некоторое представление о структуре asoundrc. Я не особо продвинулся с руководством, и мне не ясно, почему в этом скрипте три версии устройства ссылаются друг на друга. И я подозреваю, что есть способ указать псевдоним для hw:0,0 и hw:0,3, который позволит мне переключать их без необходимости выходить из системы и входить в нее.

Заранее спасибо.

Связанный контент