Monitorcontrol: App does not work with multiple identical monitors

Created on 25 Sep 2018  Β·  45Comments  Β·  Source: MonitorControl/MonitorControl

Unexpected behavior w/ 2 identical BenQ BL3201PH monitors connected via DisplayPort on a GTX 980ti, running 10.13.6. App is only able to control DDC on one of the two monitors. When the working monitor is the primary "Mac" monitor as chose in Display Preferences in the Arrangement tab.

Disabling the primary monitor in MonitorControl settings does not fix this issue. When I disable the "main" working monitor in Monitor Control preferences, adjusting the other monitor brightness causes the main monitor brightness to then change. Same applies for the brightness sliders in menubar. Has anyone else experienced this?

I've tried changing the system monitor names with no luck, no change in name in the MonitorControl app. Will keep trying other options.

screen shot 2018-09-24 at 10 14 41 pm
screen shot 2018-09-24 at 9 14 27 pm

Minor Blocked Bug

Most helpful comment

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

All 45 comments

I have same issue. two identical monitor (alphascan 5K27), connected to rx480(egpu)

It appears most DDC control apps on Github have this same issue. It must be a root setting in ddctl (which all Mac apps that control via DDC use as far as I can tell) that is causing the issue - https://github.com/kfix/ddcctl

Edit: In fact, this is an unresolved issue on the ddcctl Github. If we can fix there, we should be able to fix here. See: https://github.com/kfix/ddcctl/issues/17

Hi, is this still an issue with the latest version ?

I am able to control brightness on multiple monitors in latest version.

I am able to control brightness on multiple monitors in latest version.

This issue does not relate to multiple monitors - it relates to identical monitors. Unfortunately, in the latest version of monitor control, I still have this issue with my two identical displays. I believe the root problem is with ddcctl and further down the line Apple's APIs. I would recommend anyone having this issue post here https://github.com/kfix/ddcctl/issues/17

Ok sorry for the lack of helpful feedback on my part. In case it matters I am using dual identical P2715Q monitors without any issue.

Not a problem at all. If your dual monitor setup works, it appears the problem is on my end. I will review tomorrow.

On Jun 3, 2019 at 7:59 PM,

Ok sorry for the lack of helpful feedback on my part. In case it matters I am using dual identical P2715Q monitors without any issue.

