У fluxbox нет стандартного средства контроля и отображения уровня громкости системы. Поэтому, во-первых, нужно средство регулирования, а во-вторых, отображения. У меня рабочий инструмент - ноутбук - снабжён мультимедийными клавишами, среди которых наличествуют "Mute", "Volume+", "Volume-". Поэтому с первой частью уже проще. Задача - привязать кнопки к звуковушке.
Это не сложно: fluxbox предоставляет возможность задать горячие клавиши в файле /home/_user_/.fluxbox/keys.
Добавил вот эти строчки:
bc. # volume settings, using common keycodes
# if these don't work, use xev to find out your real keycodes
123 :Exec amixer -c 0 set Master 3dB+
122 :Exec amixer -c 0 set Master 3dB-
121 :Exec amixer sset Master,0 toggle
Для моего ноута клавиши 123, 122, 121. Для вашего спросите у _xev_
Клавиши привязаны, теперь про визуализацию. Есть такое средство, называющееся xosd_cat, которое входит в состав пакета _xosd_. Эта программулька позволяет отображать текст и полоски прогресса (или как их там) на экране, поверх всего происходящего. Сразу меня заинтересовала возможность вывода горизонтального бара, которому передаётся процент наполнения (естественно, меньший или равный 100).
В общем получился вот такой скриптик:
bc. #! /bin/sh
channel="$1"
pers=$(amixer -c 0 get "$channel" | grep -o -P '[(d{1,3}%)]' | grep -o -P 'd{1,3}')
killall -KILL osd_cat
osd_cat -A center -p middle -d 1 -b percentage -P "$pers"
Переменная _channel_ содержит название ползунка, который я двигаю и, следовательно, уровень громкости которого я хочу отобразить. Переменная _pers_ извлекает информацию об уровне громкости, далее ищет нужное поле о проценте и в конце получает число (от 0 до 100). Дальше убивается уже существующий процесс отрисовки уровня, рисуется новая картина. Для пущей доступности я нарёк этот скрипт как "osd_volume.sh" и скопировал его по назначению /usr/bin/.
Последний штрих - меняю файл /home/_user_/.fluxbox/keys
bc. 123 :Exec amixer -c 0 set Master 3dB+ ; osd_volume.sh Master
122 :Exec amixer -c 0 set Master 3dB- ; osd_volume.sh Master
121 :Exec amixer sset Master,0 toggle
Комментариев нет:
Отправить комментарий