LINUX.ORG.RU

Консольный будильник

 ,


0

1

Накидал будильник, чтоб был.
Заводится alarm 7:00, и: выключает звук (mute), ждет (sleep) наступления нужного времени которое высчитается заранее, включает звук обратно (unmute), включает что-нибудь mplayer'ом (отредактируйте эту строку) и постепенно увеличивает громкость с 10% до 42% по 1% каждые 2 секунды.

noise() {
  case "$1" in
    "mute"|"unmute")
      amixer -q set Master "$1"
      ;;
    *"%")
      amixer -q set PCM "$1"
      ;;
  esac
}
alarm() {
  noise mute
  local NW="$(date +"%s")"
  local W8="$(date -d "$1" +"%s")"
  [ "$W8" -gt "$NW" ] && {
    sleep $(($W8 - $NW))
  } || {
    sleep $(($W8 + 86400 - $NW))
  }
  noise unmute

  for i in {10..42}; do
    noise ${i}%
    sleep 2
  done &

  mplayer ~/Music/lossless/Tarja\ Turunen/My\ Winter\ Storm/CD1/Damned\ And\ Divine.flac
}
★★★★★

я писал что -то подобное, только с запросом кодовой фразы, а после неё — прогноз погоды, текущее время етс. =3

snoopcat ★★★★★
()

У меня всё проще.

#!/bin/bash
mocp -S
mocp -c
mocp -a ~/alarm.mp3
sleep 1
echo GO
mocp -p
mocp -v 20
sleep 20
mocp -v 25
sleep 15
mocp -v 30
sleep 15
mocp -v 40
sleep 20
mocp -v 50
┌[lord] [home-hell-machine]:~ 
└>crontab -e
00 08 * * * /home/lord/alarmer.sh 
Потратил на это дело с 10-20 секунд :) Нужно будет сделать красивый будильник, какнить, с капчей :)

Spirit_of_Stallman ★★★
()

Лол, как заморачиваетесь-то. У меня хистори забита чем-то в духе

sleep $((8*3600)) && mpg321 ~/Music/Megadeth/2009\ -\ Endgame/09.\ Head\ Crusher.mp3

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

Его больше интересовало что бы звук был погашен до нужного времени и заработал когда надо. Но не использовать кронтаб, это действительно странно.

sin_a ★★★★★
()
Ответ на: комментарий от geekless

Ъ. А в винде для этого бы пришлось «скачать бесплатно без регистрации».

А самому написать скрипт не судьба?

TGZ ★★★★
()

блин... man at осиль, и не занимайся ерундой.

drBatty ★★
()
Ответ на: комментарий от sin_a

Вы крайне наблюдательны, сударь :D
Сие так, в силу быстроты решения и лени его сделать толково.
И так оно уже там месяца 3, так точно :)

Spirit_of_Stallman ★★★
()
Ответ на: комментарий от melkor217

Ну.., тогда хотя бы обвязку для управления кроном. Выполнять-то он может и один раз. Например помещать файл /etc/cron.d/alarm, с одной строкой и указанием дня и месяца, и рестартовать crond.

sin_a ★★★★★
()
Ответ на: комментарий от melkor217

Ну крон предполагает, что у меня есть некоторый график. Я привык будильник каждый раз заводить.

Я каждый день пишу crontab -e, и ставлю на нужное мне время (благо с вимом это пару приятных тыков :D)

Spirit_of_Stallman ★★★
()
Ответ на: комментарий от geekless

В винде? Скрипт? Не смеши меня.

в венде тоже есть at, есть sleep и есть консольные плееры. В частности и упомянутый mplayer. т.ч. ты зря смеёшься.

drBatty ★★
()
Ответ на: комментарий от sin_a

Неча машине думать, сколько мне спать. К тому же, sleep символизирует :)

melkor217 ★★★★★
()
Ответ на: комментарий от sin_a

Ну.., тогда хотя бы обвязку для управления кроном. Выполнять-то он может и один раз. Например помещать файл /etc/cron.d/alarm, с одной строкой и указанием дня и месяца, и рестартовать crond.

расскажи мне, зачем изобретать велосипед?

       at  and  batch  read  commands from standard input or a specified file which are to be executed at a later
       time, using /bin/sh.

       at      executes commands at a specified time.

       atq     lists the user's pending jobs, unless the user is the superuser; in that  case,  everybody's  jobs
               are  listed.  The format of the output lines (one for each job) is: Job number, date, hour, queue,
               and username.

       atrm    deletes jobs, identified by their job number.

       batch   executes commands when system load levels permit; in other words,  when  the  load  average  drops
               below 0.8, or the value specified in the invocation of atd.

