пятница, 30 декабря 2011 г.

Вывод уровня звука в conky


На сайте "Linux для человеков" была выложена статья о выводе уровня громкости в conky. Привожу её полностью.


Отображение уровня системной громкости через Conky
Опубликовано admin в 29 декабря, 2011 - 10:32

    Linux

Conky - это системный монитор который способен выводить любую информацию о состоянии системы в удобном для Вас виде и месте на экране.
С недавних пор conky перестал отображать уровень громкости в строке информации на моем нетбуке. Это не такой важный параметр, но все же решил восстановить справедливость работоспособность чисто из любопытства.

На официальной страничке посвященной conky разработчик пишет, что начиная с версии 1.8.1 весь код связанный с ALSA Mixer будет удален, так как в системах выводящих звук не через ALSA всегда имеется легкий путь получить этот параметр, а там где выводом звука занимается ALSA -- conky выдает неверные показания. Будет ли поддержка ALSA Mixer через переменную $mixer в будущих версиях сказать трудно, такой информации от разработчиков не поступало и я склонен думать, что она и не появится вовсе.
Не все так плохо и по прежнему можно взять уровень системной громкости и отобразить его в conky, просто инструменты нужны другие. Общая схема будет такая:

    Пишем скрипт который будет запрашивать параметры и парсить вывод
    Помещаем скрипт в удобное место
    Conky запускает скрипт и выводит информацию на экран

Теперь детали, код скрипта и прочее.

amixer get Master | awk -F'[]%[]' '/%/ {if ($7 == "off") { print "Master Mute" } else { print $2"%" }}'

Этот код нужно вставить в файл скрипта с расширением .sh расположив его в любом удобном месте, главное чтобы раздел был смонтирован с exec.
В моем случае скрипт с названием get_volume.sh лежит в /opt.
Присвоим скрипту права 744, или 755 если использовать его будут и другие пользователи системы. Теперь добавим код в .conkyrc

Volume: ${color white}${execi 10 /opt/get_volume.sh}

При добавление кода в конфиг conky системный монитор сам перезапустится уже с отображением громкости.

Комментарии:

Выводит значение в виде 38%, если необходим вывод чистого числа, без знака процентов, то надо убрать из строки в скрипте знак %.

Удачных коньков

Комментариев нет:

Отправить комментарий