Take the 2-minute tour ×

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.

share|improve this question
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 Nov 29 '12 at 16:32

1 Answer 1

There is a very cool command line utility called cscreen. You can download it from here. 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.

share|improve this answer
I'm going to try this, thanks for the suggestion! –  Szabolcs Dec 3 '12 at 14:39
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 Dec 3 '12 at 15:22
That's a shame. I wonder if you could plug in an external monitor, change the resolution, then remove the monitor? –  daviewales Dec 3 '12 at 22:06
I guess it's worth a try to change to a non-default resolution with a monitor attached. When I attach it, the machine does switch to the native resolution of the monitor, but I'll try to set it to a lower one this time and then unplug. –  Szabolcs Dec 4 '12 at 5:08

Your Answer


