How do I disable the volume control overlay?

Solution 1:

Hold up, don't modify important system files!
Mac OS has a nice way to start/stop services without doing permanent damage.

To turn off bezels for this user until next login:
launchctl unload -F /System/Library/LaunchAgents/com.apple.BezelUI.plist
To undo, change unload to load, or just log out and back in.

For macOS 10.12 Sierra: Disable System Integrity protection, then:
launchctl unload -F /System/Library/LaunchAgents/com.apple.OSDUIHelper.plist
Don't forget to enable System Integrity protection when you're done.


To turn off bezels indefinitely for this user:
launchctl unload -wF /System/Library/LaunchAgents/com.apple.BezelUI.plist

For macOS 10.12 Sierra: Disable System Integrity protection, then:
launchctl unload -wF /System/Library/LaunchAgents/com.apple.OSDUIHelper.plist
You can now enable System Integrity protection again -- your settings will persist.

To undo, change unload to load.


To turn off bezels indefinitely for all users:
sudo defaults write /System/Library/LaunchAgents/com.apple.BezelUI Disabled -bool YES

For macOS 10.11 Sierra: Disable System Integrity protection before doing the above.

To undo, change YES to NO, or:
sudo defaults delete /System/Library/LaunchAgents/com.apple.BezelUI Disabled

For macOS 10.12 Sierra: Disable System Integrity protection, then:
sudo defaults write /System/Library/LaunchAgents/com.apple.OSDUIHelper Disabled -bool YES
You can now enable System Integrity protection again -- your settings will persist.

To undo, change YES to NO, or:
sudo defaults delete /System/Library/LaunchAgents/com.apple.OSDUIHelper Disabled

Users can override this global setting using the two methods above.


More info: launchctl is the command-line interface to launchd, the program that manages services and jobs on Mac OS.

  • To reverse any of the above actions, just change unload to load.
  • -w means write preference to disk so that it will be used for subsequent logins
  • -F means force un/load regardless of the global Disabled key

You can read more about it in man launchctl.

Solution 2:

In automator, create a new service that takes no input. Give it a single action: Run AppleScript Enter the following AppleScript:

set x to get output volume of (get volume settings)
if x >  10 then 
    set volume output volume (x-10)
else
    set volume output volume 0
end if

Save the service with the name "Volume down", and bind the service to F11.

Create another new service that takes no input. Give it a single action: Run AppleScript Enter the following AppleScript:

set x to get output volume of (get volume settings)
if x < 90 then 
    set volume output volume (x+10)
else
    set volume output volume 100
end if

Save the service with the name "Volume up" and bind the service to F12.

Goodbye volume overlay.

Solution 3:

If you just want a minimal HUD I've written one that works with mySIMBL. It just draws a bar in the top center of your screen. It may get more functionality in the future.

picture

https://github.com/w0lfschild/mySIMBL

https://github.com/w0lfschild/cleanHUD

Solution 4:

Simple solution:

/System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/Resources/Bezel‌ UI/

'Show Package Contents' on 'BezelServices.loginPlugin' to access through Finder

Rename “BezelUIServer” to something else (I just put a space at the front of it) - this will disable the volume overlay.