如何强制 Unity 重新加载 ~/.local/share/applications/

vla*_*mir 76 unity shortcuts

假设我myapp.desktop~/.local/share/applications/. 一段时间以来,Ubuntu Unity 仍会在 Ubuntu 按钮下的 Unity 镜头中向我显示旧的应用程序快捷方式。在那里更新应用程序列表需要一些时间(或只需重新启动一次)。

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

小智 85

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

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

desktop-file-install <your_file.desktop>
Run Code Online (Sandbox Code Playgroud)

添加文件。

例如,您创建~/myapp.desktop并执行

desktop-file-install --dir=$HOME/.local/share/applications ~/myapp.desktop
Run Code Online (Sandbox Code Playgroud)

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

sudo desktop-file-install ~/myapp.desktop
Run Code Online (Sandbox Code Playgroud)

为所有用户安装它。

  • 只需将 .desktop 文件的副本放在 ~/.local/share/applications 中就对我有用- (5认同)
  • 即使这样做,我仍然会注意到 OP 注意到的问题。 (3认同)
  • 即使在执行此操作时(甚至在重新启动后),我仍然会注意到OP的问题(Ubuntu 16.04)。 (2认同)

wa4*_*557 18

这样做的方法是运行命令

killall unity-scope-home
Run Code Online (Sandbox Code Playgroud)

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

然后显示正确的图标...

  • 15.10 有替代方案吗?我收到“unity-scope-home:未找到进程” (2认同)

小智 16

sudo update-desktop-database将刷新.desktop数据库。

  • 此命令仅更新 MIME 类型数据库。它不会更新任何其他更改。请参阅:http://manpages.ubuntu.com/manpages/zesty/man1/update-desktop-database.1.html (3认同)
  • 这对我不起作用。运行 Ubuntu 16.04。我仍然没有在启动器图标上看到 .desktop 文件中所做的更改。 (2认同)

Rad*_*anu 8

根据这个答案(并且您可以在同一意义上找到许多其他答案),不幸的是,似乎没有命令让 unity-applications-daemon 刷新其应用程序缓存。但我可以证实,团结会自动检测到任何改变与.desktop文件~/.local/share/applications。如果这些更改不是立即可用,请尝试注销并再次登录以刷新它。

  • 是的,它会在一个小时内自动检测...... (3认同)
  • 我完全得到了你的答案,可能会接受它。您了解注销的缺点 - 所有打开的应用程序都关闭。这不是解决方案,而是一种解决方法,而不是用户友好的方法。您是开发人员吗?如果是的话,你能指出我的守护进程来源吗?我想是这样的:[unity-lens-applications daemon.vala](http://bazaar.launchpad.net/~unity-team/unity-lens-applications/trunk/view/head:/src/daemon.vala ) (3认同)

小智 5

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


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

更新添加的内容$HOME/.local/share/applications/,使用:

>> update-desktop-database
Run Code Online (Sandbox Code Playgroud)

更新全局添加的内容,如/usr/share/ubuntu/applications/usr/share/gnome/applications/usr/share/applications等,使用:

>> sudo update-desktop-database
Run Code Online (Sandbox Code Playgroud)