Como forçar o recarregamento do Unity ~ / .local / share / applications /

66

Digamos que eu alterei / adicionei algum myapp.desktoparquivo em ~/.local/share/applications/. Por algum tempo, o Ubuntu Unity ainda me mostrará atalhos de aplicativos antigos na lente do Unity, no botão Ubuntu. Levará algum tempo (ou apenas uma reinicialização) para atualizar a lista de aplicativos lá.

Como posso forçar o Unity a recarregar ~/.local/share/applicationse refletir atalhos corretamente na lente?

Vladimir
fonte
Você já tentou unity --reset?
sayantankhan
Correção. Deveria ser apenas unity. Pressione alt + F2 e digite o comando
sayantankhan
Sim. Isso não ajudou. Ele ainda mostra o nome antigo do aplicativo após unityou unity --reset(que foi antes de eu modificar o arquivo myapp.desktop).
vladimir
Estranho, parece estar funcionando bem quando faço exatamente a mesma coisa que você está fazendo. Certificaram-se de que o .desktoparquivo é executável?
sayantankhan
Funciona somente após o logoff / reinício. Tente apenas alterar o nome do aplicativo existente dentro do arquivo da área de trabalho. Não mude mais nada. Por exemplo, adicione "Teste" ao nome de algum aplicativo existente. Agora pressione o botão Ubuntu e comece a digitar o nome do aplicativo - ele ainda mostra o nome antigo sem "Teste" para mim. Eu o reproduzi em máquinas domésticas e de trabalho e no laptop da esposa. Eu acho que é 100% reproduzível.
vladimir

Respostas:

69

Um pouco tarde, mas me deparei com esse tópico antes de encontrar uma solução, pelo menos para o meu problema, pesquisando algo relacionado, quase desistindo.

De acordo com este guia help.ubuntu.com , não basta editar ou criar seus .desktoparquivos em /usr/local/share/applicationsou ~/.local/share/applications. Em vez disso, crie o arquivo em outro lugar e use

desktop-file-install <your_file.desktop>

para adicionar o arquivo

Por exemplo, você cria ~/myapp.desktope faz

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

Os arquivos existentes com o mesmo nome serão substituídos e a unidade atualizada. Você poderá usar --delete-originalse a fonte não for mais necessária ou

sudo desktop-file-install ~/myapp.desktop

para instalá-lo para todos os usuários.

Rodin
fonte
+1 isso funciona. Um script de edição áspera usando esta receita é a gist.github.com/hilbix/f468fcbb15c3f68670d8
Tino
4
apenas colocando uma cópia do arquivo .desktop em ~ / .local / share / applications trabalhou para mim-
chrismarx
Normalmente edito manualmente o arquivo e o adiciono ao .local/share/applications/. Tentei usar o comando com --delete-originale eu tenho um aviso: warning: key "Keywords[uk]" is a list and does not have a semicolon as trailing character, fixing. O resultado foi o arquivo de origem excluído e nada copiado para o diretório de destino. Evil OS ... basicamente destruiu meu arquivo e tive que criar um novo a partir do zero.
Daniel
2
Ainda recebo o problema que o OP notou, mesmo ao fazer isso.
JAB
Também ainda recebo o problema que o OP notou, mesmo ao fazer isso (e mesmo depois de reiniciar) (Ubuntu 16.04).
Dan Nissenbaum
17

A maneira de fazer isso é executar o comando

killall unity-scope-home

após abrir o traço, o processo é iniciado automaticamente novamente.

Os ícones corretos são exibidos ...

wa4557
fonte
11
Não funciona ao meu lado. Eu removi um .desktoparquivo e ele ainda aparece na compizbarra de inicialização.
Tino
Bem, preso com BUG 1287663 a solução foi usar gsettings setseguido por( unity --replace & )
Tino
Não sei o que você quer dizer com barra de lançamento de compiz ?! Eu pensei que você estava falando sobre o traço?
wa4557 26/05
Funciona bem para mim, os aplicativos são listados novamente
Sjaak Trekhaak
Alguma alternativa em 15.10? Estou ficandounity-scope-home: no process found
ardila
10

update-desktop-databaseé o comando para atualizar o .desktopbanco de dados.

Pekka Kuronen
fonte
Isso não funcionou para mim. Executando o Ubuntu 16.04. Ainda não vejo no ícone do lançador as alterações feitas no arquivo .desktop.
22617 RichArt
2
Este comando atualiza apenas bancos de dados do tipo MIME. Ele não atualiza outras alterações. Veja: manpages.ubuntu.com/manpages/zesty/man1/…
hife
Funcionou para mim
aless80
funciona para mim com sudo
Mahoor13
8

De acordo com esta resposta (e você pode encontrar muitas outras no mesmo sentido), infelizmente parece não haver um comando para permitir que o daity-applications-daemon atualize seu cache de aplicativos. Mas posso confirmar que a unidade detectará automaticamente quaisquer alterações nos .desktoparquivos ~/.local/share/applications. Se essas alterações não estiverem disponíveis imediatamente, tente sair e entrar novamente para atualizá-las.

Radu Rădeanu
fonte
3
Sim, ele irá detectar automaticamente .... em uma hora ...
vladimir
@ vladimir Como eu disse, se você quiser as alterações imediatamente disponíveis, tente sair e entrar novamente para atualizá-las.
Radu Rădeanu
3
Eu recebi sua resposta completamente e provavelmente a aceitarei. Você entende as desvantagens do logoff - todos os aplicativos abertos são fechados. Não é uma solução, é uma solução alternativa e não é amigável. Você é desenvolvedor por acaso? Se sim, você poderia me indicar as fontes do daemon? Eu acho que é isso: Unidade-lens-aplicações daemon.vala
vladimir
3

Esta resposta não envolve uma reinicialização da área de trabalho.


Embora seja tarde demais, existe um comando utilitário para atualizar o cache do banco de dados da área de trabalho chamado update-desktop-database.

Atualizando itens adicionados $HOME/.local/share/applications/, use:

>> update-desktop-database

Atualizando animais addded nos mais globais, como /usr/share/ubuntu/applications, /usr/share/gnome/applications, /usr/share/applications, etc., use:

>> sudo update-desktop-database
Adão
fonte
Isso funciona para mim.
Honghe.Wu
0

Alguns aplicativos podem parar de funcionar corretamente após esse comando. O Chrome, por exemplo, ficou totalmente preto.

unity --replace
Juliano ENS
fonte
Você poderia esclarecer seu aviso (?)?
Zanna
0

Eu tive um problema semelhante, corrigido ao reiniciar. Eu uso o ubuntu 16.04

Geralmente, crio .desktoparquivos /usr/share/applications/se quero compartilhar os arquivos da área de trabalho com outros usuários e ~/.local/share/applicationsse for apenas um usuário. E eu normalmente reinicio.

Saahithyan Vigneswaran
fonte