Application shortcuts can be added to Unity by creating special
/usr/share/applications/. These shortcut definitions appear in the Dash from
where they can be dragged to the Unity launcher.
Creating a simple shortcut
These files follow a simple syntax: they consist of groups and key-value pairs. Groups are used to define additional options in the shortcut’s context menu. For example, switching to the next track in a music player. We will demonstrate this later.
.desktop file is required to contain the group
[Desktop Entry] with a set of
Some formatting rules to keep in mind:
- no whitespace should be present around the equal signs
- values can be one of:
#to the beginning of the line marks that line as a comment
Shortcut for Android Studio
This is the minimal amount of information you need to provide to create a valid
shortcut with an icon, which will appear in Dash. The most important key is
This line gets executed when the shortcut is clicked.
After saving the file to
the shortcut should appear in Dash and it can be added to Unity’s launcher.
Advanced application shortcuts
Now, let’s see a more feature-rich application launcher. Rhythmbox is a good candidate. Its’ client has a wide variety of options to control the application, which we will put to good use.
If the player is installed, a
rhythmbox.desktop file should already be present
on your machine. Open up a text editor and let’s see what we got.
sudo gedit /usr/share/applications/rhythmbox.desktop
[Desktop Entry] Name=Rhythmbox GenericName=Music Player X-GNOME-FullName=Rhythmbox Music Player Comment=Play and organize your music collection Keywords=Audio;Song;MP3;CD;Podcast;MTP;iPod;Playlist;Last.fm;UPnP;DLNA;Radio; Exec=rhythmbox %U Terminal=false Type=Application Icon=rhythmbox X-GNOME-DocPath=rhythmbox/rhythmbox.xml Categories=GNOME;GTK;AudioVideo;Audio;Player; MimeType=application/x-ogg;application/ogg;audio/x-vorbis+ogg;audio/x-scpls;audio/x-mp3;audio/x-mpeg;audio/mpeg;audio/x-mpegurl;audio/x-flac;audio/mp4;x-scheme-handler/itms;x-sche> StartupNotify=true X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=rhythmbox X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-OtherBinaries=rhythmbox-client;rhythmbox-metadata; X-GNOME-Bugzilla-Version=3.0.2 X-GNOME-UsesNotifications=true X-Ubuntu-Gettext-Domain=rhythmbox Actions=Play;Pause;Next;Previous; [Desktop Action Play] Name=Play Exec=rhythmbox-client --play [Desktop Action Pause] Name=Pause Exec=rhythmbox-client --pause [Desktop Action Next] Name=Next Exec=rhythmbox-client --next [Desktop Action Previous] Name=Previous Exec=rhythmbox-client --previous
There is a surprising amount of information a shortcut can hold isn’t it?
The most interesting part for us is the
Actions key and the definitions
of different actions below it.
Our first action
Rhythmbox’s client has an option which toggles Play and Pause. Let’s join the
Play and Resume actions together. The new action will be called
Really innovative. Actually, let’s call it
iPlayPause. Remove these two
[Desktop Action Play] and
[Desktop Action Pause]. Also,
remove them from the list of actions in the
Actions key. Next, add our new
action to the actions list and define the new group. The example below shows only
the relevant lines.
Actions=iPlayPause;Next;Previous; [Desktop Action iPlayPause] Name=Play | Pause Exec=rhythmbox-client --play-pause [Desktop Action Next] Name=Next Exec=rhythmbox-client --next [Desktop Action Previous] Name=Previous Exec=rhythmbox-client --previous
Our second and third actions
When you hear an awesome song for the first time, you might want to throw a bunch of stars at it, so having an action for that may be useful. Create a new action for rating the current song. Heck, let’s add another action, which will trigger a notification with the name of the currently playing track.
Actions=iPlayPause;Next;Previous;Rate;NowPlaying; [Desktop Action iPlayPause] Name=Play | Pause Exec=rhythmbox-client --play-pause [Desktop Action Next] Name=Next Exec=rhythmbox-client --next [Desktop Action Previous] Name=Previous Exec=rhythmbox-client --previous [Desktop Action Rate] Name=Epic! Exec=sh -c 'rhythmbox-client --set-rating 5' [Desktop Action NowPlaying] Name=Now playing Exec=sh -c 'rhythmbox-client --print-playing | xargs -0 -I track notify-send -t 3 -a Rhythmbox -i rhythmbox track'
To list all the available Rhytmbox controls, run
rhythmbox-client --help in
As you saw, creating shortcuts can be fun and the options are literally limitless. For a more detailed reference for all available options (localization might interest you), refer to Desktop Entry Specification. Until next time!