#!/usr/bin/env bash function round() { echo $(printf %.$2f $(echo "scale=$2;(((10^$2)*$1)+0.5)/(10^$2)" | bc)) } function drawBar(){ local percent=$1; for i in {1..10}; do local boxPercent=$(($i*10)) if [ "$boxPercent" -lt "$percent" ]; then echo -n "■" elif [ "$boxPercent" -eq "$percent" ]; then echo -n "■" elif [ "$(($boxPercent-10))" -lt "$percent" ]; then echo -n "▣" else echo -n "□" fi done } function getTimer(){ if [ -e "$HOME/timer" ]; then local humanDuration=$(head -n 1 "$HOME/timer") # All these dates are in seconds since the epoch local duration=$(( $(date -d "now + $humanDuration" '+%s') - $(date '+%s') )) local startTime=$(stat --format="%Y" "$HOME/timer") local endTime=$(( $startTime + $duration )) local currentTime=$(date '+%s') if [ $endTime -gt $currentTime ]; then local percentage=$(echo " ( ( $currentTime - $startTime ) * 100 ) / ( $endTime - $startTime ) " | bc ) echo -n "$percentage% " echo $(drawBar $percentage) fi fi } time=$(date '+%T') date=$(date '+%A %d %B %Y') timer="$(getTimer)" notify-send "$time" "$date\n$timer$1"