Ask Different is a question and answer site for power users of Apple hardware and software. Join them; it only takes a minute:

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

I had a Dell 21.5" monitor, which was previously connected to a Windows PC via its DVI port, which has no problem with DDC/CI which allowed me to control brightness and Contrast of the attached display via Windows.

My question is: through Apple's adapter, can I control a non-Apple display within System Preferences?

share|improve this question
For me, a similar setup does not enables me to control the brightness. – Max Ried Aug 17 '12 at 9:09
@MaxRied wow, that's encouraging LOL – Shane Hsu Aug 17 '12 at 9:13
Is DDC/CI listed as a feature on your Dell Display? – MrDaniel Aug 17 '12 at 13:53
@MrDaniel Yes, it is listed as a feature. – Shane Hsu Aug 17 '12 at 15:19
up vote 23 down vote accepted

I wish it were possible too, but the short answer is no, you can't use System Preferences to control the brightness of an external display via DDC/CI.

It might be feasible to write a program that can adjust the brightness of your external display, but it's by no means a sure thing. Read on if you want the gory details…

After doing a fair bit of research, I'm pretty sure that Apple doesn't use DDC/CI to control the brightness of displays, either internal or external.

  1. The brightness of Apple Cinema Displays can only be adjusted when the USB interface is plugged in. With DDC/CI this would not be necessary.

  2. Apple provides (though apparently does not document) an interface to display brightness through their IOKit library, specifically in ioGraphicsLib:

    …but this interface does not seem to work reliably for external displays:

    ( I read up on this a few years ago and while I can't now find a supporting link, I seem to recall that display brightness (at least for internal displays) may be delegated to Apple's System Management Controller (SMC), which has responsibility for all power-related functions: fan speed, monitoring battery level, etc. I wouldn't be surprised if Apple had implemented their own I²C control interface between the SMC and the internal display - but this is pure speculation on my part. )

  3. It is possible to communicate with/control external displays using DDC/CI and custom software, but support for this has been broken more than once in the OS X era. DDC/CI support is also dependent on the graphics chipset and drivers used.


    As of Mac OS 10.8.0, support for monitor connunications[sic] via DDC/CI is not functioning on some Macs, including systems with DVI video outputs, and when using a miniDisplayPort to DVI cable or adapter. NEC is working with Apple to fix this issue in a future Mac OS update.

  4. DDC/CI works over I²C. Apple's IOKit library includes an I²C interface which should make it possible to write a display control program, but there are a few reports that this does not work reliably (specifically, values can be written to the monitor but not read, so you can't tell what the current brightness is):

So that's about the size of it, as far as I can tell.

If you are (or you know) an Objective-C developer, I did find a project on GitHub that you could have a look at tinkering with – however as mentioned above, even assuming the code is OK, it might not work for your combination of monitor, Mac and display drivers.

share|improve this answer
I appreciate the gory details. Thanks for doing so much organizing and link curation on this. – bmike Nov 18 '12 at 22:36
Thank you so much! – Shane Hsu Nov 23 '12 at 1:52
Thank you so much for the github project who worked amazingly well! I’ve looked this for years! I’ve got a Dell u2311h on a 2011 MacBook Pro with OS X 10.8.4. – user53454 Jul 17 '13 at 20:06
@user53454 -- How did you get it to work? – Ze'ev Feb 9 '15 at 4:13
Note for display link users, the execution of the app will freeze the displays and you'll have to forze reboot :( – sucotronic Jun 13 at 9:35

You can also try this app:, though it allows to adjust brightness only on main display(one where menu bar appears).

I've tested it on my MacBook Pro + Dell U2412M, worked fine.

share|improve this answer
Looks promising, but for the record nothing happens when I launch it on OSX 10.7.5 on MBP '12 with a HP ZR2440w over Mini Displayport. – Erika Jan 14 '13 at 9:02
Doesn't do anything for me either. Doesn't even appear in menubar. 10.7.4. @Victor -- what OS are you running? – Ze'ev Feb 20 '13 at 7:18
Unfortunately this froze up my machine (mini, 10.8.current, dell 24" monitor via displayport). – Dan Pritts Jun 18 '13 at 3:41
This froze my Mac. No offense, but I suggest any future reader take extreme caution when trying this out. It's not malicious of course, but save your work before opening this. – Shane Hsu Jan 12 '14 at 17:11
Any news on this? – Ze'ev Feb 5 '15 at 20:16

Apple software doesn't support any means to control PC monitors beyond sleeping them.

The hardware adapters will pass DDC commands through if you can send them by other means.

I use many DisplayPort/Thunderbolt to DVI adapters as well as USB-to-VGA with my ddcctl program.

Try running ddcctl -d 1 -b ? to test whether your 1st monitor's brightness can be polled.

Then to increase the 1st monitor's brightness by 5 "ticks" (the scale varies from monitor mfg/model):

$ ddcctl -d 1 -b ? -b 5+
2015-06-19 11:46:14.081 ddcctl[39871:4302046] I: found 2 displays
2015-06-19 11:46:14.081 ddcctl[39871:4302046] I: polling display 1's EDID
2015-06-19 11:46:14.102 ddcctl[39871:4302046] I: got LG ULTRAWIDE
2015-06-19 11:46:14.103 ddcctl[39871:4302046] D: command arg-pair: d: 1
2015-06-19 11:46:14.103 ddcctl[39871:4302046] D: command arg-pair: b: 5+
2015-06-19 11:46:15.108 ddcctl[39871:4302046] D: querying VCP control: #16 =?
2015-06-19 11:46:15.212 ddcctl[39871:4302046] I: VCP control #16 = current: 42, max: 100
2015-06-19 11:46:15.213 ddcctl[39871:4302046] D: relative setting: 42 + 5 = 47
2015-06-19 11:46:15.213 ddcctl[39871:4302046] D: setting VCP control #16 => 47
share|improve this answer
This is awesome. Thanks so much. – Geoff Jan 11 at 21:49
Thanks! I do need to reiterate the warnings though, ddcctl (and other ddc apps) can crash OSX, don't use it with unsaved work. – kfix Jan 11 at 21:53
I like to keep my monitor at 0 brightness (super dim), but when people come and look at my screen they get annoyed by this, so now I have a way to easily bump to maximum for them. I used automator to make a (and a minimum one, too). – Geoff Jan 11 at 22:49
Sorry, how do I install this? I downloaded zip from github, unzipped, and did a make install from within that folder, but it throws up a bunch of errors: – Ze'ev May 2 at 9:36
UPDATE: it does work despite the warnings. – Ze'ev May 2 at 9:46

I have a Thunderbolt monitor and Macbook Air. By using CTRL-F1 and CTRL-F2 the monitor's brightness can be adjusted.

share|improve this answer

Your Answer


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.