Automatically set the volume of macOS to a specified volume.
Swift CSS HTML Objective-C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
AutoVolume.xcodeproj
AutoVolume
AutoVolumeHelper
AutoVolumeHelperTests
AutoVolumeTests
AutoVolumeUITests
website
.gitignore
CONTRIBUTING.md
LICENSE
README.md

README.md

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.