¿Cómo puedo hacer que mi aplicación .desktop sea global?

¿Cómo puedo hacer que mi aplicación .desktop sea global?

Tengo una .desktopaplicación que ejecuta un script de shell, este script de shell ejecuta un código Python cuando se hace doble clic en la aplicación y quiero poder iniciarlo desde todos los directorios de mi computadora portátil y mantener el ícono estable incluso si el ¡Se cambiaron los directorios de la imagen, el ícono o la aplicación!

¿Cómo puedo hacer que mi aplicación sea global?

Respuesta1

Como se desprende de la respuesta sugerida por Zany_Zachary, los lanzadores /usr/share/applicationsestán disponibles para todos los usuarios. Los lanzadores a continuación ~/.local/share/applicationsestán disponibles solo para el usuario actual. Cuando el iniciador esté en estos lugares, será seleccionado por el menú o iniciador de su escritorio. La ubicación /usr/share/applicationses un directorio utilizado por el sistema de gestión de software APT del sistema operativo, por lo que, aunque funcionaría, no debes colocar tus .desktoparchivos personalizados allí. En su lugar, utilice la carpeta/usr/local/share/applications. Esa carpeta no existe de forma predeterminada en Ubuntu, por lo que es posible que tengas que crearla primero.

Así es como se entiende más fácilmente "global" de su título. Sin embargo, en su pregunta, sugiere que bajo "global" también entienda algo como "portátil", es decir, debería continuar funcionando incluso si el ícono o la aplicación cambiaron de ubicación. Aún así, debes obedecer las convenciones del sistema operativo sobre dónde colocar tu ícono o ejecutable. Por lo tanto, no existe un .desktopiniciador "global" que siga funcionando independientemente de dónde coloque el ícono o el ejecutable.

Hay límites en esta "portabilidad". Por un lado, el nombre del icono o del ejecutable no puede cambiar, porque el nombre está codificado en el .desktoparchivo. Sin embargo, puede omitir la ruta del .desktoparchivo, pero luego debe colocar el ícono y el ejecutable en lugares específicos buscados por el sistema operativo.

El icono

El icono está definido en el .desktoparchivo en la Icon=línea.

Si solo proporciona el nombre del icono (sin la extensión), elel sistema operativo buscará ~/.iconsy ~/.local/share/iconsprimero, y luego busque en los directorios de íconos de todo el sistema, principalmente en /usr/share/iconsy /usr/local/share/icons. El sistema de menús seleccionará un archivo de gráficos con una extensión .pngo una de estas carpetas. .svgSi no se encuentra ningún archivo gráfico correspondiente, el sistema volverá a un icono de reserva predeterminado.

La aplicación

El ejecutable se define en el .desktoparchivo de la Exec=línea.

También aquí, el sistema buscará rutas predefinidas para un ejecutable con el nombre coincidente si no se proporciona la ruta completa del archivo. Puedes ver las carpetas y el orden en que se buscan con el echo $PATHcomando.

Respuesta2

¡Saludos!

Para que su archivo .desktop sea global, simplemente:

Colóquelo en/usr/share/applications

Para una sola cuenta, colóquela en/home/$USER/.local/share/applications


Desafortunadamente, no puedes hacer que el ícono permanezca igual cuando se mueve el archivo de imagen. Recomiendo crear una carpeta con el ícono de su aplicación. Coloque esta carpeta en /usr/share.

información relacionada