如何以编程方式向 Unity 启动器添加快捷方式?

如何以编程方式向 Unity 启动器添加快捷方式?

我正在用 Qt 开发一个程序,它将帮助用户管理(创建、编辑和删除)Unity 启动器中的快捷列表。

我创建了 .desktop 文件,但我不知道如何以编程方式将该文件放置在 Unity 启动器上。

我发现了两种(不好的)方法来做到这一点:

  1. 手动将创建的 .desktop 文件拖放到 Unity 启动器
  2. 使用“gsettings set com.canonical.Unity.Launcher favorites”编辑收藏夹键,并使用“unity --replace”强制 Unity 重新加载

因此,我正在寻找一个在第一个“拖放”方法上调用的函数或系统命令,这样我就可以在我的程序中执行它,而无需用户手动执行。

我甚至不知道在哪里(或如何)寻找我的解决方案,所以任何建议都会有帮助。

答案1

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

答案2

我会这样做:

  1. 将 .desktop 文件放入~/.local/share/applications。这样它也会出现在应用程序部分。
  2. 使用 获取收藏夹列表gsettings get ...
  3. 使用 将桌面文件的路径插入到数组中gsettings set

不过 Jo 的 dbus 想法似乎更好。:)

相关内容