grayich |
|
Темы:
216
Сообщения:
1984
Участник с: 08 января 2009
|
openbox,lxde уровень громкости меняется медиакнопками через amixer какие программы существуют для отображения уровня громкости в стиле OSD ? |
yizoid |
|
Темы:
0
Сообщения:
61
Участник с: 29 декабря 2011
|
volti Там в настройках есть галка показывать всплывающие уведомления. |
grayich |
|
Темы:
216
Сообщения:
1984
Участник с: 08 января 2009
|
volti это полный волум контрол, меня же интересует только индикация к тому-же он много ресурсов потребляет.. питон же |
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
Можно использовать xfce4-volumed плюс какой нибудь osd Или использовать скрипты плюс osd, например скрипт на клавишу звук + #!/bin/bash #прибавляем громкость amixer -q set Master 10+ unmute #прибиваем предыдущее OSD, измените на свое killall /usr/lib/notify-osd-customizable/notify-osd #Далее идет скрипт индикации состояния звука, взятый где то на просторах сети #DESKTOP=:0 # need for notifications run 'over' display mixer_state=$(amixer get Master | awk '$1=="Mono:" {print $6}') x=$(amixer get Master | sed -rn "/[^[]+\[/{s///;s/%.+//p;q}") z=$[x/10]; y='◼◼◼◼◼◼◼◼◼◼' zz=$[10-z];yy='◻◻◻◻◻◻◻◻◻◻' # get current screen resoultion curres=$(xdpyinfo | grep dimensions | awk '{print $2}') # calculate current max x curmx=$(echo $curres | sed 's/x.*$//') # calculate current max y curmy=$(echo $curres | sed 's/^.*x//') poffset=0 notify_title="Volume" case $x in 0*|?|1?) notify_icon="notification-audio-volume-off";; 2?|3?|4?) notify_icon="notification-audio-volume-low";; 5?|6?|7?) notify_icon="notification-audio-volume-medium";; 8?|9?|100) notify_icon="notification-audio-volume-high";; esac if [ $mixer_state == "[off]" ];then notify_icon="notification-audio-volume-muted" notify_title="$notify_title muted" fi notify-send -i $notify_icon -t 1500 -u low -h int:x:$[$curmx-$poffset] -h \ int:y:$[$curmy-$poffset] "$notify_title" "${y::z}${yy::zz} $x%" |
grayich |
|
Темы:
216
Сообщения:
1984
Участник с: 08 января 2009
|
notify-osd получается, он разве не должен демоном работать? |
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
grayichработает демоном, но если не прибить то новое окно появляется только когда отработает предыдущее. Как изменять вывод в открытом уведомлении notify я к сожалению не знаю |
Koluchka |
|
Темы:
2
Сообщения:
151
Участник с: 15 октября 2011
|
Я пользуюсь таким вот скриптом, стыренным где-то на просторах сети, для amixer и notify-osd:#!/bin/sh # created by abarilla usage="usage: $0 -c {up|down|mute} [-i increment] [-m mixer]" command= increment=5% mixer=Master while getopts i:m:h o do case "$o" in i) increment=$OPTARG;; m) mixer=$OPTARG;; h) echo "$usage"; exit 0;; ?) echo "$usage"; exit 0;; esac done shift $(($OPTIND - 1)) command=$1 if [ "$command" = "" ]; then echo "usage: $0 {up|down|mute} [increment]" exit 0; fi display_volume=0 if [ "$command" = "up" ]; then display_volume=$(amixer set $mixer $increment+ unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1) fi if [ "$command" = "down" ]; then display_volume=$(amixer set $mixer $increment- unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1) fi icon_name="" if [ "$command" = "mute" ]; then if amixer get Master | grep "\[on\]"; then display_volume=0 icon_name="notification-audio-volume-muted" amixer set $mixer mute else display_volume=$(amixer set $mixer unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1) fi fi if [ "$icon_name" = "" ]; then if [ "$display_volume" = "0" ]; then icon_name="notification-audio-volume-off" else if [ "$display_volume" -lt "33" ]; then icon_name="notification-audio-volume-low" else if [ "$display_volume" -lt "67" ]; then icon_name="notification-audio-volume-medium" else icon_name="notification-audio-volume-high" fi fi fi fi notify-send " " -i $icon_name -h int:value:$display_volume -h string:synchronous:volume И в опенбоксовом rc.xml вызывается вот так: <keybind key="XF86AudioLowerVolume"> <action name="Execute"> <execute>sh /home/Колючка/scripts/vol.sh down</execute> </action> </keybind> <keybind key="XF86AudioRaiseVolume"> <action name="Execute"> <execute>sh /home/Колючка/scripts/vol.sh up</execute> </action> </keybind> <keybind key="XF86AudioMute"> <action name="Execute"> <execute>sh /home/Колючка/scripts/vol.sh mute</execute> </action> </keybind> Выглядит как-то так: |
VlaoMao |
|
Темы:
15
Сообщения:
306
Участник с: 23 января 2011
|
Ещё есть патченый notify-osd, там окна параллельно отображаются |
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
Колючка О то что надо, спасибо. |
grayich |
|
Темы:
216
Сообщения:
1984
Участник с: 08 января 2009
|
хотелось бы обойтись без демона, но похоже не выйдет.. придётся ставить notify-osd себе я тут накалякал скрипт, посмотрев некоторые скрипты в инете, вывод через утилиту aosd_cat #!/bin/bash retype () { CNT=$1 S=$2 until [ "$CNT" -eq 0 ] do let "CNT=$CNT-1" OSD="${OSD}${S}" done } case $1 in up) PLAYBACK=$(amixer sset Master 1%+ | grep Left: | awk '{print $4}') ;; down) PLAYBACK=$(amixer sset Master 1%- | grep Left: | awk '{print $4}') ;; *) echo "Usage: $0 { volup | voldown}" ;; esac LIMIT=31 let "SPACE=$LIMIT-$PLAYBACK" OSD="[" #■♪♫ retype $PLAYBACK "■" retype $SPACE " " OSD="${OSD}]" killall aosd_cat > /dev/null 2>&1 echo "$OSD" | aosd_cat -p 7 -y -180 -x -50 -e 15 -n "Monospace Bold 24" -R green -S black -f 0 /dev/null 2>&1& exit 0 цикл наверно можно заменить на форматированный вывод printf или awk, но не знаю как. у скрипта есть 1 приличный недостаток, если зажать кнопку, то срипты-процессы плодятся как блохи и не успевают киляться, может кто подскажет как это победить? впрочем даже через notify-osd при зажатии клавиши тормозит :/ |