假设我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)
为所有用户安装它。
wa4*_*557 18
这样做的方法是运行命令
killall unity-scope-home
Run Code Online (Sandbox Code Playgroud)
打开仪表板后,该过程将再次自动启动。
然后显示正确的图标...
小智 16
sudo update-desktop-database将刷新.desktop数据库。
根据这个答案(并且您可以在同一意义上找到许多其他答案),不幸的是,似乎没有命令让 unity-applications-daemon 刷新其应用程序缓存。但我可以证实,团结会自动检测到任何改变与.desktop文件~/.local/share/applications。如果这些更改不是立即可用,请尝试注销并再次登录以刷新它。
小智 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)