36 lines
1.6 KiB
Plaintext
36 lines
1.6 KiB
Plaintext
![]() |
#!/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}%"
|