32 lines
749 B
Bash
Executable File
32 lines
749 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# Encuentra el primer sink NO suspendido
|
|
ACTIVE_SINK=$(pactl list sinks | awk -v RS='' '/State: RUNNING/ {for (i=1;i<=NF;i++) if ($i ~ /^Name:/) print $i}' | cut -d: -f2 | head -n1)
|
|
|
|
# Si no hay uno en estado RUNNING, usar el que tenga entrada de audio
|
|
if [ -z "$ACTIVE_SINK" ]; then
|
|
ACTIVE_SINK=$(pactl list sink-inputs short | awk '{print $2}' | head -n1)
|
|
fi
|
|
|
|
# Fallback final: usar el default
|
|
if [ -z "$ACTIVE_SINK" ]; then
|
|
ACTIVE_SINK=$(pactl get-default-sink)
|
|
fi
|
|
|
|
# Opciones
|
|
case "$1" in
|
|
up)
|
|
pactl set-sink-volume "$ACTIVE_SINK" +5%
|
|
;;
|
|
down)
|
|
pactl set-sink-volume "$ACTIVE_SINK" -5%
|
|
;;
|
|
toggle)
|
|
pactl set-sink-mute "$ACTIVE_SINK" toggle
|
|
;;
|
|
*)
|
|
echo "Uso: $0 [up|down|toggle]"
|
|
;;
|
|
esac
|
|
|