Add pomodoro python script
							parent
							
								
									df9bee20a2
								
							
						
					
					
						commit
						2a6437a212
					
				| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					#!/usr/bin/env python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Pomodoro timer 
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - Writes pomodoro timer to temporary file so dwmblocks
 | 
				
			||||||
 | 
					#   statusbar can read it
 | 
				
			||||||
 | 
					# - Notification on session finish
 | 
				
			||||||
 | 
					# - Notification on break finish
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					import atexit
 | 
				
			||||||
 | 
					from argparse import ArgumentParser
 | 
				
			||||||
 | 
					from time import sleep
 | 
				
			||||||
 | 
					from plyer import notification
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def clear():
 | 
				
			||||||
 | 
					  os.system('echo -n "" > /tmp/pomo')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					atexit.register(clear)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parser = ArgumentParser()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parser.add_argument('-w', '--work-duration', type=int, help='Duration of a session', default=25)
 | 
				
			||||||
 | 
					parser.add_argument('-b', '--break-duration', type=int, help='Duration of a break', default=5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					args = parser.parse_args()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					work_duration = args.work_duration * 60
 | 
				
			||||||
 | 
					break_duration = args.break_duration * 60
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def countdown(duration):
 | 
				
			||||||
 | 
					  while duration!= 0:
 | 
				
			||||||
 | 
					    mins = duration // 60
 | 
				
			||||||
 | 
					    secs = duration % 60
 | 
				
			||||||
 | 
					    os.system('echo -n \x03 "{:02d}:{:02d} \x01" > /tmp/pomo'.format(mins, secs))
 | 
				
			||||||
 | 
					    sleep(1)
 | 
				
			||||||
 | 
					    duration -= 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					countdown(work_duration)
 | 
				
			||||||
 | 
					notification.notify(title="Time for a break")
 | 
				
			||||||
 | 
					countdown(break_duration)
 | 
				
			||||||
 | 
					notification.notify(title="Break is over, set a new timer")
 | 
				
			||||||
		Loading…
	
		Reference in New Issue