Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When changing the volume on a Mac, you get a big ugly gray bezel showing the change in volume. This is super annoying when (say) watching a movie. Is there any way to disable this?

enter image description here

share|improve this question
    
Thanks Plastonick, I had a problem with the F5 key that goes nuts occasionally and auto-presses.....and this causes the annoying key brightness OSD to show up. I disabled all the OSD and even if I was a bit worried of losing the volume and lcd brightness notification, I have to say using the mac without EVERY overlay is a much better experience....they disturb you from concentrating and there's no need for an OSD when I can cleary see the effects of the keys we're pressing.... – user121244 Apr 8 '15 at 23:31

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.

share|improve this answer
    
And thanks for the AppleScript blog posts, @Nathan Greenstein, that helped me to do this. I'm new to AppleScript. – Daniel Nov 3 '11 at 0:01
4  
Awesome answer! What a great idea. Just FYI, those checks are unnecessary; the volume will automatically bottom out at 0 and top out at 100. – Nathan Greenstein Nov 3 '11 at 0:26

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.

share|improve this answer
    
It won't let me modify it. It says that it is required by OSX. I'm using El Capitan 10.11. – Omega Nov 2 '15 at 20:23
    
It's because of System Integrity Protection. You can actually disable it if you want, but it's not recommended and can expose you to security threats. Also, changes in system files can be overridden by future updates. – pietrodn 6 hours ago

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.


To turn off bezels indefinitely for this user:

launchctl unload -wF /System/Library/LaunchAgents/com.apple.BezelUI.plist

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

To undo, change YES to NO, or:

sudo defaults delete /System/Library/LaunchAgents/com.apple.BezelUI Disabled
  • Note that this modifies system files, which may be disallowed in El Capitan (10.11).
  • 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.

share|improve this answer
    
From far the best answer! – Olivier Dec 9 '15 at 8:49
    
Thanks! Only problem is that my answer came 4 years later… – interestinglythere Dec 9 '15 at 10:38

There's no built-in method for doing so, but Googling brings up suggestions such as overriding the image used for it so that it's less obtrusive.

share|improve this answer
    
The post you link to suggests modifying images in a folder that doesn't exist under Lion. – Nathan Greenstein Oct 30 '11 at 17:12
    
Under Lion they are in /System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/Resources/Bezel‌​UI/HiDPI/ but the PDFs seem to be empty. – patrix Oct 31 '11 at 18:28
    
There is indeed a built-in method for doing so. See my answer below. – interestinglythere Oct 25 '15 at 23:33

I found the AppleScript solution didn't work for me, I wasn't able to bind the scripts to my volume up and down buttons (on my remote or keyboard). Due possibly to the much newer OS X.

Playing around however, I've found a solution which disables ALL Bezel services (anything that comes up in the grey translucent square; volume, screen brightness, keyboard brightness, etc.).

Working off patrix' information concerning where the relevant files are located, I renamed "BezelUIServer" to "mBezelUIServer" (although any rename is adequate, this one is easily reversed).

Find the file here: /System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/Resources/Bezel‌​UI/

Hope this can help you or any future googler's.

share|improve this answer

For anyone who's interested, this worked like a charm for me on Yosemite:

sudo /bin/chmod -x /System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/Resources/BezelUI/BezelUIServer
share|improve this answer
    
What does it do? – 1.21 gigawatts Aug 4 '15 at 5:39
    
It disables the volume control overlay, as the original poster wanted to do. It's just a simpler method and works in Yosemite. – manishie Aug 6 '15 at 16:05
    
I mean what is it doing technically? – 1.21 gigawatts Aug 6 '15 at 19:12
1  
You are removing the execute permission for all users for BezelUIServer. So it can't execute. – manishie Aug 6 '15 at 20:37
    
Why not just tell the launchd job manager to not start BezelUIServer in the first place? See my answer below. – interestinglythere Oct 25 '15 at 23:33

Don't use the volume keys. If you change the volume with the menu bar control the overlay does not display.

Note you only need to activate the menu item, and then the cursor keys can be used to manipulate it

share|improve this answer
    
Is there a way to do this easily from the keyboard? The question mentions watching a movie, and showing the menu bar isn't really an improvement over the bezel in that case. – Nathan Greenstein Nov 1 '11 at 22:04
    
^F8 will move focus to the status menus...cursor across to the volume control and up/down to adjust. Make sure this setting is enabled in System Preferences -> Keyboard -> Keyboard Shortcuts - Keyboard and Text Input – Kevin Nov 1 '11 at 22:11

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.