#!/bin/bash # Obtener el índice del sink actual CURRENT_SINK=$(pactl info | grep 'Default Sink' | awk '{print $3}') # Obtener la lista de sinks disponibles SINKS=($(pactl list short sinks | awk '{print $2}')) # Buscar el índice actual en la lista for i in "${!SINKS[@]}"; do if [[ "${SINKS[$i]}" = "$CURRENT_SINK" ]]; then CURRENT_INDEX=$i break fi done # Calcular el siguiente sink NEXT_INDEX=$(( (CURRENT_INDEX + 1) % ${#SINKS[@]} )) NEXT_SINK=${SINKS[$NEXT_INDEX]} # Cambiar el sink por defecto pactl set-default-sink "$NEXT_SINK" # Mover todas las entradas de audio al nuevo sink for INPUT in $(pactl list short sink-inputs | awk '{print $1}'); do pactl move-sink-input "$INPUT" "$NEXT_SINK" done # Obtener el nombre legible del nuevo sink SINK_DESCRIPTION=$(pactl list sinks | awk -v sink="$NEXT_SINK" ' $0 ~ "Name: "sink { found=1 } found && $0 ~ /Description:/ { print substr($0, index($0,$2)) exit }') # Enviar notificación con swaync notify-send -a "Audio Switcher" -i audio-speakers "Salida de audio cambiada" "$SINK_DESCRIPTION"