Ubuntu – put more applications in a Unity icon

launcherunity

Is it possible to 'enclose' more than one application in a single Unity icon/button?
In order to keep under control the number of buttons on launcher, it will be very useful to me to store some applications of the same type (e.g. small accessory applications like take screenshot or web application etc. ) in a single button as that is possible with the xfce panel…

enter image description here

Best Answer

Overview

This answer gives two potential answers - Drawers and Quicklists

Drawers

Drawers is available via a PPA for 12.04:

enter image description here

sudo add-apt-repository ppa:ian-berke/ppa-drawers 
sudo apt-get update
sudo apt-get install drawers

Launch Drawers from Dash. For you drawer, drag and drop the created icon from ~/.local/share/applications.

Launch your drawer - then you can drag and drop your favourite applications from the Dash onto the drawer.

Graphical Quicklists

The default unity method to launch multiple options is through the use of quicklists - right-click a launcher icon to show a menu of options for that launcher icon.

enter image description here

The creation of quicklist using a graphical method for 12.04 is available using MyUnity

myunity Install myunity

enter image description here

This option allows you to create quicklists - quicklists are a submenu that are displayed when you right-click a launcher icon.

The creation of quicklist using a graphical method for 11.04 is work-in-progress - for example - the Unity Launcher Editor

enter image description here

This works in Natty (ubuntu 11.04) - but due to the python version change, does not work (as at the time of writing this) in oneiric (ubuntu 11.10)

to install

cd ~/Downloads
sudo apt-get install bzr
bzr branch lp:unity-launcher-editor

to run

cd ~/Downloads/unity-launcher-editor
./ule

Manual creation of quicklists

Fortunately, it is simple to create quicklists manually as well. A quicklist is a .desktop file containing at the minimum the following:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=adressbook
Name=Sample Menu
Exec=example_application1

X-Ayatana-Desktop-Shortcuts=example_app2;

[example_apps Shortcut Group]
Name=Name of Application 2
Exec=example_application2
TargetEnvironment=Unity

Let's break this down to the areas you should change (working from top to bottom of the example).

  • Icon=: this is the graphical picture file found in /usr/share/icons
  • Name=: this is the tooltip you see when you hover over the launcher icon
  • Exec=: this is the default executable run when you left click the launcher icon
  • X-Ayatana-Desktop-Shortcuts=: this is a semi-colon separated list of groups.

Each group is a quick-list menu option under the entry [group_name Shortcut Group]

  • example_apps this is the name of the group in the X-Ayatana-Desktop-Shortcuts field
  • Name=: this is the quicklist menu text
  • Exec=: this is the executable run when choosing the quicklist entry

.desktop files should exist in the local folder ~/.local/share/applications

If it doesn't already exist create this folder:

mkdir -p ~/.local/share/applications

Create a file in the folder - for example myquicklist.desktop and drag-and-drop this file from Nautilus into the Unity Launcher.

mimic XFCE launcher

The default XFCE action when clicking on the launcher button is to run an executable. For our launcher you could default to the calculator

Name=My Quicklist
Exec=gcalctool

The other action possible in the XFCE launcher is to just display the list of launcher items. Unfortunately in Unity you cannot do this - it must be a right-click.

The default Exec= must run something - for example you could use this to display a quick pop-up dialog reminding you to right click:

Name=My Quicklist
Exec=zenity --title="action" --info --text="Right-Click for quicklist" --height=50 --width=275 --timeout=2

Example

You gave the following examples that you wanted:

  • Screenshot: Exec=gnome-screenshot -i
  • Dictionary: Exec=xfce4-dict
  • Calculator: Exec=gcalctool

enter image description here

Thus your example .desktop file would look like:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=addressbook
Name=My Quicklist
Exec=zenity --title="action" --info --text="Right-Click for quicklist" --height=50 --width=275 --timeout=2

X-Ayatana-Desktop-Shortcuts=screenshot;dictionary;calculator

[screenshot Shortcut Group]
Name=Gnome Screenshot
Exec=gnome-screenshot -i
TargetEnvironment=Unity

[dictionary Shortcut Group]
Name=XFCE Dictionary
Exec=xfce4-dict
TargetEnvironment=Unity

[calculator Shortcut Group]
Name=Gnome Calculator
Exec=gcalctool
TargetEnvironment=Unity
Related Question