我正在用 Qt 开发一个程序,它将帮助用户管理(创建、编辑和删除)Unity 启动器中的快捷列表。
我创建了 .desktop 文件,但我不知道如何以编程方式将该文件放置在 Unity 启动器上。
我发现了两种(不好的)方法来做到这一点:
- 手动将创建的 .desktop 文件拖放到 Unity 启动器
- 使用“gsettings set com.canonical.Unity.Launcher favorites”编辑收藏夹键,并使用“unity --replace”强制 Unity 重新加载
因此,我正在寻找一个在第一个“拖放”方法上调用的函数或系统命令,这样我就可以在我的程序中执行它,而无需用户手动执行。
我甚至不知道在哪里(或如何)寻找我的解决方案,所以任何建议都会有帮助。
答案1
您可以使用 DbusMenu 在运行时添加动态快速列表。您可以在此处阅读更多相关信息:https://wiki.ubuntu.com/Unity/LauncherAPI。该页面还描述了添加计数器、进度条和设置紧急程度。
答案2
我会这样做:
- 将 .desktop 文件放入
~/.local/share/applications
。这样它也会出现在应用程序部分。 - 使用 获取收藏夹列表
gsettings get ...
。 - 使用 将桌面文件的路径插入到数组中
gsettings set
。
不过 Jo 的 dbus 想法似乎更好。:)