4

I'm using an old Apple 30" Cinema Display via a series of dongles:

Apple Silicon M1 Mac connecting 30" Apple Cinema Display

The native resolution is 2560 x 1600 and works great.

It may require to holding Option when clicking "Scaled" to get that resolution.

Occasionally, after awaking from sleep, the monitor awakens in an ugly pixelated low resolution state. System Preferences shows 1280 x 800 as the max resolution.

At this point I unplug/replug the USB-C cable. The monitor goes back to native resolution after it reconnects.

I want to avoid digging behind my desk to unplug the USB-C / Thunderbolt cable.

Is there a Terminal command I can run to quickly "reconnect" all external displays?

I'm not interested in anything that would require me to shut down the Mac, reset the NVRAM, etc. What I want is a quick software alternative to manually unplugging the monitor.

low res state

6
  • May be this post can help you
    – Ptit Xav
    Commented Oct 5, 2021 at 14:46
  • related: apple.stackexchange.com/questions/423571/…
    – pkamb
    Commented Oct 5, 2021 at 21:32
  • I have a perhaps similar problem with a 2012 MacBook Pro connected to a monitor via an Apple dual link DVI adaptor. My setup sometimes fails after waking from sleep, showing sync issues on the monitor. I found I am able to fix it by using shift-ctrl-eject on the Mac to sleep the display, then wait a few seconds, then wake the display up again by pressing a different key. If this works for you, this would be a simple solution. (But I write as a comment, because I suspect this won't work.)
    – Ashley
    Commented Oct 6, 2021 at 23:23
  • (Continued...) One issue will be that there isn't an eject key on M1 Macs? support.apple.com/en-us/HT201236 says the key combination to sleep displays is "Control–Shift–Power button *"... but "* Does not apply to the Touch ID sensor", and the meaning of that is unclear to me.
    – Ashley
    Commented Oct 6, 2021 at 23:28
  • @Ashley just tested: Sleep from the Apple menu and then re-wake did not cause the list to refresh.
    – pkamb
    Commented Nov 2, 2021 at 21:11

2 Answers 2

1

Originally answered here -- This can be done by using uhubctl, which allows you to toggle and cycle power on individual ports for supported USB hubs.

You can use homebrew to install it as follows:

brew tap mvp/uhubctl https://github.com/mvp/uhubctl  
brew install uhubctl
1
  • It appears that this only works for the ports on USB hubs? Thanks for the link; will look into it.
    – pkamb
    Commented Oct 8, 2021 at 22:10
0

Have you tried holding down the option key while selecting "scaled"? This should give you a bigger list of options, which may include the one you want. Even if it does not, switching resolutions might be enough of a reset.

If neither of those work, you might try adding an EDID emulator to your dongle chain, giving your monitor a more reliable EDID.

2
  • When in the low-res state, holding option doesn't show the native-res option. I'll try switching res next time it happens to see if that kicks the resolution list. The EDID emulator is an interesting approach...
    – pkamb
    Commented Oct 8, 2021 at 22:11
  • Switching resolution (or rotation) does not cause the resolution list to refresh.
    – pkamb
    Commented Nov 2, 2021 at 21:11

You must log in to answer this question.

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