VMware Communities
n8dnx
Contributor
Contributor

Unity Applications Menu Missing

All:

Just upgraded to Workstation 8 and reinstalled tools and I now have an empty applications menu in Unity mode. This is running on Windows 7 host with an Ubuntu 9 guest. I can start an application before I enter Unity mode and use the application fine, but without the menu items I can't start one in Unity mode.

I've had problems in the past with trying to get Unity to update the applications menu when I add applications to the Ubuntu guest, but never lost the entire menu.

I noticed that when I ran up a Windows 2000 guest that it started saying it was rebuilding the menu and that one came up fine. Is there a way to force Workstation to rebuild the menu for the Ubuntu guest? Any other thoughts?

Chuck

0 Kudos
11 Replies
mdunn-vmware
Expert
Expert

Did you by chance turn off the Applications menu for that VM?  VM settings->Options->Unity->Enable applications menu.

If that option is on, when you move the mouse over the host's Start button, does the popup window have a button for the Ubuntu VM?

0 Kudos
n8dnx
Contributor
Contributor

Thanks for your input on this.

The applications menu is on and I do get the pop-up menu button for the Ubuntu VM. When I click that, it pops out a tab to the right that simply says "(Empty)". In fact I tried turning the menu off and then back on in the VM settings under Unity, but that made no different.

I've also tried fully shutting down the guest OS, closing out of Workstation, then bringing it all back up. In addition, I've tried editing the Ubuntu menu to see if that would trigger something.

It may be that I'm using KDE and being an older copy of Ubuntu support for its menu may have been intentionally or inadvertantly dropped. I have a new copy of Ubuntu 11 I'm moving my development environment into, but it's going to be a bit before I'm fully there. I did test that one and the application menu in Unity does work with that VM. I may just have to take the plunge and finish that move.

Chuck

0 Kudos
Noel
Expert
Expert

I have a new copy of Ubuntu 11 I'm moving my development environment into, but it's going to be a bit before I'm fully there. I did test that one and the application menu in Unity does work with that VM. I may just have to take the plunge and finish that move.

Chuck

But did you notice that vmware-tray doesn't work with Unity?

0 Kudos
mdunn-vmware
Expert
Expert

There may be some environments that we can't generate a launch menu for, but unfortunately, this is going beyond my limited Ubuntu knowledge. I've asked a couple of our Linux devs to take a look and see if there are any known problems with KDE.

0 Kudos
admin
Immortal
Immortal

Hi Chuck,

It may be that I'm using KDE and being an older copy of Ubuntu support for its menu may have been intentionally or inadvertantly dropped. I have a new copy of Ubuntu 11 I'm moving my development environment into, but it's going to be a bit before I'm fully there. I did test that one and the application menu in Unity does work with that VM. I may just have to take the plunge and finish that move.

I'd still expect Kubuntu 9.04's menus to appear. They show up on my VM.

Couple things I'd like you to try:

  • Power down VM, exit Workstation. Open the folder containing your VM and delete the caches folder. Power up VM, enter Unity, and see if the menus eventually (within 15s) appear.
  • If the steps above don't help, I'd like you to enable logging for the VMware Tools, reproduce this, and then submit the logs for review.
    • In the Ubuntu VM, edit /etc/vmware-tools/tools.conf to enable logging:
      rbeasley@ubuntu:~/Documents$ cat /etc/vmware-tools/tools.conf
      [logging]
      log = true
      vmusr.handler=file
      vmusr.level=debug
      vmusr.data=/var/tmp/vmusr.log
    • Now log in to your KDE session. (If you were already logged in, just log out and log back in.)
      • Enter Unity, open the launcher menu, and wait for a bit.
      • When it still doesn't populate, exit Unity, copy /var/tmp/vmusr.log to your host.
    • Attach both the guest's vmusr.log and your VM's log file (vmware.log) to this thread or send to me as a private message.

Thanks!

0 Kudos
n8dnx
Contributor
Contributor

Thanks for the suggestions.

Your first suggestion about deleting the cache folder didn't make any difference. What it did do, however, was to trash my Virtual Networking configuration. No problem on that, it's a custom configuration and I have all the settings I need stored away, just thought I'd mention that.

I followed your proceedure for providing the logs and they are attached to this posting.

Chuck

0 Kudos
admin
Immortal
Immortal

