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?


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.


+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 ...


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


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.


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

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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.