Mac – Force the resolution on a headless mac mini server

headlessmac-miniosx-serverremote desktop

I have a Mac Mini server running Mavericks. It has no monitor connected. I use Remote Desktop on my laptop (also running Mavericks) for I/O to my server.

When I use Remote Desktop and go Full Screen I get a 1280×1024 screen sitting in my 1680×1050 screen. Is there any way to force the client (Mac Mini) to use a setting of 1680×1050 so I get a real full screen?

I tried holding down the option key while clicking on Scaled in Display -> System preferences. All I see is a new button in the bottom right that says detect displays. Clicking on it does nothing. The only resolution shown is 1280×1024.

My Mac Mini Server is a late 2009 with an Nvidia GeForce 9400 graphics card.

Best Answer

I'd like to offer an improved answer, that the author may consider for the question. The previous answer's AirDisplay drivers actually messed up my remote client, and left me with 16 virtual displays, all with the same information, where I couldn't click anything. Luckily I know how to navigate Activity Monitor with the Keyboard :-) .

I found the following to work perfectly, assuming that you are using Apple Remote Desktop:

  • Download Display Menu (Free on Mac App Store)
  • Install the app, and for my use cases, 1680x1050 was the proper resolution.
  • Your screen will go black and you will be 'locked out', despite the resolution properly switching.
  • Your screen will black out. Many recommend something similar to the following Terminal commands. I DO NOT recommend the following:

    sudo ps auxwww | grep loginwindow | grep -v grep | awk '{print $2}' | xargs sudo kill -9

  • The reason the last line does not work is because it actually terminates your login session. That forces the screen resolution to revert (in my case, back to 1280x1020), and you'll be back where you started.

  • Instead, use the following command over Apple Remote Desktop or via SSH:

    killall ScreensharingAgent

  • NOTE - if using Apple Remote Desktop's Send Unix Command, instead of using sudo, click the radio button to 'Run as User', and just enter root.

This command terminates the Screen Sharing session, which at its core is what Apple Remote Desktop uses. It retains the logged in session, which retains the screen resolution you set with Display Menu in earlier steps.

  • 2nd Note - if your dock is screwed up, simply send killall dock

I have yet to log out of my current session on my client machine, so this may only be a temporary fix. However, its the only way I have found that satisfies my OCD with proper screen real estate consumption.

Some things that helped me find this answer:

  1. Alternative to this answer on SuperUser, doesn't accomplish what I wanted, but good to have for reference material
  2. MacWorld Hints, which held the elusive answer!

Some alternatives that others have presented below, in case this answer does not work for your system:

  1. QuickRes App
  2. SwitchRexX
  3. Resolutionator