Tengo una .desktop
aplicació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/applications
están disponibles para todos los usuarios. Los lanzadores a continuación ~/.local/share/applications
está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/applications
es 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 .desktop
archivos 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 .desktop
iniciador "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 .desktop
archivo. Sin embargo, puede omitir la ruta del .desktop
archivo, 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 .desktop
archivo en la Icon=
línea.
Si solo proporciona el nombre del icono (sin la extensión), elel sistema operativo buscará ~/.icons
y ~/.local/share/icons
primero, y luego busque en los directorios de íconos de todo el sistema, principalmente en /usr/share/icons
y /usr/local/share/icons
. El sistema de menús seleccionará un archivo de gráficos con una extensión .png
o una de estas carpetas. .svg
Si 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 .desktop
archivo 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 $PATH
comando.
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
.