Фотогалереи

Услуги

Помощь при использовании сайта

Отображение уровня системной громкости через 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 системный монитор сам перезапустится уже с отображением громкости.

5
5 votes
Ваша оценка: Нет


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
Аватар пользователя measles

Скрин хоть выложи, как выглядит.

Аватар пользователя admin

Завтра выложу. Но принцип один можешь посмотреть http://syslinux.ru/node/1330

Просто в верхней строчке будут еще и показания громкости. На компе этого нет -- на нетбуке только

Аватар пользователя anonymous

Молодец!
Спасибо тебе большое. Уже применил твой совет, преобразовав его в это:

Работает, у меня 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}

Соответственно, изображение:

Аватар пользователя anonymous

А зачем дрочево с .sh если можно указать команду прямо после exec? да и проще так: amixer get Master -M | grep -oE "[[:digit:]]*%"

только что так что так оба канала показывают, что излишне ессно в 99% случаев

Аватар пользователя admin

Посмотри дату поста и прочитай текст поста