dotfiles/.local/bin/statusbar/appointments
Alexander Bocken 255d81f9cc
smaller improvements
modified:   .config/aliasrc
	modified:   .config/dunst/dunstrc
	modified:   .config/mutt/muttrc
	modified:   .config/qutebrowser/autoconfig.yml
	modified:   .config/qutebrowser/quickmarks
	modified:   .config/ranger/rc.conf
	modified:   .local/bin/displayselect
	modified:   .local/bin/dmenumount
	modified:   .local/bin/statusbar/appointments
	modified:   .local/bin/statusbar/music
	deleted:    .local/bin/tools/timer
2021-03-10 15:31:40 +01:00

26 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
#Print the next appointment for the day for statusbar
#or generate notification for upcoming appointment
diff=$(calcurse --next | sed -n 's/^\s*//; s/\[//;s/\]//p' | cut -f1 -d ' ' | perl -pe 's/0([0-9])/\1/g' )
if [ -n "$diff" ]; then
secs=$(( $(echo "$diff" | cut -f1 -d ':') * 3600 + $(echo "$diff" | cut -f2 -d ':') *60 ))
time_appointment="$(date --date "@$(( $( date +'%s' ) + $secs ))" +"%s")"
appointment="$(calcurse --next | tail -n1 | awk '{$1=""; print $0}' | sed 's/^\s*//')"
#shorten lecture appointments to just the name of lecture without profs
if [ "${#appointment}" -gt 20 ]; then
appointment="$(echo "$appointment" | sed -E 's/\(([VUG])\).*/(\1)/')"
fi
if [ "$1" = "notif" ]; then
msg="$(printf '%s\n%s' "$(date --date "@$time_appointment" +'%H:%M')" "$appointment")"
notify-send "Appointment coming up" "$msg"
else
midnight=$(( $(date --date "$(date | sed 's/..:..:../23:59:59/; s/ PM//; s/ AM//')" +%s) + 1 ))
if [ $midnight -gt "$time_appointment" ]; then
if [ ! -f /tmp/nodunst ]; then
printf '%s %s' "$(date --date "@$time_appointment" +'%H:%M')" "$appointment"
fi
fi
fi
fi
printf '\n'