Files
scripts-bash/pulseaudio.sh
2026-03-30 15:48:25 -06:00

41 lines
1.1 KiB
Bash
Executable File

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