Force external display refresh rate

displayhardwarehdmi

I have a 27" screen which is connected to my mid-2012 MacBook Pro retina through a HDMI/DVI-D (HDMI on the MacBook Pro, DVI-D on the screen).

Before I was using a adapter DisplayPort+USB/DVI-D and I was able to get 60Hz refresh rate.

Now with the HDMI/DVI-D I have only 30Hz.

Is there any way to change (by forcing?) refresh rate to 60Hz?

Or is it a hardware limitation?

NOTE: I can't change the Refresh Rate value from System Prefs, the menu is disabled and the value is set to 30Hz.

EDIT: Here's the System Prefs window
enter image description here

Best Answer

cscreen

You can use the freely available Terminal app cscreen to force display settings. The app is pretty self explanatory.

brew cask install cscreen
cscreen -h
Usage: cscreen [-d <depth>] [-x <width>] [-y <height>] [-r <refresh>] [-s <display>] [-v] [-m] [-f] [-l] [-h]
           [-d <depth>]    : specifies the bit depth (bits per pixel)
           [-x <width>]    : specifies the width in pixels
           [-y <height>]   : specifies the height in pixels
           [-r <refresh>]  : specifies the refresh rate in Hz
           [-s <display>]  : specifies which display to use (defaults to main display)
           use a as the option to -s to specify the action on all displays
           [-i <displayID>]: picks a display based on CGDirectDisplayID (permanent per display)
           continue to use '-s a' for "all displays"
           [-v]            : display valid modes (use -s to specify display or nothing for the default)
           [-m]            : require an exact match
           [-f]            : forces settings (ignores safety mechanisms; USE AT YOUR OWN RISK)
           [-l]            : lists the current displays and modes
           [-p]            : sets the requested display to have the menu bar
           [-h]            : displays the usage

           Note: Using -p will change the display index so you will likely want to use -l again to show the current
           displays if you wish to use -p a second time.