diff options
author | elioat <elioat@tilde.institute> | 2022-10-07 23:57:59 +0000 |
---|---|---|
committer | elioat <elioat@tilde.institute> | 2022-10-07 23:57:59 +0000 |
commit | f7dc77b3763ac444fa54e110639fadc6ba70174b (patch) | |
tree | 104c0fca807f88fff3564dfb696f1761d0426b5b /lua/pomo.lua | |
parent | 1a6af4c104ea9d168f947ce082d0f6336f8ea036 (diff) | |
download | tour-f7dc77b3763ac444fa54e110639fadc6ba70174b.tar.gz |
*
Diffstat (limited to 'lua/pomo.lua')
-rw-r--r-- | lua/pomo.lua | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/lua/pomo.lua b/lua/pomo.lua new file mode 100644 index 0000000..75e4c1e --- /dev/null +++ b/lua/pomo.lua @@ -0,0 +1,71 @@ +-- title: pomo +-- author: eli_oat +-- about: a very tiny pomodoro timer + +local pomo = { + _version = "2022.03" +} + +local defaults = { + pomoTime = 1500, -- time for a pomodoro in seconds + restTime = 600, -- time for a short rest in seconds + longRestTime = 900, -- time for a long rest in sseconds + pomoCount = 0 -- used to count pomodoros before a long rest +} + +local pomoTime = defaults.pomoTime +local restTime = defaults.restTime +local longRestTime = defaults.longRestTime +local pomoCount = defaults.pomoCount + +local function sleep (a) + local sec = tonumber(os.clock() + a) + while (os.clock() < sec) do + end +end + +local function prettyTime (timeInSeconds) + local minutes = math.floor(timeInSeconds / 60) + local seconds = timeInSeconds % 60 + local timeDisplay = string.format('%02d:%02d', minutes, seconds) + return timeDisplay +end + +function pomo () + os.execute('clear') + repeat + io.write('🍅 ' .. prettyTime(pomoTime) .. '\n') + pomoTime = pomoTime - 1 + sleep(1) + os.execute('clear') + until pomoTime == 0 + + while pomoTime == 0 and pomoCount < 4 do + io.write('😴 ' .. prettyTime(restTime) .. '\n') + restTime = restTime - 1 + sleep(1) + os.execute('clear') + while restTime == 0 do + restTime = defaults.restTime + pomoTime = defaults.pomoTime + pomoCount = pomoCount + 1 + pomo() + end + end + + while pomoCount == 4 do + io.write('🍹 LONG REST! ' .. prettyTime(longRestTime) .. '\n') + longRestTime = longRestTime - 1 + sleep(1) + os.execute('clear') + while longRestTime == 0 do + restTime = defaults.restTime + pomoTime = defaults.pomoTime + longRestTime = defaults.longRestTime + pomoCount = defaults.pomoCount + pomo() + end + end +end + +return pomo |