Last active
July 26, 2018 06:35
-
-
Save Tattoo/a4c036f772cabe2e4ae9f2a6bba48293 to your computer and use it in GitHub Desktop.
Sleep timer on OS X
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
property default_minutes : 30 | |
property wait_percent : 50 -- wait before starting fade | |
set question to "Set a sleep timer for how many minutes?" | |
set options to {"Don't sleep after", "Sleep after", "Cancel"} | |
display dialog question default answer default_minutes ¬ | |
buttons options default button 1 giving up after 30 | |
set {_button, _answer} to {button returned, text returned} of result | |
if _button = "Cancel" then return | |
set sleep_after to false | |
if _button = "Sleep after" then set sleep_after to true | |
try | |
set sleep_seconds to _answer * 60 | |
on error | |
beep | |
display dialog ¬ | |
"TIMER NOT RUNNING. You didn't enter a number." with icon stop ¬ | |
buttons {"Quit"} default button 1 | |
return | |
end try | |
set steps to 60 | |
set wait_before_fading to (sleep_seconds * (wait_percent / 100)) | |
set fade_time_step to ((sleep_seconds - wait_before_fading) / steps) | |
delay wait_before_fading | |
tell application "iTunes" | |
set init_volume to sound volume | |
repeat with i from 0 to steps | |
set sound volume to (init_volume - (i * init_volume / steps)) | |
delay fade_time_step | |
end repeat | |
pause | |
set sound volume to init_volume | |
end tell | |
if sleep_after then tell application "Finder" to sleep |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment