Hacker News new | ask | show | jobs
by globalnode 729 days ago
simpler than mine:

  import time
  import argparse

  def main(mins):
    print(f"Starting pomodoro timer: {mins} minutes.")

    for m in range(mins, 0, -1):
        secs = 60
        for s in range(secs, 0, -1):
            print(f"{m-1}:{s-1}    ", end='\r')
            time.sleep(1)

    print("Timer finished - take a break!\a")
    time.sleep(2)
    print("\a")
    time.sleep(2)
    print("\a")
    time.sleep(2)


  if __name__ == "__main__":
      parser = argparse.ArgumentParser(description="Pomodoro Timer.")
    parser.add_argument("mins", type=int, help="minutes to time.")

    args = parser.parse_args()
    main(args.mins)
2 comments

Good one! That's pretty much how I started and then ended up with Pomoglorbo instead. I have wanted the timer to integrate with timewarrior, and automatically time what I am working and also keep track of my breaks. Another issue is that when your computer sleeps, you'd want to keep counting seconds in the background, so time.sleep(1) will lose accuracy very quickly.
You can use time.sleep in a loop to tick of seconds, but actually check the diff between now and start time to know how much time has passed.