С тех пор как я настолько обленился что стал заваривать чай прямо в кружке, я начал пользоваться апплетом teatime. Уже после третьего дня там завелась настройка «Пельмени». Разумеется, не лучшее решение, если учесть особенности техпроцесса варки этого замечательного блюда.
Так как писать апплет мне тоже было лень, я решил набросать крошечный скриптик для напоминаний.
Суть задачи крайне проста — два таймера, один уведомляет о закипании воды, второй — о готовности блюда. Уведомление лучше сопровождать светомузыкальными эффектами для улучшение реакции.
Простейший вариант можно описать так:
Само уведомление состоит из:
Уведомление осуществляется посредством
Для верности установим флаг
Сигнал динамиком подадим командой
Дверца открывается-закрывается командами
При отсутствии библиотек их можно доустановить:
Не мудрствуя лукаво возьмём приведённый выше простейший вариант. Единственное — вынесем в отдельную процедуру все пляски с уведомлениями. Передаём ей текст и количество бипов\открываний дверцы.
В шапке скрипта настройки:
Все интервалы замерял по своей плите, подкорректируйте при необходимости.
Так как писать апплет мне тоже было лень, я решил набросать крошечный скриптик для напоминаний.
Итак, постановка задачи
Суть задачи крайне проста — два таймера, один уведомляет о закипании воды, второй — о готовности блюда. Уведомление лучше сопровождать светомузыкальными эффектами для улучшение реакции.
Реализация
Набросок
Простейший вариант можно описать так:
- подождать n-ное количество времени
- уведомить о закипании воды
- подождать n-ное количество времени
- уведомить о готовности
Само уведомление состоит из:
- Стандартного уведомления
- Сигнала динамиком
- Мигание дверцой привода
Подготовка
Уведомление осуществляется посредством
notify-send
. Команда подачи текстового сообщения:notify-send Заголовок Сообщение
Для верности установим флаг
-t 10000
чтобы сообщение держалось 10 секунд.Сигнал динамиком подадим командой
beep
. Эстеты могут подредактировать частоту и длительность, но меня устраивают дефолтные настройки.Дверца открывается-закрывается командами
eject -r
и eject -t
При отсутствии библиотек их можно доустановить:
sudo apt-get install libnotify-bin beep
Код
Не мудрствуя лукаво возьмём приведённый выше простейший вариант. Единственное — вынесем в отдельную процедуру все пляски с уведомлениями. Передаём ей текст и количество бипов\открываний дверцы.
#!/bin/sh
before_boil=8
after_boil=10
beep=true
tray=true
cry(){
notify-send -t 10000 "$2" "$3"
i=$1
while [ $i -gt 0 ]; do
if $beep; then beep; fi
if $tray; then eject -r; eject -t; fi
i=$(($i-1))
done
}
cry 0 "Варка пошла" "Кастрюля с водой на плите. Лавровый лист и перец горошком по вкусу"
sleep ${before_boil}m
cry 1 "Вода закипела" "Посоли воду, брось пельмени, убавь газ. Можно пока замешать соус из-того-что-есть-в-холодильнике"
sleep ${after_boil}m
cry 2 "Пельмени готовы" "Идите жрать, пожалуйста!"
В шапке скрипта настройки:
- время до закипания
- время варки (от закипания до готовности)
- подавать ли гудок
- открывать ли привод
Все интервалы замерял по своей плите, подкорректируйте при необходимости.