diff --git a/.config/calcurse/conf b/.config/calcurse/conf index 3e59195..60b640f 100644 --- a/.config/calcurse/conf +++ b/.config/calcurse/conf @@ -27,6 +27,6 @@ general.multipledays=yes general.periodicsave=1 general.systemevents=yes general.systemdialogs=yes -notification.command=printf '\a' +notification.command=printf 'appointments notif' notification.notifyall=all notification.warning=300 diff --git a/.local/bin/statusbar/appointments b/.local/bin/statusbar/appointments new file mode 100755 index 0000000..b3a183b --- /dev/null +++ b/.local/bin/statusbar/appointments @@ -0,0 +1,17 @@ +#!/bin/bash +#Print the next appointment for the day for statusbar +#or generate notification for upcoming appointment +diff=$(calcurse --next | tail -n1 | sed 's/^\s*//; s/\[//;s/\]//' | cut -f1 -d ' ') +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*//')" +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 + printf '%s %s' "$(date --date "@$time_appointment" +'%H:%M')" "$appointment" + fi + printf '\n' +fi