Going off on a tangent, because that outcome really bothers me, the caches folder was the one inside this Ubuntu VM's folder, right?

Ex:

vmfolder\yourvm.vmx

vmfolder\yourvm.something.vmdk

vmfolder\vmware.log

vmfolder\caches

I ask because I'm not intimately familiar with the virtual networking configuration, and from a cursory reading of related code and brief conversations w/ some others, those two pieces appear completely unrelated. I can go ping the networking folks, but I'm fairly certain they'll come to the same conclusion. (If nuking the caches folder did somehow take out your network settings, I'm terribly sorry, and I'll need to file a bug ASAP.)

As for the menus not working, the problem is that we failed to determine that you were running KDE, and for reasons I won't get into here, we bail out when running in an alien desktop environment. We determine that a user is in KDE by checking for presence of the KDE_FULL_SESSION environment variable.

Fortunately we thought something like this might happen, so we farmed that logic out to a shell script, lifted from the XDG Portland project, which makes it easier for users to drop in workarounds without waiting for us to release new bits. Have a look in the guest at /usr/lib/vmware-tools/bin/vmware-xdg-detect-de. If you force it to just print "KDE" and exit, things should work again.

As a permanent solution for us to ship to everyone else, I'm wondering why our original code didn't work. How do you launch the KDE session? Like, does your VM boot up into a graphical login prompt, using a display manager like kdm or gdm, and then you type in the username and password? Does it boot straight into the KDE session? Do you login to a text console first and just run startx?

Anyway, hope the workaround works for you. If you wouldn't mind answering that last battery of questions, I'd really appreciate it.

Thanks!

0 Kudos
n8dnx
Contributor
Contributor

Yes, the folder was the "caches" folder in the directory for the virtual machine I was loading. Looking in there now I see that there is a GuestAppsCache/LaunchMenu with launchMenu.menudata and version in it. I suppose the virtual networking thing could have been something else. I have had problems loosing my virtual networking settings in the past when doing Workstation upgrades. That didn't happen when I updated to 8, at least not at first. I wonder if the loss of the virtual networking was a delayed effect of the upgrade.

I looked for vmware-xdg-detect-de but found xdg-find-menus instead. In there I found the detection for KDE and forced that. I then shutdown the virtual machine and Workstation then brought it all back up again. Still no go on the Application menu in Unity. Still saying "(Empty)".

I boot Ubuntu 9 into a graphical login screen. Upon login it comes up in KDE. Looks like it's using GDM for the display manager.

Appreciate all the help. I can function with it as it is now since I mostly start up a couple things for doing development in the virtual machine and do the rest in the host OS. I can start those before going into Unity mode. At some point I'll tame Ubuntu 11 and move to that.

Chuck

0 Kudos
admin
Immortal
Immortal

> I looked for vmware-xdg-detect-de but found xdg-find-menus instead. In there I found the detection for KDE and forced that. I then shutdown the virtual machine and Workstation then brought it all back up again. Still no go on the Application menu in Unity. Still saying "(Empty)".

vmware-xdg-detect-de and xdg-find-menus are two distinct scripts, and both should be present. Found it—we aren't staging the script correctly w/ 64-bit Linux guests. As a workaround, try copying the script from /usr/lib/vmware-tools/bin32/vmware-xdg-detect-de to /usr/lib/vmware-tools/bin64, then log out and log back in to the guest's X session.

0 Kudos
admin
Immortal
Immortal

Wait a minute. I was a little too eager to respond. It's been a while since I last touched this code.

Okay, so we're correctly symlinking /usr/bin/vmware-xdg-detect-de to /usr/lib/vmware-tools/bin32/vmware-xdg-detect-de, and vmusr runs vmware-xdg-detect-de based on its $PATH. So rather than copy anything, I'd like you to instead try running "vmware-xdg-detect-de" from a terminal and tell me whether it prints "KDE." Next, as the workaround, edit /usr/bin/vmware-xdg-detect-de and force it to print KDE and exit.

Sorry for the runaround.

  - Ryan

0 Kudos
n8dnx
Contributor
Contributor

Ryan:

OK, we got it. I edited /usr/bin/vmware-xdg-detect-de to force it to say KDE, logged out and back in. When I did that it blocked me from Unity for a short time, then let me enter Unity, and then in about another 15 seconds the menu was loaded and working.

Thanks for helping me though this. I hope this helps you sort out a permanent fix.

Chuck

0 Kudos