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() |