Para alterar o dispositivo de saída de áudio padrão da linha de comando, você pode usar o utilitário de linha de comando pacmd
Pulse Audio.
Eu encontrei a necessidade de fazer da mesma forma hoje, querendo alternar entre fones de ouvido e alto-falantes, ambos conectados em placas de áudio separadas. Aqui está o script de shell que eu escrevi para fazer isso:
#!/usr/bin/env bash
sinks=($(pacmd list-sinks | grep index | \
awk '{ if ($1 == "*") print "1",$3; else print "0",$2 }'))
inputs=($(pacmd list-sink-inputs | grep index | awk '{print $2}'))
[[ ${sinks[0]} = 0 ]] && swap=${sinks[1]} || swap=${sinks[3]}
pacmd set-default-sink $swap &> /dev/null
for i in ${inputs[*]}; do pacmd move-sink-input $i $swap &> /dev/null; done
Notas:
- Isso alterna entre os dois primeiros dispositivos de saída de áudio que o utilitário
pacmd
lista. Se você tiver mais de dois dispositivos de áudio e quiser trocar por um diferente, você precisará substituir a lógica na linha 7 por alguns condicionais. - Basta trocar o dispositivo de coletor padrão não faz nada para os aplicativos atualmente em execução - eles continuarão a saída para o dispositivo anterior. Esse script também move o destino do coletor para todas as entradas existentes. Ou seja, se você executar esse script com músicas sendo reproduzidas em um dispositivo, ele será instantaneamente substituído pelo outro. Se você quiser que os aplicativos existentes continuem no dispositivo anterior, comente a última linha (e a linha 5, se desejar).