Crea un script de conmutación de salida de PipeWire que mueva el audio activo.

Para un pequeño control de audio en Debian, utilice pactlel servidor compatible con PulseAudio de PipeWire. El script que se muestra a continuación alterna entre dos salidas con nombre, establece la nueva salida predeterminada y mueve las transmisiones de reproducción que ya estén abiertas. Reemplace los nombres de los sumideros de ejemplo con los nombres exactos que aparecen en su máquina.

1. Confirma el servidor PipeWire Pulse y encuentra tus salidas.

El componente de PipeWire pipewire-pulseproporciona un servidor compatible con PulseAudio, por lo que herramientas estándar como pactlpueden controlar sus salidas de audio. Compruebe a qué servidor se conecta su cliente y enumere las salidas disponibles:

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

Para este procedimiento, el nombre del servidor debe mencionar PipeWire. La lista de salidas contiene nombres simbólicos como alsa_output.pci-0000_00_1f.3.analog-stereo. Copie exactamente dos nombres: uno para cada salida que desee alternar. Estos nombres son específicos del hardware conectado y del perfil de audio; no copie los nombres del ejemplo ni utilice un índice numérico de salida, ya que este puede cambiar durante la sesión.

Si pactlfalta, Debian lo proporciona en pulseaudio-utils. Instale ese paquete de cliente solo si es necesario. Si pactl infono puede conectarse o informa de un servidor de sonido diferente, primero confirme que el reemplazo de PulseAudio de PipeWire se está ejecutando en su sesión de usuario; no instale ni cambie servidores de audio a ciegas.

Terminal de Debian mostrando información de pactl que identifica PipeWire y lista de pactl short sinks con nombres de altavoces y auriculares.
Copie los nombres simbólicos exactos de los sumideros de la lista de salida en vivo antes de completar el script de conmutación.

2. Crea el script de alternancia

Cree un directorio de scripts por usuario y abra un nuevo archivo:

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

Pega este script, reemplazando ambos valores en SINK_Ay SINK_Bcon los nombres que copiaste:

#!/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"

El script comprueba que ambas salidas estén presentes antes de cambiar nada. Elige la otra salida configurada cuando el valor predeterminado actual es SINK_A; si el valor predeterminado actual es otro sumidero, comienza con SINK_A. El set-default-sinkcomando afecta a las nuevas transmisiones, mientras que el bucle utiliza move-sink-inputpara enrutar también las transmisiones de reproducción existentes. Si solo quieres que las aplicaciones futuras utilicen el nuevo valor predeterminado, elimina el whilebucle; las transmisiones que ya se estén reproduciendo permanecerán donde están. Ejecuta este script como el mismo usuario de escritorio que ha iniciado sesión y que posee la sesión de PipeWire. No uses sudo, que puede conectarse a través de un entorno de ejecución de usuario diferente y no controlar el audio de tu escritorio. Estas operaciones están documentadas en el manual de pactl de Debian .

Editor Nano que muestra las dos variables de salida en el script toggle-audio-output.
Establezca cada variable en uno de los nombres de sumidero informados por pactl en esta sesión de Debian.

3. Guarda, ejecuta y verifica el cambio.

Guarda en Nano con Ctrl+O, pulsa Enter, y luego sal con Ctrl+X. Marca el script como ejecutable y ejecútalo:

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

Debería imprimir el nuevo sumidero predeterminado. Compruebe el valor predeterminado actual del servidor y cualquier transmisión de reproducción activa:

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

Ejecuta el script una segunda vez para volver al modo anterior. Para una comprobación práctica, reproduce una breve muestra de audio mientras cambias de dispositivo y confirma que proviene del dispositivo seleccionado. Los nombres exactos de los dispositivos y su comportamiento en pantalla varían según el hardware, el estado de la conexión Bluetooth y los perfiles de audio activos.

Terminal de Debian que muestra el script de alternancia seleccionando los auriculares USB como salida predeterminada
El script informa qué salida con nombre se convirtió en la nueva predeterminada.
La verificación de la terminal muestra que pactl get-default-sink devuelve el nombre de los auriculares y una secuencia de reproducción listada.
Confirme el sumidero predeterminado y compruebe que se esté enrutando un flujo activo a la salida seleccionada.

Cuando el guion no cambia el audio

  • No se encontró el receptor: vuelva a ejecutar el comando pactl list short sinks. Es posible que un auricular desconectado o un cambio de perfil hayan modificado el nombre del receptor; actualice la variable correspondiente.
  • No se puede conectar: ​​compruebe que los servicios de usuario de PipeWire estén en ejecución y que pactl infoidentifiquen el servidor PipeWire Pulse. El paquete pipewire-pulse de Debian proporciona ese servidor alternativo, mientras que pulseaudio-utils incluye el pactlcliente.
  • Se mueve un nuevo audio, pero la aplicación actual no: vuelva a ejecutar el script mientras esa transmisión sea visible en pactl list short sink-inputs. Algunas aplicaciones vuelven a abrir transmisiones o mantienen su propia selección de dispositivo, así que elija "Predeterminado" en esa aplicación si permanece anclada a una salida.

