27 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			1.2 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
 | |
| 			#only print appointment if dunst-notifications are also shown -> "privacy screen"
 | |
| 			if [ ! -f /tmp/nodunst ]; then
 | |
| 				printf '%s %s' "$(date --date "@$time_appointment" +'%H:%M')" "$appointment"
 | |
| 			fi
 | |
| 		fi
 | |
| 	fi
 | |
| fi
 | |
| printf '\n'
 |