Eu uso meu laptop com um monitor externo que possui alto-falantes. Quando o monitor é conectado via HDMI, posso alternar (usando a GUI: Configuração do som -> Hardware) entre a saída de áudio normal do laptop e a saída do monitor.
Repito esse procedimento muito tempo e comecei a pensar se posso automatizá-lo ou, de qualquer forma, executá-lo de maneira mais rápida usando o shell.
Minha distribuição é o Ubuntu 12.04 com o gnome 3.
EDITAR:
Tentei usar o pacmd, mas list-sinks me fornece apenas o dispositivo que estou usando atualmente:
pacmd list-sinks | grep name:
name: <alsa_output.pci-0000_00_1b.0.hdmi-stereo>
Após uma mudança da GUI:
pacmd list-sinks | grep name:
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
E se eu tentar mudar, recebo:
pacmd set-default-sink alsa_output.pci-0000_00_1b.0.hdmi-stereo
Welcome to PulseAudio! Use "help" for usage information.
Sink alsa_output.pci-0000_00_1b.0.hdmi-stereo does not exist.
fonte
Escrevi um pequeno applet indicador que permite alternar a saída de som. Nenhum script de shell, mas talvez seja útil para você ou para outros leitores.
https://github.com/lkettenb/sound-output-switcher
fonte
Criei um script muito pequeno baseado nos anteriores, que não apenas alterna o áudio, mas também a saída de vídeo. Ele usa o disper para alternar entre os monitores.
Aqui está o código:
Para mim, é especialmente útil, pois não gosto de clonar as telas. Eu uso um ou outro. Pode ser necessário adaptar os perfis de áudio ao seu sistema específico.
fonte
Você pode usar
pactl
, leia sua página de manual para obter mais informações.fonte
O script python de Lukas ( https://github.com/lkettenb/sound-output-switcher , publicado acima) para implementar um applet de notificador funciona bem. Ele precisa do pacote appindicator. Isso pode ser instalado com
fonte
Você pode tentar este script: https://github.com/giner/helplinux/tree/master/scripts/switch-sound
Testado no Ubuntu 10.04 - 13.04 e Arch Linux
fonte
Como eu disse aqui (provavelmente uma duplicata), uma alternativa ao Sound Switcher Indicator (que requer a adição de um PPA):
Em uma linha
No meu caso foi
hdmi-stereo-extra1+input
o perfil, assim, em uma linha seria:[[ $(pacmd list-cards | grep "active profile" | cut -d " " -f 3-) = "<output:hdmi-stereo-extra1+input:analog-stereo>" ]] && pacmd set-card-profile 0 "output:analog-stereo+input:analog-stereo" || pacmd set-card-profile 0 "output:hdmi-stereo-extra1+input:analog-stereo"
.Você pode usar um atalho personalizado para executá-lo
bash -c
(avisará se houver algum conflito com outro atalho):Além disso, você pode adicionar um
alias
ao seu.bashrc
.Em um script
Fiz algumas alterações com base na resposta @ user829996 (e aqui @ user56655):
fonte
Eu criei o seguinte script python que faz o seguinte:
Atribuí um atalho de teclado ao script e minha vida está feliz agora
fonte