first commit
This commit is contained in:
40
pulseaudio.sh
Executable file
40
pulseaudio.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user