Sexi-i3/manager/scripts/volume

36 lines
1.6 KiB
Plaintext
Raw Permalink Normal View History

2025-03-16 21:22:11 +03:00
#!/bin/bash
# Максимальный уровень громкости (в процентах)
MAX_VOLUME=200
# Уникальный идентификатор для уведомления
NOTIFICATION_ID=9999
# Получаем текущий уровень громкости
CURRENT_VOLUME=$(pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+%' | head -1 | tr -d '%')
# Проверяем переданный параметр
if [ "$1" == "+" ]; then
# Если параметр "+", увеличиваем громкость
if [ "$CURRENT_VOLUME" -lt "$MAX_VOLUME" ]; then
pactl set-sink-volume @DEFAULT_SINK@ +10%
else
# Если громкость уже на максимуме, выводим уведомление
notify-send -u normal -r $NOTIFICATION_ID "Невозможно увеличить звук" "Достигнут лимит в $MAX_VOLUME%"
exit 0
fi
elif [ "$1" == "-" ]; then
# Если параметр "-", уменьшаем громкость
pactl set-sink-volume @DEFAULT_SINK@ -10%
else
# Если параметр некорректный, выводим сообщение об ошибке
notify-send -u normal -r $NOTIFICATION_ID "Error" "Invalid parameter. Use '+' or '-'."
exit 1
fi
# Получаем обновленный уровень громкости
UPDATED_VOLUME=$(pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+%' | head -1 | tr -d '%')
# Отправляем уведомление с текущим уровнем громкости
notify-send -u normal -i audio-volume-high -r $NOTIFICATION_ID "Уровень звука" "${UPDATED_VOLUME}%"