26

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?

  • 1
    For me, a similar setup does not enables me to control the brightness. – Max Ried Aug 17 '12 at 9:09
  • 1
    @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
34
+50

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.

    From http://update.necdisplay.com/spectraview/readmemac_v1_1_12_1.html:

    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.

  • 4
    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 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? – Dan 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 '16 at 9:35
  • It's not about Apple. There are a lot of 3rd party apps that can control brightness via DDC/CI (even for macOS). The only issue that if use connectors to connect monitor that it's not going to work. E.g. it works ok if I plug VGA cable directly to D-Sub port of motherboard. If I plug it via connector (DVI-VGA) to DVI-D port of motherboard then it doesn't work items.s2.citilink.ru/1062424_v01_b.jpg – user25 Mar 17 at 15:32
12

Disclaimer: I compiled this app myself(although I'm not the author). It may freeze your machine.

You can also try this app: https://github.com/superduper/BrightnessMenulet, 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.

  • 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? – Dan Feb 20 '13 at 7:18
  • 3
    Unfortunately this froze up my machine (mini, 10.8.current, dell 24" monitor via displayport). – Dan Pritts Jun 18 '13 at 3:41
  • 4
    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? – Dan Feb 5 '15 at 20:16
7

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 edid.name: 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
  • 2
    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 '16 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 MaximumBrightness.app (and a minimum one, too). – Geoff Jan 11 '16 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: pastebin.com/aLpjLhdH – Dan May 2 '16 at 9:36
  • 1
    UPDATE: it does work despite the warnings. – Dan May 2 '16 at 9:46
  • what about "DVI-D VGA" converter? items.s2.citilink.ru/1062424_v01_b.jpg – user25 Mar 17 at 15:35
1

It's an old topic, but you I'll still post it here, just in case.

I'm not sure about specific details of TB-to-DVI adapter, but in general you CAN control some monitors. There's a great little free program called MonitorControl by the0neyouseek, it gives you option to control brightness, contrast, and even volume on external monitors. I personally tested it with Samsung P2450, and it worked without problems at all.

-1

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

You must log in to answer this question.

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