-
-
Save ypetya/1341520 to your computer and use it in GitHub Desktop.
Pomodoro Timer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Tkinter | |
import datetime | |
import commands | |
class PomodoroTimer(): | |
""" | |
Simple pomodoro timer app | |
""" | |
def __init__(self): | |
self.root = Tkinter.Tk() | |
self.root.title("Pomodoro timer") | |
self.label = Tkinter.Label(font=("Helvetica Neue", 44), width=10) | |
self.label.pack(ipadx=10, ipady=10, ) | |
self.start_pomodoro() | |
self.update_timer() | |
self.beeped = False | |
self.break_passed = False | |
self.root.mainloop() | |
def reset_time(self, event=None, minutes=1): | |
self.beeped = False | |
self.end = datetime.datetime.now() + datetime.timedelta( | |
minutes=minutes) | |
def start_break(self, event=None): | |
self.reset_time(minutes=5) | |
self.break_passed = True | |
self.beeped = False | |
self.label.configure(fg="dark green") | |
self.label.unbind("<Button-1>") | |
def start_pomodoro(self, event=None): | |
self.reset_time(minutes=25) | |
self.label.configure(fg="black") | |
self.break_passed = False | |
self.label.unbind("<Button-1>") | |
def update_timer(self): | |
rem = self.end - datetime.datetime.now() | |
rem = int(rem.total_seconds()) | |
if(rem > 0): | |
hours, remainder = divmod(rem, 3600) | |
minutes, seconds = divmod(remainder, 60) | |
text = '%02d:%02d' % (minutes, seconds) | |
else: | |
if not self.beeped: | |
commands.getstatusoutput('notify-send Pomodoro') | |
self.beeped = True | |
if not self.break_passed: | |
text = "Break" | |
self.label.bind("<Button-1>", self.start_break) | |
else: | |
text = "Pomodoro" | |
self.label.bind("<Button-1>", self.start_pomodoro) | |
self.label.configure(text=text) | |
self.root.after(1000, self.update_timer) | |
app = PomodoroTimer() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
linux version (using notify-send)