Отображение уровня системной громкости через Conky
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 системный монитор сам перезапустится уже с отображением громкости.
Скрин хоть выложи, как выглядит.
Завтра выложу. Но принцип один можешь посмотреть http://syslinux.ru/node/1330
Просто в верхней строчке будут еще и показания громкости. На компе этого нет -- на нетбуке только
Молодец!
Спасибо тебе большое. Уже применил твой совет, преобразовав его в это:
Работает, у меня ALSA стоит. Почему-то, правда только в том конфиге, который не включает функции интернета (я разделил так, чтобы можно было переключаться с одного конфига на другой по F5, так обходится без сдвигов, когда выключаю Интернет). Впрочем, и то хорошо!
Использовал в conkyrc:
Громкость: ${font Webdings:size=6}$color${if_match ${exec /opt/get_volume.sh} >=6}g$endif ${if_match ${exec /opt/get_volume.sh} >=12}g$endif ${if_match ${exec /opt/get_volume.sh} >=18}g$endif ${if_match ${exec /opt/get_volume.sh} >=24}g$endif ${if_match ${exec /opt/get_volume.sh} >=30}g$endif ${if_match ${exec /opt/get_volume.sh} >=36}g$endif ${if_match ${exec /opt/get_volume.sh} >=42}g$endif ${if_match ${exec /opt/get_volume.sh} >=48}g$endif ${if_match ${exec /opt/get_volume.sh} >=54}g$endif ${if_match ${exec /opt/get_volume.sh} >=60}g$endif ${if_match ${exec /opt/get_volume.sh} >=66}g$endif ${if_match ${exec /opt/get_volume.sh} >=72}g$endif ${if_match ${exec /opt/get_volume.sh} >=78}g$endif ${if_match ${exec /opt/get_volume.sh} >=84}g$endif ${if_match ${exec /opt/get_volume.sh} >=90}g$endif ${if_match ${exec /opt/get_volume.sh} >=96}g $endif
${image ~/.conkycolors/images/volume_grid.png -p 64,487 -s 193x12}
Соответственно, изображение:
А зачем дрочево с .sh если можно указать команду прямо после exec? да и проще так: amixer get Master -M | grep -oE "[[:digit:]]*%"
только что так что так оба канала показывают, что излишне ессно в 99% случаев
Посмотри дату поста и прочитай текст поста