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


66

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

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


你试过了unity --reset吗?
sayantankhan 2013年

更正。应该是unity。按alt + F2并键入命令。
sayantankhan

是。它没有帮助。它仍然在unityunity --reset(在我修改myapp.desktop文件之前)之后显示旧的应用程序名称。
vladimir

奇怪,当我做与您完全相同的事情时,它似乎工作正常。确保.desktop文件是可执行文件?
sayantankhan

仅在注销/重新启动后才能工作。尝试仅更改桌面文件中现有应用程序的名称。不要改变其他任何东西。例如,将“ Test”添加到某些现有应用程序的名称。现在按Ubuntu按钮并开始输入应用程序名称-对我来说,它仍然显示旧名称而没有“ Test”。我在工作和家用计算机以及妻子的笔记本电脑上都复制了它。我认为它是100%可重现的。
vladimir

Answers:


69

有点晚了,但是我偶然发现了这个线程,然后找到了解决我的问题的解决方案,谷歌搜索了一些相关的东西,几乎放弃了。

按照本指南help.ubuntu.com的说明,请勿仅.desktop/usr/local/share/applications或中编辑或创建文件~/.local/share/applications。而是在其他位置创建文件并使用

desktop-file-install <your_file.desktop>

添加文件。

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

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

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

sudo desktop-file-install ~/myapp.desktop

为所有用户安装它。


为此+1。使用此食谱的粗略编辑脚本位于gist.github.com/hilbix/f468fcbb15c3f68670d8
Tino

4
只是将.desktop文件的副本放在对我
有用的

我通常会手动编辑文件并将其添加到中.local/share/applications/。尝试使用命令与,--delete-original并收到警告:warning: key "Keywords[uk]" is a list and does not have a semicolon as trailing character, fixing。结果是源文件被删除,没有任何内容复制到目标目录。邪恶的OS ...基本上是在破坏我的文件,因此我不得不从头开始创建一个新文件。
丹尼尔(Daniel)

2
即使这样做,我仍然会注意到OP的问题。
JAB

即使这样做(甚至重启后),我仍然仍然注意到OP的问题(Ubuntu 16.04)。
丹·尼森鲍姆

17

这样做的方法是运行命令

killall unity-scope-home

打开破折号后,该过程会再次自动开始。

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


1
在我这边行不通。我删除了一个.desktop文件,它仍然显示在compiz启动栏中。
蒂诺2014年

好吧,坚持BUG 1287663解决方案是使用gsettings set之后( unity --replace & )
蒂诺

我不知道您说的compiz启动栏是什么意思!我以为你在说破折号?
wa4557

对我来说效果很好,应用程序再次列出
Sjaak Trekhaak 2014年

15.10中有其他替代方法吗?我得到了unity-scope-home: no process found
ardila


8

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


3
是的,它会在一小时内自动检测到...
vladimir

@vladimir如我所说,如果您希望更改立即可用,请尝试注销然后再次登录以刷新它。
RaduRădeanu13年

3
我完全理解了您的答案,并且可能会接受。您了解注销的缺点-所有打开的应用程序都已关闭。这不是解决方案,而是一种解决方法,而不是一种用户友好的解决方案。您是开发者吗?如果是,请您指出守护程序源吗?我猜是这样:unity-lens-applications daemon.vala
vladimir

3

此答案不涉及桌面重启。


尽管很晚,但是有一个实用程序命令来更新名为的桌面数据库缓存update-desktop-database

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

>> update-desktop-database

更新全球那些addded东西,像/usr/share/ubuntu/applications/usr/share/gnome/applications/usr/share/applications等等,用途:

>> sudo update-desktop-database

这对我有用。
Honghe.Wu


0

我有一个类似的问题,重新启动时已修复。我使用Ubuntu 16.04

如果我想与其他用户共享桌面文件,并且只允许一个用户共享,我通常会在其中创建.desktop文件。而且我通常会重启。/usr/share/applications/~/.local/share/applications

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.