Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Most of us use more than one machine for our purpose. The scenario for me is to use one at home, another at office.

When comes to the launcher at left, the applications get added in chronological order. You can click and drag an application in launcher, but this is a tedious process.

If your application placements are different among the machines, you loose the intuitive mouse click. You need to spend a few seconds to find out where actually the launcher is before you click on it.

Is there any way I can keep the launcher applications (at least the locked ones) synchronized among machines?


share|improve this question

Manual Step

Open Terminal Ctrl + Alt + T and run following command:

gsettings set com.canonical.Unity.Launcher favorites "['nautilus-home.desktop', 'firefox.desktop', 'gnome-terminal.desktop', 'gedit.desktop', 'Ubuntu Software Center.desktop']"

Replace .desktop with your application name.

How do I find my application name?

Locate your application at /usr/share/applications

  • Run the same command to all your desktop.
  • Logout and login back.

Problem! How to Reset Launcher?!

gsettings reset com.canonical.Unity.Launcher favorites

Make remote script to launch at start up.

ObsessiveFOSS - The master script(the one directly run from Startup applications) is responsible for getting the remote script from the network share. If it can, it overwrites the local copy of the actual script with the actual startup items, and if it cannot connect for some reason, it just runs the old version.

The idea was to execute master script from network.

First you need to create master that's contain :

gsettings set com.canonical.Unity.Launcher favorites "['nautilus-home.desktop', 'firefox.desktop', 'gnome-terminal.desktop', 'gedit.desktop', 'Ubuntu Software Center.desktop']" 

Giving permission:

chmod +x ~/

Make startup application

Name : Launcher

Command : ~/

So all you need is to change one script and other machine will follow too. Make sure other machine load the master script on startup from network.

share|improve this answer
+1 for gsettings AND explanation – Evandro Silva Oct 6 '12 at 15:58
Thanks so much Sir! – penreturns Oct 6 '12 at 15:59
So, that means I have to manually run this command every time I add an application to my launcher? There is no way a some process keeps the launchers synchronized? Just the way Firefox can keep the bookmarks synchronized? Or am I missing something here? – Masroor Oct 6 '12 at 16:09
Yes you have to run that command everytime you want to put new apps/program and do the same to all machine. Until now im sure there's no such 'bookmark' things. But will see ;) – penreturns Oct 6 '12 at 16:19
Do not find this much better than add an application launcher in one machine, keep the location memorized or even better send myself an email with the location (third from top, below Firefox), and add-click-drag in all the machines. – Masroor Oct 6 '12 at 16:24
up vote 1 down vote accepted

Based on the valuable feedbacks from all of you, I have assembled a way to keep my launchers synchronized across machines. This is how I am doing it.

  1. Add (lock to launcher) to and rearrange (click and drag) applications in your launcher until you are satisfied.
  2. Start dconf-editor. If you do not have dconf-editor installed, you can install it as,

    sudo apt-get install  dconf-tools
  3. Select desktop->unity->launcher from left (see image). enter image description here

  4. Keep on clicking on the text at the right of favorites until the complete list is selected. That is your list of applications in the launcher.

(I wish I could find a way to read some conf file using awk or perl and automatically extract the above text and generate the script.)

  1. Copy this list (right mouse button) and paste in an editor.

  2. Create a simple shell script with using the gsettings commands with the text in the previous step. My script (called setlauncher) looks like this,

     gsettings set com.canonical.Unity.Launcher favorites "['nautilus-home.desktop', 'firefox.desktop', 'google-chrome.desktop', 'libreoffice-calc.desktop', 'emacs23.desktop', 'gedit.desktop', 'xournal.desktop', 'gimp.desktop', 'evince.desktop', 'kde4-okular.desktop', 'djvulibre-djview4.desktop', 'vlc.desktop', 'avidemux-gtk.desktop', 'dvdrip.desktop', 'gnome-subtitles.desktop', 'dvdstyler.desktop', 'kde4-k3b.desktop']"
  3. Make the above script executable.

     chmod +x setlauncher 
  4. Keep the above script synchronized among all your machines. I use SpiderOak. Using NAS could be another viable option.

  5. Run the script in all your machines. Someone suggested running the script at every login, but this is not required. The only time you need to rerun the script is when you change it.

If you have made a change in your launcher, you need to execute steps 3-9.

For me this has worked like a charm. One machine is running Ubuntu 12.04, another (still unstable) 12.10.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.