如何强制Unity重载〜/ .local / share / applications /

假设我在~/.local/share/applications/更改/添加了一些myapp.desktop文件。 有一段时间Ubuntu Unity仍会在Ubuntu按钮下显示Unity镜头的旧应用程序快捷方式。 需要一些时间(或只需一次重启)才能在那里更新应用程序列表。

我如何强制Unity重新加载~/.local/share/applications并在镜头中正确反映快捷方式?

有点晚了,但我在找到解决方案之前偶然发现了这个问题,至少我的问题,谷歌搜索相关的东西,几乎放弃了。

根据本指南help.ubuntu.com ,不要只在/usr/local/share/applications~/.local/share/applications编辑或创建.desktop文件。 相反,在其他地方创建文件并使用

 desktop-file-install  

添加文件。

例如,你创建~/myapp.desktop并做

 desktop-file-install --dir=~/.local/share/applications ~/myapp.desktop 

现有的同名文件将被覆盖并统一更新,如果不再需要源,可以使用--delete-original ,或者

 sudo desktop-file-install ~/myapp.desktop 

为所有用户安装它。

执行此操作的方法是运行该命令

 killall unity-scope-home 

打开仪表板后,该过程将再次自动启动。

然后显示正确的图标……

根据这个答案 (并且您可以在相同的意义上找到许多其他的),遗憾的是似乎没有命令让unity-applications-daemon刷新其应用程序缓存。 但我可以确认unity将自动检测~/.local/share/applications .desktop文件的任何更改。 如果这些更改无法立即显示,请尝试注销并再次进行刷新。

update-desktop-database是刷新.desktop数据库的命令。

某些应用程序可能会在此命令后停止正常工作 例如,Chrome变得完全黑了。

 unity --replace 

我有一个类似的问题,重新启动后修复。 我用的是ubuntu 16.04

我通常在/usr/share/applications/创建.desktop文件,如果我想与其他用户和~/.local/share/applications共享桌面文件(如果只有一个用户)。 而我通常重启。

此答案不涉及桌面重新启动。


虽然很晚,但有一个实用程序命令可以更新名为update-desktop-database的桌面数据库缓存。

更新$HOME/.local/share/applications/ ,使用:

 >> update-desktop-database 

更新全局的东西,比如/usr/share/ubuntu/applications/usr/share/gnome/applications/usr/share/applications等,使用:

 >> sudo update-desktop-database