We have a Mac Pro running Lion that ha no screen attached. It is set up so it can be accessed using screen sharing (VNC). It works with a 800 by 600 resolution.

How can I change the resolution while being connected using screen sharing?

When I use display preferences to change the resolution while being connected using screen sharing, this is what happens: I get a dialog saying that if the resolution change didn't work, the system will revert it in 15 seconds. Then the screen freezes (nothing changes and it doesn't appear to react to clicks). Finally after 15 seconds it reverts to 800 by 600.

  • OS X is a "little too smart" and wants to sense out to the display to sense the resolution it sets before the login window process starts. A DVI plug might fool the GPU but I can't point you to one that works for sure. I don't think anyone has posted a way to trick the resolution, but you should have better luck than people with an attached display since the Graphics Card on the Mac Pro is far more alterable than a portable.
    – bmike
    Commented Nov 29, 2012 at 16:32

1 Answer 1


There is a very cool command line utility called cscreen. The developer has a number of versions available. Depending on how old your Mac is, you either want the PPC version, or the Intel version. If your Mac is newer than a 2006 model, you probably want the Intel version.

Once you have downloaded the disk image, double click the image to mount it, then copy the cscreen file to anywhere except the disk image. Now open Terminal. (You can search for it in Spotlight.) Once Terminal is open, you can run cscreen by navigating to it, then typing ./cscreen. For example, if you copied cscreen to your Desktop, you would navigate to the Desktop in Terminal by typing cd ~/Desktop. Once there, you would type ./cscreen.

To change the resolution, we first need to know what resolutions are possible. To find out, we can type ./cscreen -v. This should output something like this:

Terminal Output

Now we can choose a resolution. Assuming you want 32 bit colour depth, you can change to the resolution of your choice by typing

cscreen -i <DisplayID> -d 32 -x <width> -y <height>,

and replacing the parts enclosed in <> with the actual values. I haven't tested this with a headless system over VNC, so your milage may vary. The command line option -i <DisplayID> is optional, so if your VNC doesn't register a display ID you may still be able to change the resolution if you omit that part of the command.

  • Thanks for the suggestion. The possible resolutions listed by cscreen differ from those listed by system preferences. cscreen won't allow me to go above 800 by 600.
    – Szabolcs
    Commented Dec 3, 2012 at 15:22
  • 2
    Finally worked for me when I specified ALL of the options -i, -d, -x, -y, and -r simultaneously—just -i (or -s) with -r did nothing for me. (Whole command I ran: cscreen -i 2ac00003 -d 32 -x 1920 -y 1080 -r 60; the value 2ac00003 came from running just screen and guessing which one was the external monitor.)
    – doctaphred
    Commented Jun 10, 2016 at 19:22
  • 7
    Also, brew cask install cscreen is an installation option these days! :)
    – doctaphred
    Commented Jun 10, 2016 at 19:24
  • 1
    cscreen -d 32 -x <width> -y <height> -s a finally works for me on Sierra, Mac mini, headless, using Screen Sharing. Thanks!
    – kenchew
    Commented Jul 25, 2017 at 4:36
  • 2
    When I downloaded the utility on Catalina, it wouldn't let me run it at first because it's from an unidentified developer. I had to run xattr -d -r com.apple.quarantine cscreen first to bypass the security. After that though, this worked perfectly. Commented Dec 20, 2019 at 19:06

You must log in to answer this question.

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