Compare commits
2 Commits
54f887f7d4
...
07eec68706
Author | SHA1 | Date |
---|---|---|
Hektor Misplon | 07eec68706 | |
Hektor Misplon | 41568b9bc6 |
92
.bin/pomo
92
.bin/pomo
|
@ -1,11 +1,12 @@
|
|||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
# vim: set filetype=python:
|
||||
"""
|
||||
Pomodoro timer
|
||||
|
||||
# Pomodoro timer
|
||||
#
|
||||
# - Writes pomodoro timer to temporary file so dwmblocks
|
||||
# statusbar can read it
|
||||
# - Notification on session finish
|
||||
# - Notification on break finish
|
||||
- Writes pomodoro timer to temporary file so statusbar can read it
|
||||
- Notification on session finish
|
||||
- Notification on break finish
|
||||
"""
|
||||
|
||||
import os
|
||||
import atexit
|
||||
|
@ -18,51 +19,58 @@ def clear():
|
|||
os.system('echo -n "" > /tmp/pomo')
|
||||
|
||||
|
||||
atexit.register(clear)
|
||||
|
||||
parser = ArgumentParser()
|
||||
|
||||
parser.add_argument('-p', '--prep-duration', type=int,
|
||||
help='Pre session duration', default=0)
|
||||
parser.add_argument('-w', '--work-duration', type=int,
|
||||
help='Session duration', default=25)
|
||||
parser.add_argument('-b', '--break-duration', type=int,
|
||||
help='Break duration', default=5)
|
||||
parser.add_argument('-r', '--repeats', type=int,
|
||||
help='Numer of sessions', default=1)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
prep_duration = args.prep_duration * 60
|
||||
work_duration = args.work_duration * 60
|
||||
break_duration = args.break_duration * 60
|
||||
repeats = args.repeats
|
||||
def format_mins_secs(mins, secs):
|
||||
return f"{mins:02d}:{secs:02d}"
|
||||
|
||||
|
||||
def make_countdown(color="#000000"):
|
||||
def make_countdown():
|
||||
def countdown(duration):
|
||||
while duration != 0:
|
||||
mins = duration // 60
|
||||
secs = duration % 60
|
||||
# os.system('echo -n "{:s} {:02d}:{:02d} \x01" > /tmp/pomo'.format(color, mins, secs))
|
||||
os.system(
|
||||
'echo -n "<fc={:s}> {:02d}:{:02d} </fc>" > /tmp/pomo'.format(color, mins, secs))
|
||||
time_str = format_mins_secs(mins, secs)
|
||||
os.system(f'echo -n "{time_str}" > /tmp/pomo')
|
||||
sleep(1)
|
||||
duration -= 1
|
||||
return countdown
|
||||
|
||||
|
||||
prep_countdown = make_countdown("#0000aa")
|
||||
work_countdown = make_countdown("#aa0000")
|
||||
break_countdown = make_countdown("#00bb00")
|
||||
def main(args):
|
||||
atexit.register(clear)
|
||||
|
||||
prep_countdown(prep_duration)
|
||||
prep_duration = args.prep_duration * 60
|
||||
work_duration = args.work_duration * 60
|
||||
break_duration = args.break_duration * 60
|
||||
repeats = args.repeats
|
||||
|
||||
while repeats != 0:
|
||||
notification.notify(title="Get started")
|
||||
work_countdown(work_duration)
|
||||
if break_duration != 0:
|
||||
notification.notify(title="Time for a break")
|
||||
break_countdown(break_duration)
|
||||
notification.notify(title="Break is over, back to work")
|
||||
repeats -= 1
|
||||
prep_countdown = make_countdown()
|
||||
work_countdown = make_countdown()
|
||||
break_countdown = make_countdown()
|
||||
|
||||
prep_countdown(prep_duration)
|
||||
|
||||
while repeats != 0:
|
||||
notification.notify(title="Get started")
|
||||
work_countdown(work_duration)
|
||||
if break_duration != 0:
|
||||
notification.notify(title="Time for a break")
|
||||
break_countdown(break_duration)
|
||||
notification.notify(title="Break is over, back to work")
|
||||
repeats -= 1
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = ArgumentParser()
|
||||
|
||||
parser.add_argument('-p', '--prep-duration', type=int,
|
||||
help='Pre session duration', default=0)
|
||||
parser.add_argument('-w', '--work-duration', type=int,
|
||||
help='Session duration', default=25)
|
||||
parser.add_argument('-b', '--break-duration', type=int,
|
||||
help='Break duration', default=5)
|
||||
parser.add_argument('-r', '--repeats', type=int,
|
||||
help='Numer of sessions', default=1)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
main(args)
|
||||
|
|
Loading…
Reference in New Issue