AutoVolume icon indicating copy to clipboard operation
AutoVolume copied to clipboard

Automatically set the volume of macOS to a specified volume.

AutoVolume (macOS)

Home page

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.

Alternative:

Use HammerSpoon and hook into systemDidWake and mute default audio device. For example:

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

TODO

  • [ ] Add user notifications
  • [ ] Remove NSLog or hide behind debug flag

Wishlist

  • 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

Contributing

Contributions are welcome! See contributing.

License

See license.