La documentación del protocolo Pulse de PipeWire explica por qué los clientes de línea de comandos de PulseAudio pueden controlar PipeWire cuando pipewire-pulseeste actúa como servidor activo. Este script utiliza esa capa de compatibilidad; no configura perfiles de hardware ni garantiza la disponibilidad de un dispositivo desconectado.

Dejar un comentario

Crea un script de conmutación de salida de PipeWire que mueva el audio activo.

Crea un script de conmutación de salida de PipeWire que mueva el audio activo.

Cambia el audio de Debian entre salidas PipeWire con nombre mediante un script pactl que actualiza el receptor predeterminado y redirige las transmisiones que ya se están reproduciendo.

Restaurar la entrada de micrófono de los auriculares Bluetooth en Ubuntu 24.04

Restaurar la entrada de micrófono de los auriculares Bluetooth en Ubuntu 24.04

Para que el micrófono de tus auriculares Bluetooth funcione correctamente, selecciona la entrada adecuada, utiliza un perfil de audio manos libres y comprueba la ruta PipeWire de Ubuntu.

Solucionar el problema de las aplicaciones Flatpak que no respetan los temas GTK en Ubuntu 24.04.

Solucionar el problema de las aplicaciones Flatpak que no respetan los temas GTK en Ubuntu 24.04.

Descubre por qué las aplicaciones Flatpak pueden ignorar los temas GTK de Ubuntu 24.04 y sigue los pasos seguros para comprobar las extensiones de temas, actualizar las aplicaciones Flatpak y diagnosticar problemas del portal.

Cómo instalar Ubuntu 24.04 y Windows 11 en arranque dual con BitLocker habilitado

Cómo instalar Ubuntu 24.04 y Windows 11 en arranque dual con BitLocker habilitado

Instala Ubuntu 24.04 junto con Windows 11 con BitLocker de forma segura. Compara las rutas de disco duro independientes y compartidos, las claves de recuperación, el particionamiento y las comprobaciones de arranque.

Cómo solucionar el problema de los controladores de Nvidia que no se cargan después de una actualización del kernel en Ubuntu.

Cómo solucionar el problema de los controladores de Nvidia que no se cargan después de una actualización del kernel en Ubuntu.

Diagnostica fallos en los controladores NVIDIA tras una actualización del kernel de Ubuntu. Comprueba DKMS y Secure Boot, reconstruye el módulo correspondiente, registra un MOK y verifica la solución.

Cómo solucionar el problema de desconexión de Wi-Fi en Ubuntu 24.04 después de la suspensión.

Cómo solucionar el problema de desconexión de Wi-Fi en Ubuntu 24.04 después de la suspensión.

Solucione los problemas de desconexión Wi-Fi en Ubuntu 24.04 tras la suspensión comprobando el NetworkManager, los bloqueos de radio, las actualizaciones, el ahorro de energía y los controladores; a continuación, verifique cada reanudación.

Solucionar el alto consumo de CPU de Tracker-Miner-3 en Ubuntu GNOME

Solucionar el alto consumo de CPU de Tracker-Miner-3 en Ubuntu GNOME

Descubre por qué tracker-miner-fs-3 consume mucha CPU en Ubuntu GNOME y cómo comprobar la indexación, excluir carpetas, actualizar Ubuntu o reconstruir el índice de búsqueda de forma segura.

Solucionar el error "No se encontró ningún dispositivo de arranque" después de instalar Debian en UEFI.

Solucionar el error "No se encontró ningún dispositivo de arranque" después de instalar Debian en UEFI.

Solucione el error de arranque UEFI de Debian comprobando el modo de arranque, la partición del sistema EFI, los archivos GRUB y el orden de arranque del firmware, sin necesidad de reinstalar Debian previamente.

Cómo usar Windows 11 Media Player para vídeos 4K

Cómo usar Windows 11 Media Player para vídeos 4K

Descubre cómo usar Windows 11 Media Player sin problemas para reproducir videos 4K. Obtén instrucciones paso a paso sobre configuración, optimización y solución de problemas para disfrutar de imágenes nítidas en tu PC.

Cómo solucionar el error de tiempo de ejecución de DirectX en Windows 11

Cómo solucionar el error de tiempo de ejecución de DirectX en Windows 11

¿Tienes problemas con el frustrante error de tiempo de ejecución de DirectX en Windows 11? Descubre soluciones paso a paso para recuperar la fluidez en juegos y aplicaciones. Soluciones rápidas y fiables para una experiencia de PC impecable.