Crie um script PipeWire para alternar a saída de áudio ativa.

Para uma pequena alteração de áudio no Debian, use pactlo servidor compatível com PulseAudio do PipeWire. O script abaixo alterna entre duas saídas nomeadas, define a nova saída padrão e move os fluxos de reprodução que já estão abertos. Substitua os nomes dos sinks de exemplo pelos nomes exatos exibidos em sua máquina.

1. Confirme o servidor PipeWire Pulse e encontre suas saídas.

O componente do PipeWire pipewire-pulsefornece um servidor compatível com PulseAudio, permitindo que ferramentas padrão pactlcontrolem suas saídas (saídas de áudio). Verifique a qual servidor seu cliente está se conectando e liste as saídas disponíveis:

pactl info | grep -E 'Server Name|Server Version'
pactl list short sinks

Para este procedimento, o nome do servidor deve mencionar PipeWire. A lista de sinks contém nomes simbólicos, como alsa_output.pci-0000_00_1f.3.analog-stereo. Copie exatamente dois nomes: um para cada saída que você deseja alternar. Esses nomes são específicos para o hardware conectado e o perfil de áudio; não copie nomes do exemplo nem use um índice numérico de sink, que pode mudar durante uma sessão.

Caso pactlesteja faltando, o Debian o fornece em pulseaudio-utils. Instale esse pacote cliente somente se necessário. Se pactl infonão conseguir conectar ou se o servidor de som reportado for diferente, primeiro confirme se o substituto do PulseAudio do PipeWire está em execução na sua sessão de usuário; não instale ou troque de servidores de áudio sem antes verificar.

Terminal Debian exibindo informações do pactl identificando o PipeWire e listando os dispositivos de saída (sinks) com os nomes dos alto-falantes e fones de ouvido.
Copie os nomes simbólicos exatos dos destinos de saída da lista de saída em tempo real antes de preencher o script de alternância.

2. Crie o script de alternância

Crie um diretório de scripts por usuário e abra um novo arquivo:

mkdir -p ~/.local/bin
nano ~/.local/bin/toggle-audio-output

Cole este script, substituindo os valores em `in` SINK_Ae ` SINK_Bout` pelos nomes que você copiou:

#!/usr/bin/env bash
set -euo pipefail

SINK_A='alsa_output.pci-0000_00_1f.3.analog-stereo'
SINK_B='alsa_output.usb-Generic_Headset-00.analog-stereo'

command -v pactl >/dev/null || { echo "pactl is missing" >&2; exit 1; }
server_name=$(pactl info | sed -n 's/^Server Name: //p')
case "$server_name" in
  *PipeWire*) ;;
  *) echo "pactl is not connected to PipeWire's Pulse server" >&2; exit 1 ;;
esac

sinks=$(pactl list short sinks | awk '{print $2}')
for sink in "$SINK_A" "$SINK_B"; do
  if ! grep -Fqx -- "$sink" <<< "$sinks"; then
    printf 'Sink not found: %s\n' "$sink" >&2
    exit 1
  fi
done

current=$(pactl get-default-sink)
if [[ "$current" == "$SINK_A" ]]; then
  target=$SINK_B
else
  target=$SINK_A
fi

pactl set-default-sink "$target"
while IFS= read -r input_id; do
  [[ -n "$input_id" ]] || continue
  pactl move-sink-input "$input_id" "$target"
done < <(pactl list short sink-inputs | awk '{print $1}')
printf 'Default output: %s\n' "$target"

O script verifica se ambas as saídas estão presentes antes de fazer qualquer alteração. Ele escolhe a outra saída configurada quando a saída padrão atual é SINK_A; se a saída padrão atual for outra saída, ele começa com SINK_A. O set-default-sinkcomando afeta novos fluxos, enquanto o loop usa move-sink-inputpara rotear também os fluxos de reprodução existentes. Se você quiser que apenas aplicativos futuros usem a nova saída padrão, remova o whileloop; os fluxos já em reprodução permanecerão onde estão. Execute este script como o mesmo usuário do desktop que possui a sessão do PipeWire. Não use sudo, que pode se conectar por meio de um ambiente de execução de usuário diferente e não controlar o áudio do seu desktop. Essas operações estão documentadas no manual do pactl do Debian .

O editor Nano mostra as duas variáveis ​​de destino no script toggle-audio-output.
Defina cada variável para um dos nomes de destino (sink) relatados pelo pactl nesta sessão do Debian.

3. Salve, execute e verifique a configuração.

Salve o arquivo no Nano com Ctrl+O, pressione Enter, e saia com Ctrl+X. Marque o script como executável e execute-o:

chmod +x ~/.local/bin/toggle-audio-output
~/.local/bin/toggle-audio-output

Deverá imprimir o novo destino padrão. Verifique o destino padrão atual do servidor e quaisquer fluxos de reprodução ativos:

pactl get-default-sink
pactl list short sink-inputs

Execute o script uma segunda vez para retornar à configuração anterior. Para um teste prático de audição, reproduza uma pequena amostra de áudio durante a troca e confirme se o som vem do dispositivo selecionado. Os nomes exatos dos dispositivos e o comportamento de exibição variam de acordo com o hardware, o estado da conexão Bluetooth e os perfis de áudio ativos.

