I have a set of surround speakers, connected to my iMac through the headphone jack. I use a switch to control what goes to the speaker set (iMac, iPod, or MacBook/aux). So that I don't have to be constantly unplugging and replugging, I leave the audio cable in the iMac's audio port. This means that when I'm listening to something from another source, I can't hear anything from the iMac unless I unplug the cable.

Is there a way to force sound to come out of the internal speakers, even if there's something in the audio out port?

  • 1
    I think you can't Nathan. You will have to get an external audio card or a USB headset (which has its own audio card). :( – Martin Marconcini Feb 12 '13 at 1:54
  • 1
    I'm tempted to bounty this - there's got to be someone that's hacked their firmware or figured how to ignore the hardware switch by now, no? Adding hardware solves the issue and returns control to the sound control panel, but a native solution would be better IMO. – bmike Mar 12 '14 at 16:25
  • I have similar question since I only have a bass on my imac and I like the internal speaker to perform for the treble. – aeroxy Aug 24 '16 at 15:30
  • quite unbelievably, the solution seems to be "no it is not possible without heavy hacking"... – meduz Jan 11 '17 at 13:21

Pretty sure it can't be done with the built-in headphone jack. What you could try is getting a USB soundcard (one example, but there are lots out there for $20 or so) to plug your headphones into. That should give you two options in the sound preferences.

PS, if you option-click the speaker icon in the menu bar, you get a quicker way to swap inputs/outputs than going to the sound preference pane every time.

There is a way to do this but it is difficult and probably not for every user. What happened is Apple does have a "hardware" switch built in, which sends a signal to disable/enable the internal speaker. Because Windows or other OS simply doesn't have such function built in, it will just be a weird signal that does nothing.

Option 1

I cannot disable this signal, it probably requires some highly skilled kext modifier, but I found a way to reset the internal speaker after it gets disabled. It will not stick after a reboot, so you have to do it every time after the booting.

  1. Backup your AppleHDA.kext in /System/Library/Extensions/

  2. Show package content of this file, go to Contents/Plugins then remove AppleHDAHALPlugIn.bundle.

  3. Reload the kext by running

    sudo kextunload /System/Library/Extensions/AppleHDA.kext
    sudo kextload /System/Library/Extensions/AppleHDA.kext
    ps aux | grep 'coreaudio[d]' | awk '{print $2}' | xargs sudo kill
    
  4. Recover the backup file AppleHDA.kext (or your computer won't boot next time you reboot).

Note, if you unplug the headphone, it will still show in your audio device panel. Tested working on a retina iMac. Not working on a retina Macbook (no audio afterward).


Option 2

I have a better way to do this (this method no longer works for 10.12.x+).

  1. Download the following files:
    https://mega.co.nz/#!js4gmZbI!xNFCxGT5zPYCS8RLtxk4xZQxNk0oP2sH8RjXbBqgmE0
    https://mega.co.nz/#!ulw13BzD!Y1k564bTSxZrePpPL-si5h65XULwnYeEMwH-l0lSLfI

  2. Open up the first download, and drag the second download into it. It will take 10 minutes to install. Then restart your system.

You will not have line out and internal speakers both in your sound panel at all time, even when your headphone is not plugged in.

Tested on macOS 10.11, iMac Retina and not working on MacBook Pro Retina.

  • Wow that's pretty cool! – Mint Aug 29 '16 at 4:27
  • Unfortunately, the files are no longer available on Mega. – Benjamin B. Nov 13 '16 at 8:40
  • Would you mind re-uploading? Looks like a useful solution, however the download links are broken. :/ – cavalcade Jul 10 '17 at 15:03
  • @cavalcade i don't remember what it was, nor do I think it works on the new MacOS. – aeroxy Jul 11 '17 at 3:07
  • :sad panda: pity because this was a great solution. Always bugged me when I read 'it's hardwired'. No it's just enforced on the OS level – cavalcade Jul 11 '17 at 9:30

There's no documented way to override the switch that deactivates the internal speakers when a headphone jack is detected.

The switch that detects whether a 3.5mm headphone jack or mini-toslink is inserted removes the internal speaker from the sound control panel. (Probably at a low enough level that the OS itself cannot over-ride this control.)

Since there isn't a widely known firmware hack, OS hack or hidden preference to disable this detection, you will need to add a USB to headphone device to avoid losing your internal speaker option while a headphone is plugged in.

As long as you don't plug into the Apple port, you can switch amongst the internal and all other output sources using the normal tools (or whatever third party software option you prefer)

I have been trying to get this to work. After moving from my Mac Pro which has speakers and headphones plugged in and I simple switched between them (and even internal speakers) to a new iMac where I have to keep unplugging the headphones to get sound through the iMac speakers. What I'm about to order is a simple USB Sound Card dongle. Small thing that gives an audio jack via a usb, this should then allow me to alt+click the volume icon and switch between built in and headphones as it will see them as separate outputs.

I use Boot Camp to run Windows 7 on my iMac 27" mid-2011. When in the Windows mode I have the choice of internal speakers or headphone jack in my audio output, even although I the headphones permanently plugged into the headphone jack. So Windows have it solved how come Mac can't - after all it's all the same hardware!

The switch that is used is hardware based, so no way to override it except with an audio USB device, or: bluetooth speakers!

  • 1
    It's not hardware based. It's an OSX feature. – aeroxy Aug 27 '16 at 20:25

You can change the audio (output and input) directly on the Sounds Preference panel. There's an output tab that includes a selector for selecting the output. enter image description here

If you want something a bit more convenient I used a free program called Audio Switcher from Spike Software. It sits in the task tray and offers quick access to the same settings you see in the Sound Preferences pane.

  • This is my current setup on Lion. I recall that I've been using this same software back to 10.5, but I don't have anything but the Lion machine to test on. – rwr Dec 30 '11 at 13:09
  • 5
    I'm afraid this doesn't work. As soon as you plug headphones in, the internal speakers disappear from the list. Yours stay, because you have a USB headset. – Nathan Greenstein Dec 30 '11 at 15:19
  • Selecting the output device can be done more easily, by Option-clicking the speaker in the menu bar (at the right). – Nicolas Barbulesco Dec 1 '13 at 12:57
  • We Mac users do not know such thing as a task tray. – Nicolas Barbulesco Dec 1 '13 at 12:57

A faster way to do what @rwr suggested is to option click on the audio icon in the menu bar and select Internal Speakers under Output.

enter image description here

  • 7
    Unfortunately, once I plug in the headphones, Internal Speakers disappears from the list. – Nathan Greenstein Jan 18 '12 at 23:18
  • Ah. I believe Mac OS X treats iMac audio ports the same way as portable audio ports. I have a Mac Pro which allows you to differentiate. I do not know of a native way to do this. I'll do a little research and see if anything comes up. – Matt Love Jan 18 '12 at 23:21

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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