{"id":18878295,"url":"https://github.com/uriel1998/bash_alarm_clock","last_synced_at":"2026-05-02T10:39:36.939Z","repository":{"id":147177143,"uuid":"196471614","full_name":"uriel1998/bash_alarm_clock","owner":"uriel1998","description":"A fully featured bash alarm clock leveraging cron","archived":false,"fork":false,"pushed_at":"2022-06-08T20:11:36.000Z","size":25,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-31T02:40:15.855Z","etag":null,"topics":["alarm","bash","clock","cron"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uriel1998.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-11T22:16:49.000Z","updated_at":"2022-05-26T22:59:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"763bf49c-c309-423c-884a-fb4f81d97956","html_url":"https://github.com/uriel1998/bash_alarm_clock","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriel1998%2Fbash_alarm_clock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriel1998%2Fbash_alarm_clock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriel1998%2Fbash_alarm_clock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriel1998%2Fbash_alarm_clock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uriel1998","download_url":"https://codeload.github.com/uriel1998/bash_alarm_clock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239841731,"owners_count":19705981,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alarm","bash","clock","cron"],"created_at":"2024-11-08T06:25:46.681Z","updated_at":"2026-02-19T15:30:17.251Z","avatar_url":"https://github.com/uriel1998.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bash_alarm_clock\nA fully featured bash alarm clock leveraging cron\n\n## Contents\n 1. [About](#1-about)\n 2. [License](#2-license)\n 3. [Prerequisites](#3-prerequisites)\n 4. [Configuration](#4-configuration)\n 5. [Usage](#5-usage)\n 6. [TODO](#6-todo)\n\n***\n \n## 1. About\n\nThis is a program greatly indebted to various cron alarm clocks like [this one](https://web.archive.org/web/20080617195246/http://grimthing.com/archives/2004/01/23/cron-mp3-alarm-clock/),\n though it has some features that those simple ones don't have.\n\nThe `briefing.sh` script is described on my blog [how to get a daily briefing](https://ideatrash.net/2019/01/get-a-daily-briefing-without-big-brother.html).\n\n\n## 2. License\n\nThis project is licensed under the MIT license. For the full license, see `LICENSE`.\n\n## 3. Prerequisites\n\n### These may already be installed on your system.\n\n* `kill` can be found on major Linux distributions.\n* `pkill` can be found on major Linux distributions.\n* `date` can be found on major Linux distributions.\n* `sed` can be found on major Linux distributions.\n* `ls` can be found on major Linux distributions.\n* `cronic` to reduce cron's email output, found [here](https://habilis.net/cronic/)\n\n### Useful tools to use with this alarm clock.\n\n * `mplayer` command-line tool for playing media. `mplayer` can be found on major Linux distributions.\n * `podfox` command-line tool for podcasts, found [here](https://github.com/brtmr/podfox)\n * `gnome-schedule` if you aren't comfy with `crontab -e`, found [here](https://sourceforge.net/projects/gnome-schedule/)\n \n## 4. Configuration\n\n### Configuration file\n\nEdit the RC file and put it in $HOME/.config/bash_alarm to put your alarms there in the format:\n\n`24 HOUR TIME;DAY OF WEEK[UMTWRFS];ALARM GROUP;[COMMAND]`\n\ne.g.\n\n`0530;MTWRF;music;/usr/bin/mplayer -noconsolecontrols -ao pulse -volume 100 -really-quiet -loop 5 \"~/alarm.mp3\" \u0026`\n\nWould use mplayer to play an alarm at 5:30 AM every weekday, and\n\n`1400;US;music;/usr/bin/mplayer -noconsolecontrols -ao pulse -volume 100 -really-quiet -loop 5 \"~/wave_sounds.mp3\" \u0026`\n\nwould use mplayer to play a different wave-crashing sound at 2:00 PM on Sunday and Saturday.\n\nThe semicolon is the dividing mark; your command should **NOT** have a semicolon in it. Right now, that means calling something like `briefing.sh` a minute or two before the playing command.\n\n### Crontab change\n\nEdit your crontab using either `crontab -e` or a tool like [gnome-schedule](https://sourceforge.net/projects/gnome-schedule/) to call the script once a minute with the `-c` command line variable, e.g.\n\n`* * * * * * /usr/bin/cronic /PATH/TO/bash_alarm.sh -c` \n\n### Notes about setting up alarms\n\nI added `export XDG_RUNTIME_DIR=\"/run/user/1000\"` to the alarm script to solve a problem [raised and solved here about running audio apps from cron](#https://web.archive.org/web/20080617195246/http://grimthing.com/archives/2004/01/23/cron-mp3-alarm-clock/).\n\nIf you have problems with `mplayer` not playing, try using `-noconsolecontrols` as an argument.\n\n\n## 5. Usage\n\n* Running a check\n\nRun `bash_alarm.sh -c`, either from `cron` or the commandline. \n\nBoth of these commands are intentionally slightly cumbersome, because this is \nbeing used as an *alarm* clock...\n\n* Stopping alarms\n\nRun `bash_alarm.sh -k [all|group name]`. If you specify *all*, you do not need to\nspecify any other group name. Otherwise, it will *only* kill alarms that are part \nof the named group.\n\n* Snoozing alarms\n\nRun `bash_alarm.sh -s [all|group name] [snooze time in minutes]`. If you specify \n*all*, you do not need to specify any other group name. Otherwise, it will *only* \nsnooze alarms that are part of the named group. The snooze time should *only* be \na whole number. If no number is specified, the snooze time is set to 5.\n\n## 6. Todo\n\n * Way to non-manually add single-time alarms\n * How to skip alarm for next day\n * GUI (or at least non-programatically editing) interface\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furiel1998%2Fbash_alarm_clock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furiel1998%2Fbash_alarm_clock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furiel1998%2Fbash_alarm_clock/lists"}