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). :( Commented Feb 12, 2013 at 1:54
  • 2
    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
    Commented Mar 12, 2014 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
    Commented Aug 24, 2016 at 15:30
  • quite unbelievably, the solution seems to be "no it is not possible without heavy hacking"...
    – meduz
    Commented Jan 11, 2017 at 13:21
  • Now I'm using latest MacBook 16" 2019, and noticed for the first time that this is possible! I compared it with MacBook 15" 2018 the same OS version, and issue was still there. I think something has been changed in the hardware of 16". Screenshot: photos.app.goo.gl/yDVqDBMM19ehhSWX9
    – chmurson
    Commented Jun 23, 2020 at 13:42

10 Answers 10


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:

  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
    Commented Aug 29, 2016 at 4:27
  • Unfortunately, the files are no longer available on Mega. Commented Nov 13, 2016 at 8:40
  • Would you mind re-uploading? Looks like a useful solution, however the download links are broken. :/
    – cavalcade
    Commented Jul 10, 2017 at 15:03
  • @cavalcade i don't remember what it was, nor do I think it works on the new MacOS.
    – aeroxy
    Commented Jul 11, 2017 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
    Commented Jul 11, 2017 at 9:30

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.


Just found a solution that works or me - I use an HDTV as an additional monitor, and with headphones plugged in there I can route the audio to the external monitor. I can now switch between iMac speakers and headphones without unplugging the headphones.


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!


You can upgrade to a more recent Mac model. Later Macs that come with the Apple T2 chip treat the headphone jack and the internal speakers as separate devices. For a list of Macs with T2 chip, see the support article “Mac models with the Apple T2 Security Chip.”

Macs with M1 chip can also use the 3.5mm headphone jack and built-in speakers simultaneously.

The sound control center showing “External headphones” and “MacBook Pro Speakers” at the same time.


There's no supported way to override the switch that deactivates the internal speakers when a headphone jack is detected on 2011 through 2015 era hardware. The answer on modifying kernel extensions is amazing though if you like experimenting.

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)

  • The OS can over-ride this. Proof is that the external speakers chime when the computer reboots.
    – mankoff
    Commented Nov 23, 2021 at 15:24
  • I’ve made an edit to reference the supported answer and be clear which hardware the switch triggers the kernel extensions. New macs might benefit from a new question since sound routing goes through security / T2 and apple controllers now.
    – bmike
    Commented Nov 23, 2021 at 18:29

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
    Commented Dec 30, 2011 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. Commented Dec 30, 2011 at 15:19
  • Selecting the output device can be done more easily, by Option-clicking the speaker in the menu bar (at the right). Commented Dec 1, 2013 at 12:57
  • We Mac users do not know such thing as a task tray. Commented Dec 1, 2013 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. Commented Jan 18, 2012 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
    Commented Jan 18, 2012 at 23:21

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

  • 3
    It's not hardware based. It's an OSX feature.
    – aeroxy
    Commented Aug 27, 2016 at 20:25
  • If it were hardware based, the computer would not chime on the external speakers after a reboot.
    – mankoff
    Commented Nov 23, 2021 at 15:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .