2025-05-28 18:33:04 +02:00

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