Entrega de un ícono de aplicación de Linux sin instalador/administrador de paquetes

Entrega de un ícono de aplicación de Linux sin instalador/administrador de paquetes

Trasfondo:

Yo quiero:

  1. Entregar una aplicación como un TAR simple que los usuarios extraigan y ejecuten
  2. Para que esa aplicación tenga un ícono de aplicación adecuado.

Sin administrador de paquetes, sin sudo, sin script de instalación.

veo desde elestándaryvarios articulosesos íconos de aplicaciones requieren un .desktoparchivo que necesita las rutas absolutas al ejecutable (uf) y al ícono de la aplicación. También veo que Ubuntu Unity (quizás otros) admite .desktoparchivos en~/.local/share/applications

Windows admite esto incorporando íconos en archivos ejecutables. Mac OS X tiene una estructura de directorio relativa para aplicaciones que incluye el icono.

Solución “hackish”:

Mi solución "pirata" es, al iniciar la aplicación, detectar si myApp.desktopel archivo existe ~/.local/share/applications/y, si no, escribirlo (incluida la ruta absoluta completa al ejecutable y el icono), iniciar un nuevo proceso myApp y salir.

La esperanza es que el nuevo proceso myApp seleccione el ícono de la aplicación. ya veceslo hace.

El problema:

Este problema es que tengo sleep 2unos segundos antes de iniciar el nuevo proceso. Si lo hago, se recoge el icono. Si no lo hago, no hay ningún ícono para mi aplicación.

Intenté recargar el caché de íconos GTK en lugar de dormir (con gtk-update-icon-cache /usr/share/icons/hicolor), pero eso no funciona.

¿Alguien sabe cómo puedo evitar este retraso y asegurarme de que .desktopse recoja el archivo recién escrito? (Estoy vaciando y cerrando el archivo). ¿O tienes una idea mejor que mi solución pirateada?

Actualizar:Interesante, probar un script simple que escribe el .desktoparchivo (ya sea manualmente o conmenú-escritorio-xdg) e inicia la aplicación; también necesita un retraso de 2 segundos o el ícono no aparecerá. Fascinante.

Respuesta1

Usargtk_window_set_icono similar (hay una variante _from_file e integración Glade).

Sin root, no creo que tenga acceso al caché de iconos y la carga oportuna del archivo del escritorio no parece ser un método confiable, como ha descubierto.

información relacionada