β€”
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub (https://github.com/the0neyouseek/MonitorControl/issues/49?email_source=notifications&email_token=AAWVY7532IM6EHKKSPUBNADPYXEA7A5CNFSM4FW7FYIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODW3FTAY#issuecomment-498489731), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAWVY726PE2ZQD36KLSFUELPYXEA7ANCNFSM4FW7FYIA).

I am experiencing the same issue with two Samsung U28E590 monitors both connected via DisplayPort to a Radeon RX 580. The brightness controls only work for one monitor but not the other.

Same for me with two BenQ GW2760HL. It doesn't look like there is any progress on kfix/ddcctl/issues/17. Is it possible to override vendor or model for a specific monitor to trick ddcctl?

ddcctl is no longer used internally. No point to link to that specific issue anymore since it's already been linked multiple times.

We now use DDC.swift. But I think the source code is based on ddcctl so it's probably the same underlying issue.

Same issue with dual viewsonic vp2780-4k monitors. Can only adjust the second display by turning the primary one off. On the latest version.

I have just noticed the very same issue using 2 x BenQ PD2700Q monitors using integrated Intel HD4000 graphics. Audio over DisplayPort is only possible via one out of the two ports. I don't know if that will have something to do with it.

Same issue, 2 hp monitors. I can see the 2 devices in "monitorControl", but it does not matter which one I choose it always changes the settings for the "main" one

We need a hero with carthage experience.

Same issue, but this app works for brightness of my identical displays: https://github.com/fnesveda/ExternalDisplayBrightness/

They did a fix for the identical monitors: commit

If anyone's interested in a solution, I've adopted the fix mentioned above to DDC framework which is used in MonitorControl. It works with my identical BENQ displays, didn't test with anything else. Here's the fork.

If you want to try it out, update the Cartfile.resolved to point on github "leo150/DDC.swift" "be2d2a3f5662b3d529e5ecd13b9c97fadec46d3b"

I can provide a full test build with your fork included soon in here if you want. That way if more people can confirm it works for them you can open a PR in DDC.swift.

I can provide a full test build with your fork included soon in here if you want. That way if more people can confirm it works for them you can open a PR in DDC.swift.

I would be interested in trying this; I have identical BenQ PD3220Us that are exhibiting this issue.

@JoniVR sounds good. Thank you.

I just tested it on my own system (I only have 1 external monitor) and it's no longer getting detected, I think you'll probably also have to add a fallback like implemented in the other framework.

Anyways, I archived the build anyways so other people can already test and maybe even use it too if it works until a fix is available.
MonitorControl.app.zip

The .app inside the zip should be a signed and notarised test build.

I've pushed a fallback, could you test it please?

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

Does not work for me. Using @JoniVR 's updated build, it detects both displays, but both sliders control only the first monitor in a DisplayPort chain. If I can run any commands or gets logs to help debug, please advise.

IMO the best option would be to debug the DDC.swift on your computer. The workaround is very fragile because it uses a regex to extract the unit number. I don't have any knowledge about ddc, but I believe that this kind of solution was used because it isn't possible to extract the unit number with an api call. As result, the regex should be updated based on displayLocation of your display in the workaround.

I have two VA2252 connected to a 5700xt eGPU, and none of the builds above worked for me. Also, to me it seems like the IODisplayLocation values didn't include the unit numbers at all:

Display 0 (unit 8): IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/TRP0@7/IOPP/PXSX@0/IOPP/pci-bridge@1/IOPP/pci-bridge@0/IOPP/pci-bridge@0/IOPP/display@0/AMDRadeonX6000_AmdRadeonControllerNavi10/ATY,RadeonFramebuffer@0/display0/AppleDisplay
Display 1 (unit 9): IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/TRP0@7/IOPP/PXSX@0/IOPP/pci-bridge@1/IOPP/pci-bridge@0/IOPP/pci-bridge@0/IOPP/display@0/AMDRadeonX6000_AmdRadeonControllerNavi10/ATY,RadeonFramebuffer@1/display0/AppleDisplay-Portrait

I ended up storing the CGDirectDisplayID and the service port number in a map, and force the DDC.servicePort(from:) to skip the current port if it was matched to another CGDirectDisplayID. This worked reasonably well for me as I don't care if the NSScreen and the service port are mismatched, as long as I can control each display.

Same result as @ndrwstn here with 2 ViewSonic VP2468.

Same Issue Here, 2 Viewsonic VX3276-QHD

Screenshot 2020-07-18 at 22 59 54

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

@JoniVR Unfortunately the version does not work for me. My setup: https://github.com/MonitorControl/MonitorControl/issues/225

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

@JoniVR This build works with my dual Samsung U28E590 displays. Thank you!

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

This version works great for me!

Using an AMD RX 590 and two ViewSonic VG2453 monitors!

image

(I don't know why macOS reports my 590 as a 580)
image

UPDATE:

This new build works good well with Big Sur Beta 9

image

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

This also works for me with three monitors using the RX 580!

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

This unfortunately doesn't work on my setup. Only one of the two monitors reacts to changes in brightness. This is running two LG 27UL650-W 4K60 monitors together with the integrated display of a late 2019 MacBook Pro equipped with a Vega 20 through a Caldigit USB-C (Thunderbolt 3) Pro Dock.

Capture d’écran, le 2020-09-15 Γ  22 49 29

Capture d’écran, le 2020-09-15 Γ  22 52 57

Just found this project and unfortunately have this issue. Using the build from this comment the brightness is still only changing on one monitor. In my case, I have two ViewSonic VP2771 connected via USB-C to separate ports on my MacBook Pro (16-inch, 2019).

Screen Shot 2020-10-02 at 9 07 15 AM
Screen Shot 2020-10-02 at 9 04 51 AM

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

this works for me too (2x BenQ PD2720U, daisy-chained via TB3)

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

This one works for me as well with 2x Lenovo L24q-30 and an AMD RX 570. Thanks!!

Unfortunately, the updated build is not working with my configuration. I have tried with two and with three identical monitors, in every combination. Each tweak always results in all brightness sliders only affecting one monitor.

Screen Shot 2020-10-14 at 6 25 02 PM

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

This version (as well as 2.1.0) still has the same broken behavior on my identical Lenovo L24q monitors. Only one monitor reacts to the brightness changes.

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

Unfortunately, the updated build is not working with my configuration. The brightness is still only changing on one monitor. In my case, I have two Asus Proart PA24A connected via USB-C to separate ports on my MacBook Pro (15-inch, 2018).

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

This is perfect! Thank you!

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

Awesome, confirmed working on dual ASUS PB328Q connected via TB3 to Mac mini (2018) on MacOS Big Sur 11.0.1

Working now, nice work! I'm exporting a new build, will update answer once done πŸ™‚

It would be nice if as many people as possible can test this on their respective setups so we ensure it works for everyone (or at least more people than before).

Updated build:
MonitorControl.app.zip

Unfortunately, this did not work on my set up. The app will control the brightness of both the iMac and primary external monitor, but not the secondary external monitor.
Side note: The brightness adjust icon appears on the screen of all monitors, but the brightness is only changed on 2 of the 3.

Set up:

  • iMac 2017
  • 2 external Samsung 28" LU28R55

Did not work for me either:

Macbook Air M1
USB-C connection to LG 4K Display

@leo150 Given that your DDC.swift modifications seem to help for some people (and I don't think it'll break anything for existing setups), could you open a Pull Request to DDC.swift? I'm not affiliated with it in any way (@reitermarkus wrote it), but it's used under the hood so It'd be best submitting a PR there.

@leo150 I was trying to figure out why some (my) dual monitors don't work while others do and I got into my com.apple.windowserver.plist. It shows a multitude of (duplicate?) displays with the same IODisplayLocation. However, I only have three: 2 x BenQ PD3220U and a MBP16 (with the lid closed). SystemProfiler correctly shows only two displays though.

I was trying to debug DDC.swift as you suggested when I saw the recent activity, but I didn't really get anywhere. However, I thought this might be interesting to someone who knows what they are doing?

windowserver.txt
SPDisplaysDataType.txt

Was this page helpful?
0 / 5 - 0 ratings