Будильник из подручного *NIX-box’а

unix linux как будильникВсем трудно встающим по утрам посвящается (вольный перевод отсюда). Это, пожалуй одно из простых и эффективных использований подручных shell скриптов в повседневной жизни. Дано: компьютер с установленным unix (linux), звуковой картой и колонками, bash (думаю, под другие shell адаптировать скрипт будет довольно просто).

Итак, создаём скрипт wakeup.sh в домашнем каталоге:

#!/bin/bash

echo "Запускаемся..."

mpg123 /путь/к/хорошей/музыке/* &

for (( i = 1; i <= 100; i++ )) do
echo "Устанавливаем громкость в $i"
setmixer vol $i
echo "Ждём 10 секунд..."
sleep 10s
done

Простенько и со вкусом. Запускается плеер и каждые 10 секунд увеличивается громкость. Добавляем запись в ваш crontab:

0 11 * * * /home/foobar/wakeup.sh

если хотите побудку в 11 утра.

Если есть проблемы с подбором музыки – рекомендуется Enya, хорошо подходящая для этой цели. Эксперименты с тяжёлой музыкой показали, что её хочется просто выключить и спать дальше. Мягкое пробуждение всё же лучше.

Можно ещё придумать функцию “snooze” – требовать от пользователя ввода какого-нибудь осмысленного кода для остановки процесса побудки.

А ещё можно хвастаться, что у меня дома, мол, самый дорогой будильник!

Будильник из подручного *NIX-box’а: 18 комментариев

  1. что-то не получается 🙁 музыка воспроизводится, а вот громкость не меняется…
    wakeup.sh: 7: Syntax error: Bad for loop variable

    я чего-то не понял или сделал не так?

    • Можно и at. Это если разово. А если каждый день? Крон тем и хорош, что можно поставить разное время для выходных и для трудовых будней 🙂

  2. хм… а я решил проблему проше

    ogg123 bell.ogg в кроне каждые 5 минут.

    правда есть опасность встать и выключить звук вообще.

    эххх… вот если бы были комповые колоночки управляющиеся ремотно с него-же… да ещё и программно… да ещё и из шелла…

    тогда твоё решение было бы действительно удобным.

    • Я вот всё вынашиваю коварные планы сделать IR-управление колонками с компьютера – чтобы можно было под музыку засыпать, а потом чтобы комп по крону выключал колонки.

      • А вот это уже интересно =)
        Максимум чего я добился – управление mpd через bluetooth.
        хотелось бы посмотреть на другие способы реализации =)

  3. Засунуть плеер в крон или at – это все само собой разумеется.
    Но я привык на ночь закрывать крышку ноута (sleep), как бы под Линухом разбудить комп из sleep? Под виндой с этим проблем нет – есть как готовый софт так и нужные функции в kernel32.dll

  4. Решил немного модернизировать 😉 вот что получилось

    #!/bin/bash

    amarok > /dev/null 2>&1

    setmixer vol 1

    dcop amarok player play
    MSG=`dcop amarok player nowPlaying`
    echo “Играет: $MSG”

    for ((a = 1; a = 1; i– )) do
    clear
    echo “Устанавливаем громкость в $i”
    MSG=`dcop amarok player nowPlaying` && echo -en “Играет: \33[36m $MSG \33[0m ”

    setmixer vol $i
    sleep 0.2s
    done
    done
    killall amarokapp

    Импровизировать можно до бесконечности 🙂

  5. Я рекомемендую до запуска плейера обнулить общесистемный звук, так как старое значение может быть слишком громким. А вместо setmixer`а я использую “aumix -v(или -w) $i”. А вообще идея отличная!

  6. ищем-качаем
    kukushka-clock-0.4.0-1.src.rpm
    собственно там примерно то же, только кукует хорошо и треем привода дергает… опуская вопрос износа трея привода – довольно прикольный будильник получается 🙂

    • А вот ещё башорговский вариант:

      [00:20:50] sleep `echo 6*60|bc` && while true; do eject -T; done
      [00:20:50] будильник линуксоида на через 6 часов
      [00:23:18] vo11mond всем до eject’a
      [00:28:44] ну я и чудак
      [00:29:24] sleep 6h && while true; do eject -T; done
      [00:29:31] хорошо поспал 6 минут)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *