For customers who are running Mac OS X 10.9 (Mavericks) or newer in a Virtual Machine, you may have noticed that you can no longer set a custom display resolution beyond the default 1024x768 in either VMware Fusion and vSphere, regardless of the amount of video memory that has been allocated. The reason for this behavior is that Apple has changed the way in which it remembers previously used modes and would automatically fall back to this versus retaining the custom mode using the Display Preferences. Given this is a non-trivial fix, VMware Engineering has been working hard on a providing a workaround which would still allow users to set a custom resolution from within the GuestOS.
The workaround that has been developed is a tiny standalone command-line utility called vmware-resolutionSet which runs within the Mac OS X Guest and allows you to configure a custom display resolution. You will need to ensure you have VMware Tools installed and running before you can use this utility. As of right now, customers can get a hold of this utility by filing an SR with VMware Support and referencing PR 1385761. Although this tool has not been officially released and must go through the standard release process, the plan is to include it in a future update of VMware Tools and will available for use with both VMware Fusion and vSphere.
UPDATE (12/11/15) - Thanks to reader @elvisizer, it looks like the latest VMware Fusion 8.1 release now includes an updated version of VMware Tools (10.0.5) which includes the vmware-resolutionSet utility. You can find it under '/Library/Application Support/VMware Tools'. One thing to note is that there is a known issue right now for VMware Fusion 8.1 related to NAT and port forwarding, you may want to hold off on upgrading if you rely on this feature.
The syntax for the vmware-resolutionSet utility is pretty straight forward, it accepts a width and height argument. Make sure to use "sudo" if you want the display resolution to persist through a system reboot. For example, to set a 1920x1080 resolution, you would run the following command:
./vmware-resolutionSet 1920 1080
Note: Ensure you have sufficient video memory configured for your VM for larger display resolutions. In the example above, I have 16MB configured for my Mac OS X VM which would give you a max resolution of 2560x1600.
If everything was successful, you should see that both the "Requested resolution" and the "Effective resolution" match in the output. If output does not match, it most likely means you need to increase the video memory and you can refer to this VMware KB 1003 for more details. If we take a look at our Mac OS X VM, we should now see that our new custom display has taken effect. Below is a screenshot of a Mac OS X 10.11 (El Capitan) running on vSphere 6.0 Update 1 configured with a 1920x1080 resolution.
One other thing to note is if you plan on using higher display resolution than 2560x1600, you may need to configure some additional VM Advanced Settings due to use of framebuffers that are larger than 16MB. In this case, you would need to also add the following two advanced settings to the VM which can be done using the vSphere Web/C# Client or the vSphere API. For example, if I want a 2880x1800 display resolution, I would add the following:
svga.maxWidth = "2880"
svga.maxHeight = "1800"
Lastly, I would like to give a big thanks to Michael Udaltsov, the Engineer who is responsible for creating the workaround and providing me with some additional context to this change in behavior. I know our customers will greatly appreciate this workaround!
Dennis says
Hey, is there a way to get the Utility from you? No reply from VMware...
William Lam says
Dennis,
Did you file an SR an reference the PR # that's noted in the blog? I'm trying to see if we can create a KB that includes the download so folks don't need to go through SR process, but for now that's the interim workaround
Dennis says
Hi William,
VMware finally called me. Thanks a lot!
Dan says
Wow, have been searching for this!! Thank you
Please let us know if the KB with link gets posted.
Mike Barker says
William,
I want to first say thanks for all the great content you provide, it has been a wonderful resource in getting started virtualizing os x on esxi for my own home lab testing.
Not sure if this will be helpful or not, but I have been able to change the resolution of my Mac OS X vm's by using the esxi command line 'vim-cmd vmsvc/setsreenres' command. This appears to work for any vm that has vmware-tools installed. I use this command since I often connect to vm's running on esxi via my 11" macbook air and it has a screen resolution of 1366x768. By issuing this command I am able to change the VM's screen resolution. To use the command, log into the host esxi that the vm is running on and issue this command:
$ vim-cmd vmsvc/setscreenres vmid width height
Alan says
yay for this comment. and note to future googlers, "vim-cmd vmsvc/getallvms" to get the VMID list
Sezare says
Hello Mike, is it possible to use your workaround on Windows 7 host machine?
MrXcitement says
If your asking if it will work while running OS X under VMWare Workstation on a Windows 7 Machine? Not using this command, the command is specific to the host running ESXi and I have only run it under ESXi 6. However if you are asking if you can change the screen resolution of a Windows 7 Virtual Machine running under ESXi, then yes as long as VMWare tools are installed and the client has enough memory allocated to it's Video card.
Sezare says
Hi Mike, I am asking about running OS X under VMWare Player on a Windows 7. Thanks for clarification. I just updated from Yosemite to El Capitan and I am stuck to 1024x768 resolution despite of the values defined in VMX file which do the job before the update:
svga.maxWidth = "1920"
svga.maxHeight = "1080"
Richard Robbins says
I have an Essentials license that does not include VMWare support at the moment so I don't think I can file an SR to get this utility. Are there any altnernate ways for me to get a copy to install on my Mac Mini 6.0 Update 1 box?
Adam says
Mike,
That worked perfectly for me, thanks ever so much it was driving me NUTS!!!
Adam
elvisizer says
according to my vmware rep, this was included in the fusion 8.1 update . . . .but I don't see the tool in the application bundle anywhere, and the GUI doesn't show any different behavior. HAs anyone figured out how to fix this using only Fusion 8.1?
William Lam says
I actually upgraded to Fusion 8.1 and just doubled check and the utility is indeed part of the latest VMware Tools (10.0.5) and the vmware-resolutionSet utility is located under '/Library/Application Support/VMware Tools'
elvisizer says
Thanks, William!!
Mark Andrews says
What is the easiest way to Automate this so the resolution stays on reboot ?
Thanks
Chris says
Mark, I was just hunting for the same solution. Just yesterday, I copied the script from my Fusion 8.1 vmware tools folder to one of my ESXi 6 OSX guests. Running that command every time you reboot is obviously not optimal, although... it might have a performance consequence, I don't know. In my particular application, if there is a slight performance hit, it won't matter.
So.... I did some searching on Launch Scripts (had done a few before) and came up with a simple Launch Daemon .plist file to set the resolution I want at boot.
In /Library/LaunchDaemons as root, create a file named whatever you like with your favorite editor, but end it with .plist.
I did: sudo nano /Library/LaunchDaemons/vmware-resolution.plist
The contents of my file are:
Label
vmware-resolution.plist
ProgramArguments
/Library/Application Support/VMware Tools/vmware-resolutionSet
1680
1050
KeepAlive
RunAtLoad
To test it before booting, excute: sudo launchctl load /Library/LaunchDaemons/vmware-resolution.plist
It should do exactly the same thing as the manual command. Next time you reboot, if you made sure the RunAtLoad is set to "true", the resolution will be set automatically.
I suppose you could create an alias in your ~/.bash_profile to do a quick command to change it to default for machines that don't need the resolution that high all the time. You could also do that in place of create the Launch Daemon too.
Anyway, hope this helps someone.
Chris says
It appears wordpress stripped all the brackets out of my post. I don't recall the WP command to post code, it may be turned off for guests anyway. So reference this page for the code in the .plist file: http://www.acousticwebdesign.net/programming/creating-start-up-items-in-mac-os-x/
Russ says
I tried the 10.0.5 vmware tools on OSX 10.11.3 running under ESXi 5.5 and the keyboard stops working using both vmrc and thick-client console, so that's a no-go for me. The earlier tools (9.9.2) do not have this issue.
Russ says
I was able to extract the vmware-resolutionSet utility (using Pacifist) from the 8.1.0 tools iso, and it works fine for El Capitan with VMware tools 9.9.2.
Tshering says
You made my day William, thanks so much. However I wanted to know is there a way to increase VRAM from 128MB?
Cheers!
Amit V says
Hi,
How can I reclaim the real osx memory usage?
I have 2 MacPro 6.1 with ESXi 5.5
Thanks a lot
Amit
ru says
ESXi 5.5.3343343 + OSX 10.11.3 = all my questions in one picture: http://i65.tinypic.com/23mvjv4.png
Need help - I still can not change resolution 🙁
Enerby says
Install VMWare Tools in Mac OS X Virtual machine
This is important. VMWare Tools is set of drivers that make Mac OS X able to:
Automatically adjust the screen resolution to fit the screen (View -> Autosize -> Autofit Guest).
Drag and Drop file between Windows and Mac OS X Virtual machine.
Share data between Windows and Mac OS X.
How to install? From the Menu –> Removable Devices –> CD/DVD –> Setting –> Choose “Use iso image file” –> Locate VMWare Folder (“C:\Program Files (x86)\VMware\VMware Workstation\”) –> Select Darwin.iso –> Open –> OK.
Update: At for Mac OS 10.10 and 10.9, we use VMWareTools (darwin-fusion7.iso).
After all processes finished completely, you will be able to update to Mac OS X 10.10 Yosemite from Mac OS X 10.7 at your demand like the title of this article.
For Windows guest see http://macdrug.com/install-mac-os-x-yosemite-in-vmware-inside-window-pc/
I used Darwin-fusion.iso
tomdv says
Dear all,
Thank you very much for this post.
After 1 year I can finally use OSX 10.9 - 10.10 - 10.11 at full resolution on my vmware esxi 5.5 free intel home made server!
Resolution is set automatically after boot using post of Chris.
Hw I7 4970K + ASUS Z97 MB + 16GB + SSD
Chris says
Glad to hear I could help Tom. In the last few months, I've been doing a lot of virtualization with Mac Mini's and a '09 Mac Pro. William has helped a lot with all the info found here on this site. I'm glad that I was able to contribute some useful information as well.
Jesús Huizar says
Hi! Help me please.
-bash: ./vmware-resolutionSet: No such file or directory
Steve Dorsey says
Can anyone solve this? Apparently, the latest VMware tools does not have the "vmware-resolutionSet" thingy.
VMware found out we need it, so they got rid of it?
Can anyone solve this? I am not seeing any previous VMware Tools downloads that have it.
eskamedia says
Try this, it worked for me! https://idmedia.no/general/workaround-for-changing-mac-os-x-vm-display-resolution/
René Senses says
Hi William,
First, many thanks for your posts.
Then, it worked simply for me (mac mini esxi server with updated vmware tools and a 10.11 WM) by simply adding more total video memory to 128Mo and setting max resolution to 1920 to 1080. No need to modify the vmx file in this case. Using sudo makes the change persistent.
chase lang says
applescript to the rescue.....
(choose from list {"1920 1080", "1366 768", "2560 1440"} ¬
with prompt "Select a Resolution")
set list_answer to result as text
do shell script "cd '/Library/Application Support/VMware Tools' " & ";" & "./vmware-resolutionSet " & list_answer
Stephen Ferrell says
simply adding sudo to the command will make it stick thru reboots i.e. sudo ./vmware-resolutionSet 1920 1080
Mood Saleem says
Really Amazing....
🙂
Nari says
Thanks William san.
This page lead me to how to change resolution 1024 x 768 to 1920 x 1080 on sierra which updated from el capitan.
There is no vmware-resolutionSet because my Server's vmware-tools was old , and update for newest.
Now , sierra available on my vmware. It work well for me as unix environment.
markwford says
Thanks so much for the tremendously helpful post, William!
Marcelo Sala (@marcelo_sala) says
Excellent !!!! Working perfectly !
Vic says
Hello.
I wonder if there's a way to disable vmware display completely? I'm passing through videocard in mac os x VM, and don't need internal display at all. With Windows I can disable it in settings, is there a way to do so in Mac os X on VmWare?
Thanks.
olus87 says
I had the problem, that your solution doesnt work on workstation 12.5.5 and windows 10. I've recreated the vmx file as hw gen 10 version. after that everything works as expected with latest vmware tools. hope this helps.
Brad says
Team, I'm running a Mac OS VM on vSphere 6.5 (ESXi) but when I change the VM resolution to the same as the native resolution of my MacBook Pro w/ Retina (2880x1800) the image is too large for the screen. A resolution of 1440x900 creates the correct size image but it's not very sharp; it's somewhat blurry. Any idea on how I can correct this? Thanks in advance!
Brad says
To clarify, it's a Mac OS Sierra VM. Thanks again.
Rob says
Hi Guys, when executing the command vmware-resoluton set, I get a "unable to find the service" does it sound familiar ?
Shaji says
Same problem here. Can someone give a detailed reply to the exact steps to be executed
Moritz says
Seems that it's just not working anymore with Fusion 10 and High Sierra. As VMware apparently never officially supported the tool, we can't expect that they care for regressions 🙁
Adarsh says
Not working it gives unable to find the service everytime. I tried sudo method but not works. Hope you understands. ?
Sysadmin Guy says
Still working great with ESXi 6.5 and OSX 10.12. Thanks a million.
baba says
Works with Fusion 10 and Mojave Pub Beta as well.
Brilliant. Thanks a lot!
Aviegas says
Just tried the released version of macOS Mojave and Fusion 10.1.3 (latest at this time). Seems that the problem with “unable to find the service” is due to the vmware tools service not being started, probably because the kernel extension was blocked, even if you have given it proper permission after the install (it actually asked me twice, once after the install and one after the first reboot).
I recalled that reinstalling vmware-tools and rebooting could fix the kernel extension not starting. Doing so not only allwed vmware-resoluton to running properly but also the corner dragging started working (was not working because vmware-tools was not running).
So I guess the trick is: install, give permission, reboot(,permission again, reboot), reinstall, reboot.
Strange, but work.
Ah, display must be set to resize, for the VM or system wide, if VM is set to use Fusion defaults.
Henry Skoglund says
Thank you Aviegas, had the same problem in Mojave, only 1024x768 on my 4K screen.
But your recipe of rinse/lather/repeat fixed my problem, now I have 3840x2160 much better 🙂
Igor Filin says
VMware Fusion 11.0.2 + macOS 10.13. Finally set custom resolution in guest OS. Gave permissions for VMware tools in Security & Privacy. For setting resolution used VMware.PreferencePane https://github.com/MarLoe/VMware.PreferencePane
:( says
will this work in Vemtura
ATSC says
Thanks it works!!
ndicsupport says
I tried all of these tips plus a few found elsewhere and no luck. I'm running Mac OS X Mojave 10.14.2 inside of ESXI 6.5. In order to get that to work, I had to use https://github.com/DrDonk/esxi-unlocker/releases, which works beautifully for running OS X inside ESXI. However, when I run "sudo ./vmware-resolutionSet 1920 1080", I get the following response:
Requested Resolution: 1920x1080
Effective Resolution: 1176x885
For a while, when I rebooted but before login, the resolution was 1920x1080, but as soon as I logged in, it goes to 1176x885 and won't change back. Now, however, it's stuck at 1176x885 even before I login. I've tried disabling System Integrity Protection - no luck there either. Is anyone able to get the resolution to change with the above config or does anyone have any tips/ideas?
TIA!
Masen