8

I'm developing a program in Qt that will help users to manage (create, edit and delete) their quicklists in Unity launcher.

I got to a point where I created .desktop file and I don't know how to programmatically place that file on Unity launcher.

I found two (bad) ways to do this:

  1. Manually drag and drop created .desktop file to unity launcher
  2. Edit favorites key with "gsettings set com.canonical.Unity.Launcher favorites" and force unity to reload with "unity --replace"

So, I'm searching for a function or a system command that is called on first 'drag and drop' method so I can do it in my program without need for user to do it manually.

I don't even know where (or how) to search for my solution so any suggestions will be helpfull.

Bruno Pereira
  • 73,643
  • I was also looking for it and found it here:

    http://askubuntu.com/questions/153597/editing-gsettings-add-icon-to-launcher-by-command

    –  Jun 28 '12 at 14:42

2 Answers2

2

You can add dynamic quicklists at runtime by using DbusMenu. You can read more about that here: https://wiki.ubuntu.com/Unity/LauncherAPI. That page also describes adding counters, progressbars and setting urgency.

  • I checked that page out but I haven't found what I'm looking for. I need to find out how to emit the same signal that 'drag and drop' action emits to unity process. I can see that DbusMenu is api for IPC but I still don't know if this can be done with it. – Ivan Lučin Feb 26 '12 at 23:13
2

I would do it this way:

  1. Drop the .desktop file in ~/.local/share/applications. This way it will appear in the application section as well.
  2. Fetch the list of favorites with gsettings get ....
  3. Insert the path to the desktop file in the array using gsettings set.

The dbus idea by Jo seems nicer though. :)

  • 1
    This is what I already did but the problem is that unity has to be reloaded with "unity --replace" after a change and that is really ugly. – Ivan Lučin Feb 26 '12 at 19:33