kfix / ddcctl

DDC monitor controls (brightness) for Mac OSX command line
GNU General Public License v3.0
1.85k stars 151 forks source link

Thunderbolt input source? #67

Open kelwakil opened 4 years ago

kelwakil commented 4 years ago

Is there an input value that corresponds to a thunderbolt in port? I have an LG monitor connected to a MacBook via thunderbolt and can't figure out how to switch to that input. The two HDMI inputs work perfectly but I don't know what value to use for thunderbolt and when I try to query the source while it's active on the monitor it doesn't return a value. Any help would be appreciated, thanks so much.

jonnyapps commented 4 years ago

I have the exact same issue. I'm on a Macbook Pro 2019 16 inch with an LG 27UK650W monitor. Macbook is connected via Thunderbolt/USB-C Nintendo Switch is connected via HDMI1

I can switch to my Nintendo (HDMI 1), but I can't then switch back or change brightness etc.

PS Thanks for the amazing work

eadorin commented 4 years ago

This may be anecdotal for you all, but here's my situation:

LG Ultrawide Monitor connected to iMac via Thunderbolt; Windows Desktop via HDMI 1.

From my iMac, I can:

master  → ./ddcctl -d 1 -i \?                                                                                                                                                                           [23:46:03]
D: NSScreen #459105436 (3440x1440 0°) 109.00 DPI
I: found 1 external display
I: polling display 1's EDID
I: got edid.name: LG ULTRAWIDE
D: action: i: ?
D: querying VCP control: #96 =?
I: VCP control #96 (0x60) = current: 4, max: 3

In theory, this means that setting the value to '4' switches it to Thunderbolt. Indeed, setting it to 4 does nothing but flicker the screen.
I can change the other inputs using the following values:

1 -- HDMI 2

3 -- HDMI 1

17 -- DisplayPort

Setting the value of the 0x60 register on Windows using various utilities works fine, but setting the value to 4 doesn't seem to bring it back.

It makes me wonder if there's something strange about Thunderbolt as an input. Notice it detects a max of 3 but has a value of 4 ... what's that all about?

Anyway, just though tI'd drop in my little bit of research.

ps. LG Monitors are apparently notorious for not returning the correct (or easily parseable info), so I ran a batch file on the Windows computer that scanned 1-255 dec/hex changing all inputs and it only discovered 1,3,17 ...

pps. Based on my testing, the LG will not respond to any commands/function calls unless it is being done from the active video connection.

jonnyapps commented 4 years ago

pps. Based on my testing, the LG will not respond to any commands/function calls unless it is being done from the active video connection.

Thanks for all of that info and yep, I can't get it to do anything once it's switched away from my Macbook. Querying it gives No data after 10 tries!

Also, less interestingly, if I switch it from USB-C to HDMI 1 using ddcctl, whilst it shows the correct input image, it still thinks it's on USB-C input in its OSD.

nathang21 commented 4 years ago

Similar monitor here, but I was able to get the Thunderbolt port working with 15. Model: LG 34UC98-W HDMI 1 = 17 HDMI 2 = 18 DisplayPort 1 = ?? (Unable to find) Thunderbolt 1 = 15 Thunderbolt 2 = N/A (Not in use but not actually a second input. This is only for daisy chaining so I believe 15 would work as well)

I have been unable to get DisplayPort 1 to work no matter what I try, can't figure out what number it is or will support. I've tried the many of them from 0-18

ddcctl -d 1 -i \?
D: NSScreen #458624711 (3440x1440 0°) 109.00 DPI
I: found 1 external display
I: polling display 1's EDID
I: got edid.name: LG ULTRAWIDE
D: action: i: ?
D: querying VCP control: #96 =?
I: VCP control #96 (0x60) = current: 0, max: 18

Edit: I ran ControlMyMonitor on Windows (Input: DisplayPort 1) to debug and it shows the following:

Input: 60
CurrentValue: 0
MaxValue: 18
PossibleValuies: 0,15,16,17,18

So it looks like 0 is supposed to be DisplayPort, but switching to that doesn't actually work.

pjanx commented 2 years ago

I am seconding 0x15 with a BenQ monitor. HDMI and DisplayPort are in the MCCS 2.2a specification.

tigattack commented 2 years ago

USB-C is input 49 on my Lenovo display.

Ding998 commented 1 year ago

Monitor Model: AOC U27U2DS HDMI1 = 17 HDMI2 = 18 DP = 15 (If there's no DP input and 'Input Select' is on 'Auto', the monitor will automatically switch to Type-C input - this may be a workaround for switching to Type-C input.) A possible value of 0 for 'Input Select' is detected, but nothing happens when it is set to 0. BTW, on Type-C connected computers, the software interface is blank.

upholdjd commented 1 year ago

What should you do if ControlMyMonitor.exe doesn't find an input switch option with your monitor? I have a aw3821dw

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwikqtXZmLqAAxVQhYkEHWWHCR8QFnoECBMQAQ&url=https%3A%2F%2Fwww.dell.com%2Fen-us%2Fshop%2Falienware-38-curved-gaming-monitor-aw3821dw%2Fapd%2F210-axvg%2Fmonitors-monitor-accessories&usg=AOvVaw1n-L6nuU-rowH2_mH1K20X&opi=89978449

HappyClint commented 8 months ago

I have an aoc monitor and find the same problem,I try all code ,but can't switch to type-c. ps:I use dp and type-c port.