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!
Hey, is there a way to get the Utility from you? No reply from VMware...
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
Hi William,
VMware finally called me. Thanks a lot!
Wow, have been searching for this!! Thank you
Please let us know if the KB with link gets posted.
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
yay for this comment. and note to future googlers, "vim-cmd vmsvc/getallvms" to get the VMID list
Hello Mike, is it possible to use your workaround on Windows 7 host machine?
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.
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"
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?
Mike,
That worked perfectly for me, thanks ever so much it was driving me NUTS!!!
Adam
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?
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'
Thanks, William!!
What is the easiest way to Automate this so the resolution stays on reboot ?
Thanks
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.
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/
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.
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.
You made my day William, thanks so much. However I wanted to know is there a way to increase VRAM from 128MB?
Cheers!
Hi,
How can I reclaim the real osx memory usage?
I have 2 MacPro 6.1 with ESXi 5.5
Thanks a lot
Amit
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 🙁
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
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
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.
Hi! Help me please.
-bash: ./vmware-resolutionSet: No such file or directory
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.
Try this, it worked for me! https://idmedia.no/general/workaround-for-changing-mac-os-x-vm-display-resolution/
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.
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
simply adding sudo to the command will make it stick thru reboots i.e. sudo ./vmware-resolutionSet 1920 1080
Really Amazing....
🙂
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.
Thanks so much for the tremendously helpful post, William!
Excellent !!!! Working perfectly !
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.
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.
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!
To clarify, it's a Mac OS Sierra VM. Thanks again.
Hi Guys, when executing the command vmware-resoluton set, I get a "unable to find the service" does it sound familiar ?
Same problem here. Can someone give a detailed reply to the exact steps to be executed
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 🙁
Not working it gives unable to find the service everytime. I tried sudo method but not works. Hope you understands. ?
Still working great with ESXi 6.5 and OSX 10.12. Thanks a million.
Works with Fusion 10 and Mojave Pub Beta as well.
Brilliant. Thanks a lot!
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.
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 🙂
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
will this work in Vemtura
Thanks it works!!
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