Terminal Debian mostrando o script de alternância selecionando o fone de ouvido USB como saída padrão.
O script informa qual saída nomeada se tornou o novo padrão.
A verificação do terminal mostra que o comando `pactl get-default-sink` retorna o nome do fone de ouvido e um fluxo de reprodução listado.
Confirme o destino padrão e verifique se um fluxo ativo está roteado para a saída selecionada.

Quando o roteiro não alterna o áudio

  • “Dispositivo de saída não encontrado”: ​​execute pactl list short sinksnovamente. Um fone de ouvido desconectado ou um perfil alterado podem ter modificado o nome do dispositivo de saída; atualize a variável correspondente.
  • Não foi possível conectar: ​​verifique se os serviços de usuário do PipeWire estão em execução e se pactl infoidentificam o servidor PipeWire Pulse. O pacote pipewire-pulse do Debian fornece esse servidor substituto, enquanto o pulseaudio-utils inclui o pactlcliente.
  • Se o novo áudio se mover, mas o aplicativo atual não: execute o script novamente enquanto esse fluxo estiver visível pactl list short sink-inputs. Alguns aplicativos reabrem fluxos ou mantêm sua própria seleção de dispositivo; portanto, escolha "Padrão" nesse aplicativo se ele permanecer fixado em uma saída.

A documentação do protocolo Pulse do PipeWire explica por que os clientes de linha de comando do PulseAudio podem controlar o PipeWire quando pipewire-pulseeste é o servidor ativo. Este script utiliza essa camada de compatibilidade; ele não configura perfis de hardware nem garante que um dispositivo desconectado estará disponível.

Deixar um comentário

Crie um script PipeWire para alternar a saída de áudio ativa.

Crie um script PipeWire para alternar a saída de áudio ativa.

Alternar o áudio do Debian entre saídas PipeWire nomeadas com um script pactl que atualiza o sink padrão e redireciona os fluxos já em reprodução.

Restaurar a entrada de microfone do fone de ouvido Bluetooth no Ubuntu 24.04

Restaurar a entrada de microfone do fone de ouvido Bluetooth no Ubuntu 24.04

Para que o microfone do seu fone de ouvido Bluetooth funcione, selecione a entrada correta, use um perfil de áudio mãos-livres e verifique a rota PipeWire do Ubuntu.

Corrigir problema em aplicativos Flatpak que não respeitam temas GTK no Ubuntu 24.04

Corrigir problema em aplicativos Flatpak que não respeitam temas GTK no Ubuntu 24.04

Descubra por que os aplicativos Flatpak podem ignorar os temas GTK do Ubuntu 24.04 e siga os passos seguros para verificar extensões de tema, atualizar aplicativos Flatpak e diagnosticar problemas no portal.

Como configurar dual boot com Ubuntu 24.04 e Windows 11 com o BitLocker ativado

Como configurar dual boot com Ubuntu 24.04 e Windows 11 com o BitLocker ativado

Instale o Ubuntu 24.04 juntamente com o Windows 11 com BitLocker de forma segura. Compare caminhos de unidades separadas e compartilhadas, chaves de recuperação, particionamento e verificações de inicialização.

Como corrigir o problema de drivers da Nvidia que não carregam após uma atualização do kernel no Ubuntu

Como corrigir o problema de drivers da Nvidia que não carregam após uma atualização do kernel no Ubuntu

Diagnosticar falhas nos drivers da NVIDIA após uma atualização do kernel do Ubuntu. Verificar DKMS e Inicialização Segura, recompilar o módulo correspondente, registrar uma chave MOK e verificar a correção.

Como corrigir o problema de desconexão do Wi-Fi após a suspensão no Ubuntu 24.04

Como corrigir o problema de desconexão do Wi-Fi após a suspensão no Ubuntu 24.04

Corrija as quedas de Wi-Fi no Ubuntu 24.04 após a suspensão verificando o NetworkManager, bloqueios de rádio, atualizações, economia de energia e drivers — e verifique novamente a cada retomada da operação.

Corrigir o alto uso de CPU pelo Tracker-Miner-3 no Ubuntu GNOME

Corrigir o alto uso de CPU pelo Tracker-Miner-3 no Ubuntu GNOME

Descubra por que o tracker-miner-fs-3 utiliza muita CPU no Ubuntu GNOME e como verificar a indexação, excluir pastas, atualizar o Ubuntu ou reconstruir o índice de pesquisa com segurança.

Corrigir o erro “Nenhum dispositivo inicializável encontrado” após instalar o Debian em UEFI.

Corrigir o erro “Nenhum dispositivo inicializável encontrado” após instalar o Debian em UEFI.

Corrija o erro de inicialização UEFI do Debian verificando o modo de inicialização, a partição do sistema EFI, os arquivos GRUB e a ordem de inicialização do firmware — sem precisar reinstalar o Debian.

Como configurar backups agendados no Windows 11

Como configurar backups agendados no Windows 11

Descubra como configurar backups agendados no Windows 11 sem esforço. Proteja seus arquivos com o Histórico de Arquivos automatizado e a criação completa de imagens do sistema para sua tranquilidade. Guia passo a passo incluído.

Como corrigir o erro 0x80070020 Arquivo em uso no Windows 11

Como corrigir o erro 0x80070020 Arquivo em uso no Windows 11

Está com dificuldades para resolver o frustrante erro 0x80070020 (arquivo em uso) no Windows 11? Descubra soluções comprovadas, passo a passo, para solucioná-lo rapidamente e fazer com que seu sistema volte a funcionar perfeitamente. Sem necessidade de conhecimentos técnicos!