Os exemplos aqui me ajudaram:
Acabei com o seguinte em ~/.config/pulse/default.pa
:
# http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index12h3
# https://wiki.archlinux.org/index.php/PulseAudio/Examples#Simultaneous_HDMI_and_Analog_Output
# remix=no is required, otherwise it will turn 2-channel sound into 4-channel sound and send it to all master channels
load-module module-remap-sink sink_name=headphones remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right sink_properties=device.description=Headphones
load-module module-remap-sink sink_name=speakers remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=rear-left,rear-right channel_map=front-left,front-right sink_properties=device.description=Speakers
# sending output to this goes to both
# replacing "0" with "alsa_output.pci-0000_00_1b.0.analog-surround-40" might work, but this also does
update-sink-proplist 0 device.description="Both"
# this renames the virtual streams, which show up in KMix. It's handy, since KMix can't show more than one sink for master volume in the popup
update-sink-input-proplist 0 media.name="Headphones"
update-sink-input-proplist 1 media.name="Speakers"
Substitua os nomes dos seus dispositivos ( master=...
) conforme necessário.
OBSERVAÇÃO: você deve primeiro copiar /etc/pulse/default.pa
para ~/.config/pulse/default.pa
e depois editá-lo, porque o pulseaudio não lê o arquivo do sistema se o arquivo do usuário existir. Daí em diante você deve mesclar quaisquer alterações do arquivo de todo o sistema para o seu arquivo pessoal. Alternativamente, você poderia apenas editar o arquivo de todo o sistema, mas ele poderia ser substituído por atualizações, o que jogaria todo o seu trabalho fora! (Ou talvez o dpkg lhe pedisse para mesclá-los manualmente, mas e se você não notasse? (Insira a recomendação para etckeeper
aqui.))
Existe também um exemplo aqui:
Mas ele usa os canais auxiliares, o que é mais confuso. Usar remix=no
torna isso desnecessário.
Agora eu não tenho idéia de qual é a sua definição de um kludge, mas você deve ser capaz de usar esses exemplos mais o PA Wiki ou um pouco de googling para você fazer o resto do caminho. Para seus canais extras, o wiki lista isso:
Channel map. A list of comma-separated channel names. The currently defined channel names are: left, right, mono, center, front-left, front-right, front-center, rear-center, rear-left, rear-right, lfe, subwoofer, front-left-of-center, front-right-of-center, side-left, side-right, aux0, aux1 to aux15, top-center, top-front-left, top-front-right, top-front-center, top-rear-left, top-rear-right, top-rear-center, (Default depends on the number of channels and the driver)
A propósito, a ferramenta pacmd
pega exatamente os mesmos comandos que o arquivo default.pa
, para que você possa fazer alterações interativamente e cole os comandos de trabalho em default.pa
, sem pacmd
em cada um. Esteja avisado, você pode ter que fazer algumas coisas de forma ligeiramente diferente, como descarregar alguns módulos primeiro, comparado a fazê-lo em default.pa
, já que o pulseaudio já está em execução. Passei algum tempo puxando o cabelo sobre isso. (:v)