AutoVolume automatically sets the volume of macOS to a specified volume. At the moment it only fires on sleep. For example, the primary use case is to set the system volume to 0 when waking from sleep to save being surprised if you were listening to music quite loud before you closed it and fell asleep.
Why? To learn about macOS development, begin the 'Agent' idea, and practice design.
function sleepWatch(eventType) if (eventType == hs.caffeinate.watcher.systemWillSleep or eventType == hs.caffeinate.watcher.systemDidWake) then hs.audiodevice.defaultOutputDevice():setVolume(0) end end sleepWatcher = hs.caffeinate.watcher.new(sleepWatch) sleepWatcher:start()
- Add user notifications
- Remove NSLog or hide behind debug flag
- Choose audio device
- Choose event for when to act
- Only change volume if a specified amount of time has elapsed
- Add option to display the current volume in a notable way on event
- Act only if volume is above a specified threshold
- Set time when to set volume (suggested by Simone M)
- [Optional] menu bar icon
- Set volume on system login
Contributions are welcome! See contributing.