Я как-то создавал тему про будильники, но из того, что я пробовал ничего меня не удовлетворило полностью, потому, как истинный линуксойд, я написал будильник сам, если можно так сказать =).
Обошелся я стандартными средствами: KAlarm и Amarok, впрочем плеер можно использовать любой другой, и еще понадобилась простая софтинка-микшер для управления громкостью - aumix (sudo aptitude install aumix).
Создаем в KAlarm обычное напоминание, в качестве действия выбираем "Команда" и жмем галку "Указать скрипт".
А вот и сам скрипт, с комментариями - сердце будильника. Он проверяет наличие интернета (вдруг упал сцуко), если инет есть, играем плейлист с интернет радио (чтобы мелодия не приедалась), если инета нет играем плейлист с мп3шками из локальных запасов, потом плавно увеличиваем громкость до определенного значения (чтобы не получить инфаркт с утра). Вот и все, что мне от будильника требовалось.
maxvolume=100 # громкость, до которой разгоняемся, в процентах
raisetime=60 # время, за которое достигаем максимальной громкости, в секундах
volume=0 # ставим громкость в ноль
aumix -v $volume
if [ `ping -c 1 ya.ru | head -n 5 | tail -n 1 | awk '{print $4}'` -eq 1 ] # проверяем наличие инета
then amarok -p -l /home/soifong/sounds/alarm_online.m3u &> /dev/null # и запускаем радио
else amarok -p -l /home/soifong/sounds/alarm_offline.m3u &> /dev/null # или мп3шки с харда, команды можно поменять на свои
fi
sleep 5 # подождем, пока запустится плеер
while [ "$volume" -le "$maxvolume" ]
do
volume=`echo "$volume + 1" | bc` # прибавляем по единичке громкости
aumix -v $volume
sleep `echo "scale=3; $raisetime / $maxvolume" | bc` # плавно
done
Приятного просыпания ;)
Комментарии (4)
Главное, найти радио, которое всегда работает. Например, last.fm через lastfmproxy.
По теме программ-будильников вы можете так же глянуть следующие статьи:
Программа-будильник
Будильник с помощью amarok + cron
>>volume=`echo "$volume + 1" | bc`
имхо проще написать так: volume = $((volume+1))
Я про такое не знал, учту ) правда такой синтаксис работает только с целыми числами.
А еще правильнее "awk '{print $4}'" заменить на "cut -d ' ' -f 4" )
Отправить комментарий