44 lines
958 B
Python
Executable File
44 lines
958 B
Python
Executable File
#!/usr/bin/python3
|
|
import notify2
|
|
from time import sleep
|
|
from playsound import playsound
|
|
import os
|
|
|
|
NAME = 'Eye Strain Reminder'
|
|
MESSAGE = 'Friendly reminder to observe the 20-20-20 rule'
|
|
TIMEOUT = 20
|
|
MILLISECOND = 1000
|
|
MINUTE = 60
|
|
DIR = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
def init():
|
|
print("Initializing EyeStrainReminder...")
|
|
notify2.init(NAME)
|
|
|
|
def uninit():
|
|
notify2.uninit()
|
|
|
|
def wait():
|
|
sleep(TIMEOUT*MINUTE)
|
|
|
|
def send_notification():
|
|
print(MESSAGE)
|
|
notification = notify2.Notification(NAME, MESSAGE, "notification-device-eject")
|
|
notification.set_timeout(TIMEOUT * MILLISECOND)
|
|
notification.set_urgency(notify2.URGENCY_LOW)
|
|
notification.show()
|
|
|
|
playsound(f"{DIR}/files/default.wav")
|
|
sleep(TIMEOUT)
|
|
notification.close()
|
|
playsound(f"{DIR}/files/default.wav")
|
|
|
|
def main():
|
|
init()
|
|
while 1:
|
|
wait()
|
|
send_notification()
|
|
uninit()
|
|
|
|
if __name__ == '__main__':
|
|
main() |