Skip to content

Instantly share code, notes, and snippets.

@Tattoo
Last active July 26, 2018 06:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Tattoo/a4c036f772cabe2e4ae9f2a6bba48293 to your computer and use it in GitHub Desktop.
Save Tattoo/a4c036f772cabe2e4ae9f2a6bba48293 to your computer and use it in GitHub Desktop.
Sleep timer on OS X
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