Sunday, May 15

Get the Best of Both Worlds,Your Own Alternative to the Default Unity Main Menu


There are many Ubuntu users who like Unity interface and its ability to optimize screen space. But the default main menu is a bit of pain as all the categories are hidden by default and it does not support wine menus. There is an application lens but it is way down at the bottom, not movable and most of the time it is folded as I pin lots of applications on Unity launcher.

But, you can now permanently have another classic Gnome style menu in Unity itself, thanks to Cardapio. Cardapio has an excellent plug-in system which not only provide similar functionality to the default Unity menu but is actually more powerful than it. You can create your own plug-in as there is a dedicated API for it. Also Cardapio menu is themeable. Though there are not many themes available as of now, you can find some of them on the web.

How will this work out? Here is a simple step by step guide for you and in the end a video.

The first step is to get the Cardapio main menu from Launchpad. Run the following commands:

sudo add-apt-repository ppa:cardapio-team/unstable
sudo apt-get update
sudo apt-get install cardapio

Try running the command cardapio from terminal, you will immediately see it in the center of your screen.


Its no good at the moment, lets tweak it to make it perfectly blend with our desktop. 

First of all lets create a launcher for it. Create a new text file with the code below, name it Cardapio.desktop and copy it to ~/.local/share/applications

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=cardapio 
Name=menu
Icon=gnome-main-menu

Now drag it to the Unity launcher, move it all the way to the top and pin it on the launcher. Click on it and you will have your new menu. But it is still at the center.

Fire up Compiz Config Settings Manager, and go the Place Windows plugin.


Go the Fixed Window Placement tab and under Windows With Fixed Positions, add a new entry. Click on the Plus icon, a new menu will pop up. Select Window Name from drop down and enter cardapio in Value input box.


Now just select appropriate screen coordinates so that Cardapio shows up on the top left side of the screen. You don't have to be precise as Cardapio menu window will never go below Unity launcher.

Here is our result:

Cardapio in full mode


Cardapio in mini mode


Some Tips
  • You can configure Cardapio settings by right clicking on the menu and selecting Properties
  • Default keyboard shortcut is Super+space but it won't work with Unity. Just change it to anything else.
  • There are lots of plugins to customize it as per your needs.

Some Issues and Workarounds
  • Cardapio settings window may go below the top Unity panel. Just press Alt+F7 to move it around.
  • You may need to resize Cardapio window to see full text for a particular entry. You can drag and resize Cardapio from edges but instead dragging it out, drag it in otherwise you will fail to resize it. Also don't use corners to grab Cardapio. Grab it anywhere else on X axis or Y axis. Don't worry you will need to do it only once.
  • You cannot make two successive clicks on Cardapio shortcut as the icon starts pulsating. This behavior has been bugging me for quite a time now and I have not yet found any workaround for this. But, using the keyboard shortcut, you can invoke or hide Cardapio instantly.
  • Nothing will happen when you click on menu icon again as in Unity you cannot minimize windows by clicking on application shourtcuts on the launcher. Just click anywhere on the dekstop to hide Cardapio.
  • Cardapio will take 4-5 seconds when you click on the menu icon just after a logout/reboot. This will happen once only per session.
Important Update: There is one major issue with using Cardapio in Unity. Application launched using Cardapio DO NOT show global application menu on top panel. Thankfully this problem can be solved using just a small tweak. Follow the steps:

Edit the file Cardapio by running following command:

sudo gedit /usr/lib/cardapio/cardapio

Go to line number 42 and comment it out by placing '#' in front of it. It should look like this now:

#os.environ['UBUNTU_MENUPROXY'] = ''

Save the file, logout and come back. All the applications now will show global menu on the panel.

Video Showing Cardapio in Unity (Watch in HD)



[Many thanks to mc4man for the info]

0 comments:

Post a Comment

Preload Image 1 Preload Image 2 Preload Image 3 Preload Image 4 Preload Image 5