如何通过编程将快捷方式添加到Unity启动器?

我正在Qt中开发一个程序,可以帮助用户管理(创建、编辑和删除)Unity启动器中的快速列表。
我已经创建了一个.desktop文件,但不知道如何以编程的方式将该文件放置在Unity启动器上。
我找到了两种(不好的)方法来实现这个目标:
1. 手动拖放创建的.desktop文件到Unity启动器中。 2. 使用"gsettings set com.canonical.Unity.Launcher favorites"编辑喜爱的键,并使用"unity --replace"强制Unity重新加载。
因此,我正在寻找一个函数或系统命令,可以在第一种“拖放”方法上调用,这样我就可以在我的程序中完成,而无需用户手动操作。
我甚至不知道在哪里(或如何)搜索解决方案,所以任何建议都将很有帮助。

我也在找,找到了这里:http://askubuntu.com/questions/153597/editing-gsettings-add-icon-to-launcher-by-command - user73819
2个回答

你可以使用 DbusMenu 在运行时添加动态快捷列表。你可以在这里阅读更多相关信息:https://wiki.ubuntu.com/Unity/LauncherAPI。该页面还描述了如何添加计数器、进度条和设置紧急程度。

我查看了那个页面,但是没有找到我想要的东西。我需要找出如何发出与“拖放”操作发送给Unity进程相同的信号。我知道DbusMenu是用于IPC的API,但我仍然不确定是否可以使用它来实现这一点。 - Ivan Lučin

我会这样做: 1. 将 .desktop 文件放在 ~/.local/share/applications 中。这样它将出现在应用程序部分。 2. 使用 gsettings get ... 获取收藏夹列表。 3. 使用 gsettings set 在数组中插入桌面文件的路径。
不过 Jo 的 dbus 想法更好。 :)

1这是我已经做过的事情,但问题在于每次更改后都必须重新加载Unity,使用"unity --replace"命令,这真的很不方便。 - Ivan Lučin