WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
  • VKS
  • Homelab
    • Resources
    • Nested Virtualization
  • VMware Nostalgia
  • Apple
You are here: Home / Apple / Heads Up - Workaround for changing Mac OS X VM display resolution in vSphere & Fusion

Heads Up - Workaround for changing Mac OS X VM display resolution in vSphere & Fusion

10.22.2015 by William Lam // 51 Comments

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.

Screen Shot 2015-12-11 at 10.55.18 AM

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

change-mac-osx-vm-display-resolution-vsphere-fusion-0
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.

change-mac-osx-vm-display-resolution-vsphere-fusion-1
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!

More from my site

  • Community stories of VMware & Apple OS X in Production: Part 8
  • How to run Nested Mac OS X guest on ESXi VM on top VMware Fusion?
  • Building minimal vSphere demo lab using VMware Fusion/Workstation with only 8GB memory?
  • Automating installation of VMware Tools for Mac OS X
  • Community stories of VMware & Apple OS X in Production: Part 10

Categories // Apple, ESXi, Fusion, vSphere 6.0 Tags // apple, ESXi, fusion, osx, resolution, vmware-resolutionSet

Comments

  1. *protectedDennis says

    10/26/2015 at 7:32 am

    Hey, is there a way to get the Utility from you? No reply from VMware...

    Reply
    • William Lam says

      10/26/2015 at 7:55 am

      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

      Reply
      • *protectedDennis says

        10/26/2015 at 10:44 am

        Hi William,

        VMware finally called me. Thanks a lot!

        Reply
  2. *protectedDan says

    10/26/2015 at 8:51 am

    Wow, have been searching for this!! Thank you
    Please let us know if the KB with link gets posted.

    Reply
  3. *protectedMike Barker says

    10/27/2015 at 9:32 am

    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

    Reply
    • *protectedAlan says

      11/03/2015 at 6:49 am

      yay for this comment. and note to future googlers, "vim-cmd vmsvc/getallvms" to get the VMID list

      Reply
  4. *protectedSezare says

    10/27/2015 at 1:58 pm

    Hello Mike, is it possible to use your workaround on Windows 7 host machine?

    Reply
    • *protectedMrXcitement says

      10/27/2015 at 2:54 pm

      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.

      Reply
      • *protectedSezare says

        10/28/2015 at 1:51 am

        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"

        Reply
  5. *protectedRichard Robbins says

    11/10/2015 at 9:03 am

    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?

    Reply
  6. *protectedAdam says

    12/02/2015 at 9:35 am

    Mike,

    That worked perfectly for me, thanks ever so much it was driving me NUTS!!!

    Adam

    Reply
  7. *protectedelvisizer says

    12/11/2015 at 7:47 am

    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?

    Reply
    • William Lam says

      12/11/2015 at 10:57 am

      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'

      Reply
      • *protectedelvisizer says

        12/11/2015 at 12:37 pm

        Thanks, William!!

        Reply
  8. *protectedMark Andrews says

    01/14/2016 at 6:20 pm

    What is the easiest way to Automate this so the resolution stays on reboot ?

    Thanks

    Reply
  9. *protectedChris says

    01/23/2016 at 10:37 am

    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.

    Reply
  10. *protectedChris says

    01/23/2016 at 10:39 am

    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/

    Reply
  11. *protectedRuss says

    01/28/2016 at 5:44 pm

    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.

    Reply
    • *protectedRuss says

      01/29/2016 at 9:53 am

      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.

      Reply
  12. *protectedTshering says

    02/01/2016 at 11:47 am

    You made my day William, thanks so much. However I wanted to know is there a way to increase VRAM from 128MB?

    Cheers!

    Reply
  13. *protectedAmit V says

    02/10/2016 at 11:48 pm

    Hi,
    How can I reclaim the real osx memory usage?
    I have 2 MacPro 6.1 with ESXi 5.5
    Thanks a lot
    Amit

    Reply
  14. *protectedru says

    02/13/2016 at 12:25 am

    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 🙁

    Reply
  15. *protectedEnerby says

    02/13/2016 at 4:16 am

    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

    Reply
  16. *protectedtomdv says

    02/24/2016 at 12:46 pm

    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

    Reply
    • *protectedChris says

      02/24/2016 at 12:52 pm

      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.

      Reply
  17. *protectedJesús Huizar says

    04/03/2016 at 1:43 am

    Hi! Help me please.

    -bash: ./vmware-resolutionSet: No such file or directory

    Reply
    • *protectedSteve Dorsey says

      04/13/2016 at 7:23 pm

      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.

      Reply
  18. *protectedeskamedia says

    04/20/2016 at 11:57 pm

    Try this, it worked for me! https://idmedia.no/general/workaround-for-changing-mac-os-x-vm-display-resolution/

    Reply
  19. *protectedRené Senses says

    06/17/2016 at 10:11 am

    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.

    Reply
  20. *protectedchase lang says

    07/12/2016 at 8:41 pm

    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

    Reply
  21. *protectedStephen Ferrell says

    07/27/2016 at 11:15 pm

    simply adding sudo to the command will make it stick thru reboots i.e. sudo ./vmware-resolutionSet 1920 1080

    Reply
  22. *protectedMood Saleem says

    09/16/2016 at 10:34 pm

    Really Amazing....
    🙂

    Reply
  23. *protectedNari says

    10/01/2016 at 3:00 pm

    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.

    Reply
  24. *protectedmarkwford says

    11/18/2016 at 10:39 am

    Thanks so much for the tremendously helpful post, William!

    Reply
  25. *protectedMarcelo Sala (@marcelo_sala) says

    02/17/2017 at 6:32 am

    Excellent !!!! Working perfectly !

    Reply
  26. *protectedVic says

    03/09/2017 at 8:16 am

    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.

    Reply
  27. *protectedolus87 says

    05/15/2017 at 2:51 pm

    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.

    Reply
  28. *protectedBrad says

    06/20/2017 at 6:18 pm

    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!

    Reply
    • *protectedBrad says

      06/20/2017 at 6:19 pm

      To clarify, it's a Mac OS Sierra VM. Thanks again.

      Reply
  29. *protectedRob says

    07/01/2017 at 3:24 am

    Hi Guys, when executing the command vmware-resoluton set, I get a "unable to find the service" does it sound familiar ?

    Reply
    • *protectedShaji says

      08/12/2017 at 6:07 pm

      Same problem here. Can someone give a detailed reply to the exact steps to be executed

      Reply
    • *protectedMoritz says

      12/14/2017 at 9:22 am

      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 🙁

      Reply
  30. *protectedAdarsh says

    02/13/2018 at 11:20 am

    Not working it gives unable to find the service everytime. I tried sudo method but not works. Hope you understands. ?

    Reply
  31. *protectedSysadmin Guy says

    03/05/2018 at 1:14 pm

    Still working great with ESXi 6.5 and OSX 10.12. Thanks a million.

    Reply
  32. *protectedbaba says

    07/17/2018 at 1:55 pm

    Works with Fusion 10 and Mojave Pub Beta as well.
    Brilliant. Thanks a lot!

    Reply
  33. *protectedAviegas says

    09/24/2018 at 2:42 pm

    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.

    Reply
    • *protectedHenry Skoglund says

      10/19/2018 at 9:32 pm

      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 🙂

      Reply
  34. *protectedIgor Filin says

    01/31/2019 at 10:44 am

    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

    Reply
    • *protected:( says

      11/16/2023 at 2:06 am

      will this work in Vemtura

      Reply
  35. *protectedATSC says

    02/05/2019 at 7:41 am

    Thanks it works!!

    Reply
  36. *protectedndicsupport says

    02/05/2019 at 8:55 pm

    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

    Reply

Thanks for the comment!Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • Programmatically accessing the Broadcom Compatibility Guide (BCG) 05/06/2025
  • Quick Tip - Validating Broadcom Download Token  05/01/2025
  • Supported chipsets for the USB Network Native Driver for ESXi Fling 04/23/2025
  • vCenter Identity Federation with Authelia 04/16/2025
  • vCenter Server Identity Federation with Kanidm 04/10/2025

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2025

 

Loading Comments...