drBatty ★★
()
Ответ на: комментарий от drBatty

в венде тоже есть at, есть sleep и есть консольные плееры. В частности и упомянутый mplayer. т.ч. ты зря смеёшься.

«скачать бесплатно без регистрации», ЧТД

geekless ★★
()
Ответ на: комментарий от melkor217

такой будильник выключать

Использовать демон, например mpd (системный или пользователя) или mocp.

sin_a ★★★★★
()
Ответ на: комментарий от TGZ

Ох лол. В винде уже из коробки появились консольные плееры и возможность тушить звук из консоли? Да и нормальный sh тоже придётся скачивать.

geekless ★★
()
Ответ на: комментарий от geekless

В винде уже из коробки появились консольные плееры и возможность тушить звук из консоли?

Не пиши того, чего не знаешь. Вот на коленке mp3, без всяких сторонних:

add-type -assemblyname presentationcore
$player = new-object system.windows.media.mediaplayer

$player.open('D:\MUSIC\TESTING\Metrum\2012. Broken\01 - Anger.mp3')
$player.play()

TGZ ★★★★
()
Ответ на: комментарий от melkor217

Кстати, такой будильник выключать совсем не в радость. Крона это тоже касается.

ну можно например запускать скрипт, который с помощью сопроцесса выполняет (g)xmessage, которая рисует кнопки «позже» и «стоп». Если не любишь GUI, используй dialog или даже тупо read.

drBatty ★★
()
Ответ на: комментарий от geekless

в венде тоже есть at, есть sleep и есть консольные плееры. В частности и упомянутый mplayer. т.ч. ты зря смеёшься.

«скачать бесплатно без регистрации», ЧТД

только mplayer качать нужно: http://www.mplayerhq.hu/design7/dload.html

чем ты недоволен?

drBatty ★★
()
Ответ на: комментарий от sin_a

Например помещать файл /etc/cron.d/alarm, с одной строкой и указанием дня и месяца, и рестартовать crond.

крон их сам перечитывает, окстись.

maloi ★★★★★
()
Ответ на: комментарий от geekless

Ох лол. В винде уже из коробки появились консольные плееры и возможность тушить звук из консоли? Да и нормальный sh тоже придётся скачивать.

в венде отродясь нихрена не было. Плееров в т.ч. (убожество от мысы можно не считать. Оно вроде даже mp3 не умеет искароппки, я уж молчу про wav pack). Т.ч. плеер качать по любому придётся. А вот всё остальное есть, в т.ч. для этой задачи sh(cmd.exe) вполне пойдёт. А в семёрке максимальной есть говношел, в котором вообще ВСЁ можно.

drBatty ★★
()
Ответ на: комментарий от Homura_Akemi

Ваша правда, когда еще только установил свой первый линукс и понадобился будильник, - at я не осилил.

Кстати, at нет в моем арчике; с каким пакетом оно идет? А вот,

┌─[myhost ~]
└─╼ pacman -Qo {date,sleep}
/usr/bin/date is owned by coreutils 8.19-1
/usr/bin/sleep is owned by coreutils 8.19-1
есть во всех дистрибутивах из коробки :}

Spoofing ★★★★★
() автор топика
Ответ на: комментарий от Spoofing

Кстати, at нет в моем арчике; с каким пакетом оно идет?

в слаке at идёт в пакете at :)

drBatty ★★
()
Ответ на: комментарий от sin_a

и даже не в ~/.local/bin/

Поправлено.

anonymous
()

Будильник и таймер есть на андроедодевайсах, нафига писать свои (кривые) велосипеды?

Спуфик, ты все еще сидишь в rf/nhk@c.j.r?

anonymous
()
Ответ на: комментарий от maloi

Спасибо, действительно перечитывает.

sin_a ★★★★★
()

Писал свою реализацию «типа сron» с учетом праздничных дней + говарилка времени + говарилка погоды + включение аудио файла с плавным увеличением уровня громкости. Почти все на TCL . Раз настроил и забыл.

pavel38
()
Ответ на: комментарий от drBatty

в семёрке максимальной есть говношел, в котором вообще ВСЁ можно.

powershell до сих пор не умеет сохранять историю (во всяком случае, без костылей размером с карьерный экскаватор). Не нужно.

nbw ★★★
()
Ответ на: комментарий от nbw

это такое издевательство, если ты не понял. Я видел код на говношеле - мне ещё больше жаль тамошних одминов. Уж лучше bat-файлы...

drBatty ★★
()
Ответ на: комментарий от nbw

powershell до сих пор не умеет сохранять историю

Историю можно экспортировать в файл, а при запуске импортировать. Получится почти .bash_history. Но зачем это нужно?

TGZ ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.