"Вовремя не прозвонивший будильник изменил судьбы миллионов"..
Агата Кристи
Сегодня возникла необходимость 100% пробуждения сутра, потому что как обычно засиделся до поздней ночи, а так как у меня компьютер постоянно работает (качаю торренты

), а с телефона я не просыпаюсь, причем довольно давно

Вот, возникла идея сообразить будильник с помощью amarok'a и cron'a
И так поехали

Нам потребуются: amarok, crontab
Пробуем выполнить команду:
DISPLAY=:0 amarok -p
Если амарок запустился, отлично

Параметр -p означает играть текущий плей-лист
Теперь создадим эмуляцию плавного нарастания громкости (согласитесь так намного приятнее

). На помощь нам приходи amixer:
Создаем файл .cron_alarm
gedit ~/.cron_alarm
С содержимым:
#!/bin/bash
amixer sset Master 0% unmute;
DISPLAY=:0 amarok -p;
sleep 1;
amixer sset Master 10% unmute;
sleep 1;
amixer sset Master 20% unmute;
sleep 1;
amixer sset Master 30% unmute;
sleep 1;
amixer sset Master 40% unmute;
sleep 1;
amixer sset Master 50% unmute;
sleep 1;
amixer sset Master 60% unmute;
sleep 1;
amixer sset Master 70% unmute;
sleep 1;
amixer sset Master 80% unmute;
sleep 1;
amixer sset Master 90% unmute;
sleep 1;
amixer sset Master 100% unmute;
Естественно, кому не подходят эти параметры, могут варировать слипы и процентаж громкости.
Далее в добавим нашу задачу на выполнение:
crontab -e
И в него добавляем следующую строчку
30 8 * * 1-5 bash ~/.cron_alarm #Будильник :)
Первое число означает минуты, второе - часы, третье - дни месяца, затем месяца и дни недели. После этого команда, которую стоит выполнить при помощи shell’а. Звездочка означает все совпадения с 1 по последнее возможное значение (например, для минут звёздочка будет соответствовать диапазону 0-59). Также можно задать список значений через запятую (без пробелов). В моем случае cron выполнит команду с понедельника по пятницу в 8:30.
Хотя и первоначальная настройка такого будильника кажется сложной, она того стоит

Можно скомбинировать, или добавить несколько записей на разные будильники.