beepmein
19. 11. 2019Beepmein ↓
A reminder/alarm script using ‘at’ as back.
Set reminder or alarm:
beepmein now + 3 minutes # reminder ('at' time format)
beepmein 22:10 # reminder ('at' time format)
beepmein 3 # reminder (in 3 minutes, beepmein shortcut)
beepmein 8:00 --alarm # alarm (must be last parameter)
beepmein --nr 5 # with no reason (must be first parameter)
Set sounds: (playback depends on mpv)
beepmein --set-alarm <path/to/alarm.sound>
beepmein --set-remind <path/to/reminder.sound>
Test playback, blinking and notifications:
beepmein --reaction reminder_text
beepmein --reaction --alarm alarm_text
beepmein --test # test everything
Kill all running playback/beeping:
killall beepmein
Notes:
at -l # will list pending jobs (or atq)
at -r <num> # will remove job <num> (or atrm)
Note: ‘at’ doesn’t use seconds, max precision seems to be minutes.
With Debian buster ‘at’ jobs may be found in /var/spool/cron/atjobs
.
gmrun could be also used instead of yad for inputing ‘reason’ ↓
in ~/.gmrunrc
# beepmein reason
URL_reason = echo "%s"
in beepmein, under input
read -rp "reason? " reason || reason="$(gmrun reason:)"
pipeBeepmein ↓
Pipe-menu of some sort intended for jgmenu, using cvs format.
Date calculus ↓
https://stackoverflow.com/questions/8903239/how-to-calculate-time-elapsed-in-bash-script
For example to get ‘now + 5 minutes’
date +%R
16:36
date -u -d "+5 minutes" +%R
15:41
Date non-documented features (misko) ↓
Miliseconds
date +%s%3N
Microseconds
date +%s%6N
Nanoseconds
date +%s%9N
for example to get Seconds.Miliseconds
date +%_S.%3N
repeat 120 date +%_S.%3N # zsh