Установить максимальный предел увеличения громкости с помощью i3, pactl и bash

Я хотел бы настроить i3WM на установку максимального уровня громкости (скажем, 150%), чтобы случайно не увеличить громкость до какого-то огромного значения. Я сделал bash-скрипт, выполнение которого привязано к ключу volume_up. Все элементы работают нормально по отдельности, но когда я все собираю, что-то не так.

Код сценария Bash:

#!/bin/bash
max_volume_pc=$1
current_volume_pc=$(pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,')
if (($current_volume_pc < $max_volume_pc-10)) ; then
    pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
else
    a=$(($max_volume_pc - $current_volume_pc))
    pactl set-sink-volume @DEFAULT_SINK@ +$a% && $refresh_i3status
fi

привязка в файле конфигурации i3:

bindsym XF86AudioRaiseVolume exec ~/.config/i3/custom_configs/volume_up.sh 150

Что отлично работает:

  • увеличение объема при привязке - это всего лишь одна команда для увеличения громкости с помощью pactl (без сценария bash, просто выполните pactl команда в конфигурационном файле i3 такая же, как и команда в приведенном выше операторе if)
  • выполнение только вышеуказанного сценария bash с терминала
  • выполняет все вместе, но когда current_volume_pc жестко задано некоторым значением

Итак все указывает на проблему с получением текущего значения громкости, когда скрипт выполняется с помощью действия с привязкой к клавишам, но я не знаю, как это исправить. Также нет сообщений об ошибках от i3, и моя ОС - Ubuntu 20.04, если эта информация будет кому-то полезна.Я также пробовал другие способы привязки синтаксиса, но результат всегда один и тот же, и приведенный выше синтаксис кажется мне наиболее логичным.

Я также нашел здесь Reddit с похожим вопросом: https://www.reddit.com/r/i3wm/comments/dens5j/limiting_pulseaudio_max_volume/ , но я не понимаю, что происходит в dikduk файл, и я думаю, что для меня лучше обратиться за помощью в решении моей собственной проблемы, чем копировать и вставлять чье-то решение

1
задан 5 September 2021 в 12:17

0 ответов

Другие вопросы по тегам:

Похожие вопросы: