hyprland-void-dots/hypr-configs/hyprland/eww/scripts/timer.py
2024-06-27 18:05:57 +03:30

108 lines
2.8 KiB
Python
Executable file

#!/usr/bin/env python3
import time
import os
import sys
import subprocess
eww_bin= [subprocess.getoutput("which eww"), "-c", f"{os.getcwd()}"]
def startstop():
if os.path.exists("/tmp/timerstamp"):
os.remove("/tmp/timerstamp")
os.popen("notify-send 'timer stopped'")
else:
with open("/tmp/timerstamp", "x") as f:
f.write(str(time.time()))
os.popen("notify-send 'timer start'")
# fuck it, I'm sure we don't need the loop function
def readtime():
if not os.path.exists("/tmp/timer"):
with open("/tmp/timer", "x") as f:
f.write("25")
while True:
with open("/tmp/timer") as f:
timer = int(f.read())
if os.path.exists("/tmp/timerstamp"):
current = time.time()
with open("/tmp/timerstamp") as f:
timestamp = float(f.read())
if current - timestamp >= timer*60:
os.remove("/tmp/timerstamp")
os.popen("notify-send 'time is up'")
print("OwO")
subprocess.run(eww_bin + ["update", f"timerdis=OwO"])
else:
m, s = divmod((timer*60) - (current-timestamp), 60)
print (f"{int(m)}:{int(s)}")
subprocess.run(eww_bin + ["update", f"timerdis={int(m)}:{int(s)}"])
else:
print(timer)
subprocess.run(eww_bin + ["update", f"timerdis={timer}"])
time.sleep(1)
def loop():
if not os.path.exists("/tmp/timer"):
with open("/tmp/timer", "x") as f:
f.write("25")
while True:
with open("/tmp/timer") as f:
timer = int(f.read())
current = time.time()
if os.path.exists("/tmp/timerstamp"):
with open("/tmp/timerstamp") as f:
timestamp = float(f.read())
if current - timestamp >= timer*60:
os.remove("/tmp/timerstamp")
os.popen("notify-send 'time is up'")
time.sleep(1)
def substate():
if os.path.exists("/tmp/timerstamp"):
print("stop")
else:
print("start")
def timeinc():
with open("/tmp/timer", "r") as f:
timer = int(f.read())
timer+=5
with open("/tmp/timer", "w") as f:
f.write(str(timer))
subprocess.run(eww_bin + ["update", f"timerdis={timer}"])
def timedec():
with open("/tmp/timer", "r") as f:
timer = int(f.read())
timer-=5
with open("/tmp/timer", "w") as f:
f.write(str(timer))
subprocess.run(eww_bin + ["update", f"timerdis={timer}"])
a = sys.argv[1]
if a == "loop":
loop()
if a == "toggle":
startstop()
if a == "subscribe":
readtime()
if a == "substate":
substate()
if a == "timedec":
timedec()
if a == "timeinc":
timeinc()