Cómo forzar la recarga de Unity ~ / .local / share / aplicaciones /


66

Digamos que cambié / agregué algún myapp.desktoparchivo en ~/.local/share/applications/. Durante algún tiempo, Ubuntu Unity todavía me mostrará accesos directos a aplicaciones antiguas en la lente de Unity bajo el botón Ubuntu. Tomará algún tiempo (o solo un reinicio) para actualizar la lista de aplicaciones allí.

¿Cómo puedo forzar la recarga de Unity ~/.local/share/applicationsy reflejar los accesos directos correctamente en la lente?


Has intentado unity --reset?
sayantankhan

Corrección. Solo debería ser unity. Presione alt + F2 y escriba el comando.
sayantankhan

Si. No sirvió de nada. Todavía muestra nombre de la aplicación de edad después unityo unity --reset(lo que era antes de que yo modifiqué archivo myapp.desktop).
Vladimir

Extraño, parece estar funcionando bien cuando hago exactamente lo mismo que tú estás haciendo. ¿Te has asegurado de que el .desktoparchivo sea ejecutable?
sayantankhan

Funciona solo después de cerrar sesión / reiniciar. Intente simplemente cambiar el nombre de la aplicación existente dentro del archivo de escritorio. No cambies nada más. Por ejemplo, agregue "Prueba" al nombre de alguna aplicación existente. Ahora presione el botón Ubuntu y comience a escribir el nombre de la aplicación; todavía muestra el nombre antiguo sin "Prueba" para mí. Lo reproduje tanto en el trabajo como en las máquinas domésticas y en la computadora portátil de mi esposa. Creo que es aproximadamente 100% reproducible.
Vladimir

Respuestas:


69

Un poco tarde, pero me topé con este hilo antes de encontrar una solución, al menos para mi problema, buscando en Google algo relacionado, casi dándome por vencido.

Según esta guía help.ubuntu.com , no solo edite o cree sus .desktoparchivos en /usr/local/share/applicationso ~/.local/share/applications. En su lugar, cree el archivo en otro lugar y use

desktop-file-install <your_file.desktop>

para agregar el archivo.

Por ejemplo, creas ~/myapp.desktopy haces

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

Los archivos existentes con el mismo nombre se sobrescribirán y la unidad se actualizará, puede usarlos --delete-originalsi la fuente ya no es necesaria, o

sudo desktop-file-install ~/myapp.desktop

instalarlo para todos los usuarios.


+1 esto funciona. Un guión de edición aproximado que usa esta receta está en gist.github.com/hilbix/f468fcbb15c3f68670d8
Tino

44
simplemente poniendo una copia del archivo .desktop en ~ / .local / share / aplicaciones trabajaron para mí-
chrismarx

Por lo general, edito manualmente el archivo y lo agrego .local/share/applications/. Intentado utilizar el comando con --delete-originaly tengo una advertencia: warning: key "Keywords[uk]" is a list and does not have a semicolon as trailing character, fixing. El resultado fue el archivo fuente eliminado y nada copiado en el directorio de destino. Evil OS ... básicamente destruyó mi archivo y tuve que crear uno nuevo desde cero.
Daniel

2
Todavía recibo el problema que OP notó incluso cuando hago esto.
JAB

También sigo teniendo el problema que OP notó incluso al hacer esto (e incluso después de reiniciar) (Ubuntu 16.04).
Dan Nissenbaum

17

La forma de hacerlo es ejecutar el comando

killall unity-scope-home

Después de abrir el tablero, el proceso se inicia automáticamente de nuevo.

Luego se muestran los iconos correctos ...


1
No funciona a mi lado. Eliminé un .desktoparchivo y todavía aparece en la compizbarra de inicio.
Tino

Bueno, pegado con ERROR 1287663 la solución era utilizar gsettings setseguido de( unity --replace & )
Tino

No sé a qué te refieres con compiz launch bar ?! Pensé que estabas hablando del guión?
wa4557

Funciona bien para mí, las aplicaciones se enumeran nuevamente
Sjaak Trekhaak

¿Alguna alternativa en 15.10? Me estoy poniendounity-scope-home: no process found
ardila


8

De acuerdo con esta respuesta (y puede encontrar muchas otras en el mismo sentido), desafortunadamente parece que no hay ningún comando para permitir que el demonio de aplicaciones unitarias actualice su caché de aplicaciones. Pero puedo confirmar que unity detectará automáticamente cualquier cambio con los .desktoparchivos ~/.local/share/applications. Si estos cambios no están disponibles de inmediato, intente cerrar la sesión y volver a iniciarla para actualizarla.


3
Sí, detectará automáticamente ... en una hora ...
Vladimir

@vladimir Como dije, si desea que los cambios estén disponibles de inmediato, intente cerrar sesión y volver a iniciarla para actualizarla.
Radu Rădeanu

3
Recibí tu respuesta y probablemente la acepte. Comprende las desventajas de cerrar sesión: todas las aplicaciones abiertas se cerraron. No es una solución, es una solución alternativa y no fácil de usar. ¿Eres desarrollador por casualidad? En caso afirmativo, ¿podría señalarme las fuentes del demonio? Supongo que esto es todo: unity-lens-aplicaciones daemon.vala
vladimir

3

Esta respuesta no implica un reinicio del escritorio.


Aunque es bastante tarde, hay un comando de utilidad para actualizar el caché de la base de datos de escritorio llamado update-desktop-database.

Actualizando las cosas agregadas $HOME/.local/share/applications/, use:

>> update-desktop-database

Actualización de telas addded en los globales, como /usr/share/ubuntu/applications, /usr/share/gnome/applications, /usr/share/applications, etc, utilice:

>> sudo update-desktop-database

Esto funciona para mi.
Honghe.Wu

0

Algunas aplicaciones pueden dejar de funcionar correctamente después de este comando. Chrome, por ejemplo, se volvió totalmente negro.

unity --replace

¿Podría aclarar su advertencia (?)?
Zanna

0

Tuve un problema similar, solucionado al reiniciar. Yo uso ubuntu 16.04

Por lo general, creo .desktoparchivos /usr/share/applications/si quiero compartir los archivos de escritorio con otros usuarios y ~/.local/share/applicationssolo para un usuario. Y generalmente reinicio.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.