pomo 1008 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/env zsh
  2. # minimal PATH for i3
  3. export PATH="$HOME/.local/bin:$HOME/.local/share/go/bin:/run/current-system/sw/bin:$PATH"
  4. current_phase="work"
  5. [[ "$1" == "break" ]] && current_phase="break" && shift
  6. typeset -A pomo
  7. pomo[work]=${1:-25}
  8. pomo[break]=${2:-5}
  9. pomo[long_break]=${3:-15}
  10. count=0
  11. trap - INT
  12. while true; do
  13. if [[ "$current_phase" == "work" ]]; then
  14. ((count++))
  15. key=work
  16. title="🍅 Session done"
  17. text="It is now time to take a <b>BREAK</b>!"
  18. speak="Break time"
  19. else
  20. if (( count > 0 && count % 4 == 0 )); then
  21. echo "LONG BREAK" | lolcat
  22. key=long_break
  23. else
  24. key=break
  25. fi
  26. title="🧘 Break over"
  27. text="Time to get back to <b>WORK</b>"
  28. speak="Work time"
  29. fi
  30. echo "$current_phase" | lolcat
  31. timer ${pomo[$key]}m || break
  32. notify-send -u normal -t 3000 -i alarm "$title" "$text"
  33. spd-say -t male3 -r -10 -p -100 "$speak"
  34. [[ "$current_phase" == "work" ]] && current_phase="break" || current_phase="work"
  35. done
  36. exit